diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml index 27faac80..b364d1d8 100644 --- a/.github/workflows/deploy.yml +++ b/.github/workflows/deploy.yml @@ -8,7 +8,7 @@ on: jobs: deploy: - runs-on: macos-latest + runs-on: macos-12 steps: - uses: actions/checkout@v2 diff --git a/DevelopmentPod/MaskbookPlugin/maskbook/assets/01fe8fc95b630bc80a5a.png b/DevelopmentPod/MaskbookPlugin/maskbook/assets/01fe8fc95b630bc80a5a.png new file mode 100644 index 00000000..253faa66 Binary files /dev/null and b/DevelopmentPod/MaskbookPlugin/maskbook/assets/01fe8fc95b630bc80a5a.png differ diff --git a/DevelopmentPod/MaskbookPlugin/maskbook/assets/0a57eabc5b95d6475deb.png b/DevelopmentPod/MaskbookPlugin/maskbook/assets/0a57eabc5b95d6475deb.png new file mode 100644 index 00000000..faa458a3 Binary files /dev/null and b/DevelopmentPod/MaskbookPlugin/maskbook/assets/0a57eabc5b95d6475deb.png differ diff --git a/DevelopmentPod/MaskbookPlugin/maskbook/assets/0abc2ff2c53dac14acd2.png b/DevelopmentPod/MaskbookPlugin/maskbook/assets/0abc2ff2c53dac14acd2.png new file mode 100644 index 00000000..3eed001b Binary files /dev/null and b/DevelopmentPod/MaskbookPlugin/maskbook/assets/0abc2ff2c53dac14acd2.png differ diff --git a/DevelopmentPod/MaskbookPlugin/maskbook/assets/14c2f11551231a320b45.png b/DevelopmentPod/MaskbookPlugin/maskbook/assets/14c2f11551231a320b45.png new file mode 100644 index 00000000..35f16468 Binary files /dev/null and b/DevelopmentPod/MaskbookPlugin/maskbook/assets/14c2f11551231a320b45.png differ diff --git a/DevelopmentPod/MaskbookPlugin/maskbook/assets/16ba5851b0b05d390bf1.png b/DevelopmentPod/MaskbookPlugin/maskbook/assets/16ba5851b0b05d390bf1.png deleted file mode 100644 index 892dd587..00000000 Binary files a/DevelopmentPod/MaskbookPlugin/maskbook/assets/16ba5851b0b05d390bf1.png and /dev/null differ diff --git a/DevelopmentPod/MaskbookPlugin/maskbook/assets/1a63223b7f16fe26d5f8.png b/DevelopmentPod/MaskbookPlugin/maskbook/assets/1a63223b7f16fe26d5f8.png deleted file mode 100644 index e2a12cd3..00000000 Binary files a/DevelopmentPod/MaskbookPlugin/maskbook/assets/1a63223b7f16fe26d5f8.png and /dev/null differ diff --git a/DevelopmentPod/MaskbookPlugin/maskbook/assets/1dab22f6fe2a31694ce1.png b/DevelopmentPod/MaskbookPlugin/maskbook/assets/1dab22f6fe2a31694ce1.png new file mode 100644 index 00000000..0a8b660e Binary files /dev/null and b/DevelopmentPod/MaskbookPlugin/maskbook/assets/1dab22f6fe2a31694ce1.png differ diff --git a/DevelopmentPod/MaskbookPlugin/maskbook/assets/1eca24f4e181c936b32f.png b/DevelopmentPod/MaskbookPlugin/maskbook/assets/1eca24f4e181c936b32f.png deleted file mode 100644 index 8b6be8e8..00000000 Binary files a/DevelopmentPod/MaskbookPlugin/maskbook/assets/1eca24f4e181c936b32f.png and /dev/null differ diff --git a/DevelopmentPod/MaskbookPlugin/maskbook/assets/2c57dd0a46a06c6fa2c6.png b/DevelopmentPod/MaskbookPlugin/maskbook/assets/2c57dd0a46a06c6fa2c6.png deleted file mode 100644 index a86cc10c..00000000 Binary files a/DevelopmentPod/MaskbookPlugin/maskbook/assets/2c57dd0a46a06c6fa2c6.png and /dev/null differ diff --git a/DevelopmentPod/MaskbookPlugin/maskbook/assets/2c7958a7923701d25cbe.png b/DevelopmentPod/MaskbookPlugin/maskbook/assets/2c7958a7923701d25cbe.png new file mode 100644 index 00000000..9ccd43c0 Binary files /dev/null and b/DevelopmentPod/MaskbookPlugin/maskbook/assets/2c7958a7923701d25cbe.png differ diff --git a/DevelopmentPod/MaskbookPlugin/maskbook/assets/334eb8e059d8d06f3ed0.png b/DevelopmentPod/MaskbookPlugin/maskbook/assets/334eb8e059d8d06f3ed0.png new file mode 100644 index 00000000..40edaaf8 Binary files /dev/null and b/DevelopmentPod/MaskbookPlugin/maskbook/assets/334eb8e059d8d06f3ed0.png differ diff --git a/DevelopmentPod/MaskbookPlugin/maskbook/assets/3cfe0781e88eef42f1a4.png b/DevelopmentPod/MaskbookPlugin/maskbook/assets/3cfe0781e88eef42f1a4.png new file mode 100644 index 00000000..7371c4f3 Binary files /dev/null and b/DevelopmentPod/MaskbookPlugin/maskbook/assets/3cfe0781e88eef42f1a4.png differ diff --git a/DevelopmentPod/MaskbookPlugin/maskbook/assets/4948ee35a4630775a9dd.png b/DevelopmentPod/MaskbookPlugin/maskbook/assets/4948ee35a4630775a9dd.png deleted file mode 100644 index bb68a4c8..00000000 Binary files a/DevelopmentPod/MaskbookPlugin/maskbook/assets/4948ee35a4630775a9dd.png and /dev/null differ diff --git a/DevelopmentPod/MaskbookPlugin/maskbook/assets/4d67af35c3c345c60eb2.png b/DevelopmentPod/MaskbookPlugin/maskbook/assets/4d67af35c3c345c60eb2.png new file mode 100644 index 00000000..17dad816 Binary files /dev/null and b/DevelopmentPod/MaskbookPlugin/maskbook/assets/4d67af35c3c345c60eb2.png differ diff --git a/DevelopmentPod/MaskbookPlugin/maskbook/assets/5836ffcf26e1d5d811a8.png b/DevelopmentPod/MaskbookPlugin/maskbook/assets/5836ffcf26e1d5d811a8.png new file mode 100644 index 00000000..7e42816e Binary files /dev/null and b/DevelopmentPod/MaskbookPlugin/maskbook/assets/5836ffcf26e1d5d811a8.png differ diff --git a/DevelopmentPod/MaskbookPlugin/maskbook/assets/5962fbad1c74397b5b4e.png b/DevelopmentPod/MaskbookPlugin/maskbook/assets/5962fbad1c74397b5b4e.png new file mode 100644 index 00000000..60b199e2 Binary files /dev/null and b/DevelopmentPod/MaskbookPlugin/maskbook/assets/5962fbad1c74397b5b4e.png differ diff --git a/DevelopmentPod/MaskbookPlugin/maskbook/assets/5c74339465a5c0254083.png b/DevelopmentPod/MaskbookPlugin/maskbook/assets/5c74339465a5c0254083.png deleted file mode 100644 index f5fb4e89..00000000 Binary files a/DevelopmentPod/MaskbookPlugin/maskbook/assets/5c74339465a5c0254083.png and /dev/null differ diff --git a/DevelopmentPod/MaskbookPlugin/maskbook/assets/6e2af989c4ceb60dda77.png b/DevelopmentPod/MaskbookPlugin/maskbook/assets/6e2af989c4ceb60dda77.png new file mode 100644 index 00000000..c60606a0 Binary files /dev/null and b/DevelopmentPod/MaskbookPlugin/maskbook/assets/6e2af989c4ceb60dda77.png differ diff --git a/DevelopmentPod/MaskbookPlugin/maskbook/assets/73aab4123001e8c43295.png b/DevelopmentPod/MaskbookPlugin/maskbook/assets/73aab4123001e8c43295.png deleted file mode 100644 index 7c843a18..00000000 Binary files a/DevelopmentPod/MaskbookPlugin/maskbook/assets/73aab4123001e8c43295.png and /dev/null differ diff --git a/DevelopmentPod/MaskbookPlugin/maskbook/assets/740bc66541a5c1f459e7.png b/DevelopmentPod/MaskbookPlugin/maskbook/assets/740bc66541a5c1f459e7.png deleted file mode 100644 index ffbbc904..00000000 Binary files a/DevelopmentPod/MaskbookPlugin/maskbook/assets/740bc66541a5c1f459e7.png and /dev/null differ diff --git a/DevelopmentPod/MaskbookPlugin/maskbook/assets/76729477b328cbe84474.png b/DevelopmentPod/MaskbookPlugin/maskbook/assets/76729477b328cbe84474.png new file mode 100644 index 00000000..dc19be89 Binary files /dev/null and b/DevelopmentPod/MaskbookPlugin/maskbook/assets/76729477b328cbe84474.png differ diff --git a/DevelopmentPod/MaskbookPlugin/maskbook/assets/77d697dbdc6f6ef8e94f.png b/DevelopmentPod/MaskbookPlugin/maskbook/assets/77d697dbdc6f6ef8e94f.png new file mode 100644 index 00000000..b06743cf Binary files /dev/null and b/DevelopmentPod/MaskbookPlugin/maskbook/assets/77d697dbdc6f6ef8e94f.png differ diff --git a/DevelopmentPod/MaskbookPlugin/maskbook/assets/78fc8af115becb052ee7.png b/DevelopmentPod/MaskbookPlugin/maskbook/assets/78fc8af115becb052ee7.png new file mode 100644 index 00000000..8fc56f65 Binary files /dev/null and b/DevelopmentPod/MaskbookPlugin/maskbook/assets/78fc8af115becb052ee7.png differ diff --git a/DevelopmentPod/MaskbookPlugin/maskbook/assets/7a4cfc24f92215333023.png b/DevelopmentPod/MaskbookPlugin/maskbook/assets/7a4cfc24f92215333023.png new file mode 100644 index 00000000..b8455be2 Binary files /dev/null and b/DevelopmentPod/MaskbookPlugin/maskbook/assets/7a4cfc24f92215333023.png differ diff --git a/DevelopmentPod/MaskbookPlugin/maskbook/assets/889aa4af284ad659c2c4.css b/DevelopmentPod/MaskbookPlugin/maskbook/assets/889aa4af284ad659c2c4.css new file mode 100644 index 00000000..6791b4cc --- /dev/null +++ b/DevelopmentPod/MaskbookPlugin/maskbook/assets/889aa4af284ad659c2c4.css @@ -0,0 +1,152 @@ +.buttonBack___1mlaL, +.buttonFirst___2rhFr, +.buttonLast___2yuh0, +.buttonNext___2mOCa, +.buttonNext___3Lm3s, +.dot___3c3SI { + cursor: pointer; +} +.image___xtQGH { + display: block; + width: 100%; + height: 100%; +} +.spinner___27VUp { + position: absolute; + top: calc(50% - 15px); + left: calc(50% - 15px); + width: 30px; + height: 30px; + animation-name: spin___S3UuE; + animation-duration: 1s; + animation-timing-function: linear; + animation-iteration-count: infinite; + border: 4px solid #a9a9a9; + border-top-color: #000; + border-radius: 30px; +} +@keyframes spin___S3UuE { + 0% { + transform: rotate(0deg); + } + to { + transform: rotate(1turn); + } +} +.container___2O72F { + position: relative; + overflow: hidden; + height: 100%; + width: 100%; +} +.overlay___IV4qY { + position: absolute; + top: 0; + left: 0; + bottom: 0; + right: 0; + opacity: 0; + cursor: zoom-in; + transition: opacity 0.3s, transform 0.3s; +} +.hover___MYy31, +.loading___1pvNI, +.zoom___3kqYk { + opacity: 1; +} +.imageLoadingSpinnerContainer___3UIPD { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + background-color: #f4f4f4; +} +.slide___3-Nqo { + position: relative; + display: block; + box-sizing: border-box; + height: 0; + margin: 0; + list-style-type: none; +} +.slide___3-Nqo:focus { + outline: none !important; +} +.slideHorizontal___1NzNV { + float: left; +} +[dir='rtl'] .slideHorizontal___1NzNV { + direction: rtl; + transform: scaleX(-1); +} +.slideInner___2mfX9 { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; +} +.focusRing___1airF { + position: absolute; + top: 5px; + right: 5px; + bottom: 5px; + left: 5px; + pointer-events: none; + outline-width: 5px; + outline-style: solid; + outline-color: Highlight; +} +@media (-webkit-min-device-pixel-ratio: 0) { + .focusRing___1airF { + outline-style: auto; + outline-color: -webkit-focus-ring-color; + } +} +.horizontalSlider___281Ls { + position: relative; + overflow: hidden; + height: 130px; +} +[dir='rtl'] .horizontalSlider___281Ls { + direction: ltr; + transform: scaleX(-1); +} +.horizontalSliderTray___1L-0W { + overflow: hidden; + width: 100%; +} +.verticalSlider___34ZFD { + position: relative; + overflow: hidden; +} +.verticalSliderTray___267D8 { + overflow: hidden; +} +.verticalTray___12Key { + float: left; +} +.verticalSlideTrayWrap___2nO7o { + overflow: hidden; +} +.sliderTray___-vHFQ { + display: block; + list-style: none; + padding: 0; + margin: 0; +} +.sliderAnimation___300FY { + transition: transform 0.5s; + transition-timing-function: cubic-bezier(0.645, 0.045, 0.355, 1); + will-change: transform; +} +.masterSpinnerContainer___1Z6hB { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + background-color: #f4f4f4; +} +/*# sourceMappingURL=react-carousel.es.css.map */ diff --git a/DevelopmentPod/MaskbookPlugin/maskbook/assets/893e99123a1793cbc778.png b/DevelopmentPod/MaskbookPlugin/maskbook/assets/893e99123a1793cbc778.png deleted file mode 100644 index c9c7c113..00000000 Binary files a/DevelopmentPod/MaskbookPlugin/maskbook/assets/893e99123a1793cbc778.png and /dev/null differ diff --git a/DevelopmentPod/MaskbookPlugin/maskbook/assets/93c1afb41af34fc0ed48.png b/DevelopmentPod/MaskbookPlugin/maskbook/assets/93c1afb41af34fc0ed48.png deleted file mode 100644 index cc14d910..00000000 Binary files a/DevelopmentPod/MaskbookPlugin/maskbook/assets/93c1afb41af34fc0ed48.png and /dev/null differ diff --git a/DevelopmentPod/MaskbookPlugin/maskbook/assets/9ebedfabfde40406c42e.png b/DevelopmentPod/MaskbookPlugin/maskbook/assets/9ebedfabfde40406c42e.png new file mode 100644 index 00000000..752371e8 Binary files /dev/null and b/DevelopmentPod/MaskbookPlugin/maskbook/assets/9ebedfabfde40406c42e.png differ diff --git a/DevelopmentPod/MaskbookPlugin/maskbook/assets/a26cfa5ebe7a70f47e71.png b/DevelopmentPod/MaskbookPlugin/maskbook/assets/a26cfa5ebe7a70f47e71.png deleted file mode 100644 index 2a0d9349..00000000 Binary files a/DevelopmentPod/MaskbookPlugin/maskbook/assets/a26cfa5ebe7a70f47e71.png and /dev/null differ diff --git a/DevelopmentPod/MaskbookPlugin/maskbook/assets/adfd421390eaf61fd7cc.png b/DevelopmentPod/MaskbookPlugin/maskbook/assets/adfd421390eaf61fd7cc.png new file mode 100644 index 00000000..260dae99 Binary files /dev/null and b/DevelopmentPod/MaskbookPlugin/maskbook/assets/adfd421390eaf61fd7cc.png differ diff --git a/DevelopmentPod/MaskbookPlugin/maskbook/assets/b6da3cce0cde774d2178.png b/DevelopmentPod/MaskbookPlugin/maskbook/assets/b6da3cce0cde774d2178.png new file mode 100644 index 00000000..95efe340 Binary files /dev/null and b/DevelopmentPod/MaskbookPlugin/maskbook/assets/b6da3cce0cde774d2178.png differ diff --git a/DevelopmentPod/MaskbookPlugin/maskbook/assets/b9761e20187cf2f5dd54.svg b/DevelopmentPod/MaskbookPlugin/maskbook/assets/b9761e20187cf2f5dd54.svg deleted file mode 100644 index 781d8ed2..00000000 --- a/DevelopmentPod/MaskbookPlugin/maskbook/assets/b9761e20187cf2f5dd54.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/DevelopmentPod/MaskbookPlugin/maskbook/assets/c2e4f93f6cacfaf0e58f.png b/DevelopmentPod/MaskbookPlugin/maskbook/assets/c2e4f93f6cacfaf0e58f.png deleted file mode 100644 index 0af6e6e6..00000000 Binary files a/DevelopmentPod/MaskbookPlugin/maskbook/assets/c2e4f93f6cacfaf0e58f.png and /dev/null differ diff --git a/DevelopmentPod/MaskbookPlugin/maskbook/assets/c3a84345cc92a169d393.png b/DevelopmentPod/MaskbookPlugin/maskbook/assets/c3a84345cc92a169d393.png deleted file mode 100644 index 1e33cd43..00000000 Binary files a/DevelopmentPod/MaskbookPlugin/maskbook/assets/c3a84345cc92a169d393.png and /dev/null differ diff --git a/DevelopmentPod/MaskbookPlugin/maskbook/assets/cccd7f512da1eb0b76b8.png b/DevelopmentPod/MaskbookPlugin/maskbook/assets/cccd7f512da1eb0b76b8.png deleted file mode 100644 index 5a6b5772..00000000 Binary files a/DevelopmentPod/MaskbookPlugin/maskbook/assets/cccd7f512da1eb0b76b8.png and /dev/null differ diff --git a/DevelopmentPod/MaskbookPlugin/maskbook/assets/d04b6bd4161eb992162f.png b/DevelopmentPod/MaskbookPlugin/maskbook/assets/d04b6bd4161eb992162f.png new file mode 100644 index 00000000..98fd9528 Binary files /dev/null and b/DevelopmentPod/MaskbookPlugin/maskbook/assets/d04b6bd4161eb992162f.png differ diff --git a/DevelopmentPod/MaskbookPlugin/maskbook/assets/d19094830447dc2aa748.png b/DevelopmentPod/MaskbookPlugin/maskbook/assets/d19094830447dc2aa748.png deleted file mode 100644 index 2727895b..00000000 Binary files a/DevelopmentPod/MaskbookPlugin/maskbook/assets/d19094830447dc2aa748.png and /dev/null differ diff --git a/DevelopmentPod/MaskbookPlugin/maskbook/assets/d620aaa19572fe831036.png b/DevelopmentPod/MaskbookPlugin/maskbook/assets/d620aaa19572fe831036.png new file mode 100644 index 00000000..93b62877 Binary files /dev/null and b/DevelopmentPod/MaskbookPlugin/maskbook/assets/d620aaa19572fe831036.png differ diff --git a/DevelopmentPod/MaskbookPlugin/maskbook/assets/d6593b34bb228be76d33.png b/DevelopmentPod/MaskbookPlugin/maskbook/assets/d6593b34bb228be76d33.png deleted file mode 100644 index 7443f179..00000000 Binary files a/DevelopmentPod/MaskbookPlugin/maskbook/assets/d6593b34bb228be76d33.png and /dev/null differ diff --git a/DevelopmentPod/MaskbookPlugin/maskbook/assets/d6c9527fcb322c968bd6.png b/DevelopmentPod/MaskbookPlugin/maskbook/assets/d6c9527fcb322c968bd6.png new file mode 100644 index 00000000..91f645ea Binary files /dev/null and b/DevelopmentPod/MaskbookPlugin/maskbook/assets/d6c9527fcb322c968bd6.png differ diff --git a/DevelopmentPod/MaskbookPlugin/maskbook/assets/de9e3c746e897e14493b.png b/DevelopmentPod/MaskbookPlugin/maskbook/assets/de9e3c746e897e14493b.png deleted file mode 100644 index 65911760..00000000 Binary files a/DevelopmentPod/MaskbookPlugin/maskbook/assets/de9e3c746e897e14493b.png and /dev/null differ diff --git a/DevelopmentPod/MaskbookPlugin/maskbook/assets/e62067e364007c72e059.png b/DevelopmentPod/MaskbookPlugin/maskbook/assets/e62067e364007c72e059.png deleted file mode 100644 index ba70034b..00000000 Binary files a/DevelopmentPod/MaskbookPlugin/maskbook/assets/e62067e364007c72e059.png and /dev/null differ diff --git a/DevelopmentPod/MaskbookPlugin/maskbook/assets/ebc9fb84b863c2f23884.png b/DevelopmentPod/MaskbookPlugin/maskbook/assets/ebc9fb84b863c2f23884.png deleted file mode 100644 index 1a29fb78..00000000 Binary files a/DevelopmentPod/MaskbookPlugin/maskbook/assets/ebc9fb84b863c2f23884.png and /dev/null differ diff --git a/DevelopmentPod/MaskbookPlugin/maskbook/assets/f31349a61ca79ee00103.png b/DevelopmentPod/MaskbookPlugin/maskbook/assets/f31349a61ca79ee00103.png new file mode 100644 index 00000000..7a6c0e5e Binary files /dev/null and b/DevelopmentPod/MaskbookPlugin/maskbook/assets/f31349a61ca79ee00103.png differ diff --git a/DevelopmentPod/MaskbookPlugin/maskbook/assets/fcbe15faab96aa0e5cd9.png b/DevelopmentPod/MaskbookPlugin/maskbook/assets/fcbe15faab96aa0e5cd9.png new file mode 100644 index 00000000..6ff3cf90 Binary files /dev/null and b/DevelopmentPod/MaskbookPlugin/maskbook/assets/fcbe15faab96aa0e5cd9.png differ diff --git a/DevelopmentPod/MaskbookPlugin/maskbook/background.html b/DevelopmentPod/MaskbookPlugin/maskbook/background.html index e9494873..6686ba3e 100644 --- a/DevelopmentPod/MaskbookPlugin/maskbook/background.html +++ b/DevelopmentPod/MaskbookPlugin/maskbook/background.html @@ -23,5 +23,5 @@ - + diff --git a/DevelopmentPod/MaskbookPlugin/maskbook/dashboard.html b/DevelopmentPod/MaskbookPlugin/maskbook/dashboard.html index bd583d7e..ec0a5e9b 100644 --- a/DevelopmentPod/MaskbookPlugin/maskbook/dashboard.html +++ b/DevelopmentPod/MaskbookPlugin/maskbook/dashboard.html @@ -23,5 +23,5 @@ - + diff --git a/DevelopmentPod/MaskbookPlugin/maskbook/debug.html b/DevelopmentPod/MaskbookPlugin/maskbook/debug.html index e90851a4..8cc2ad72 100644 --- a/DevelopmentPod/MaskbookPlugin/maskbook/debug.html +++ b/DevelopmentPod/MaskbookPlugin/maskbook/debug.html @@ -23,5 +23,5 @@ - + diff --git a/DevelopmentPod/MaskbookPlugin/maskbook/generated__content__script.html b/DevelopmentPod/MaskbookPlugin/maskbook/generated__content__script.html index a9604458..25442b03 100644 --- a/DevelopmentPod/MaskbookPlugin/maskbook/generated__content__script.html +++ b/DevelopmentPod/MaskbookPlugin/maskbook/generated__content__script.html @@ -23,5 +23,5 @@ - + diff --git a/DevelopmentPod/MaskbookPlugin/maskbook/git-info.json b/DevelopmentPod/MaskbookPlugin/maskbook/git-info.json index 0f43c266..fec41038 100644 --- a/DevelopmentPod/MaskbookPlugin/maskbook/git-info.json +++ b/DevelopmentPod/MaskbookPlugin/maskbook/git-info.json @@ -1,11 +1,11 @@ { - "BUILD_DATE": "2022-06-01T07:53:01.847Z", - "VERSION": "v1.29.12-2348-g181e22679", + "BUILD_DATE": "2022-06-27T08:57:48.598Z", + "VERSION": "v1.29.12-2649-g196eec807-dirty", "TAG_NAME": "v2.5.0", - "COMMIT_HASH": "181e22679", - "COMMIT_DATE": "2022-06-01T07:46:29.000Z", - "REMOTE_URL": "git@github.com:DimensionDev/Maskbook.git", - "BRANCH_NAME": "feat/mobile", - "DIRTY": false, + "COMMIT_HASH": "196eec807", + "COMMIT_DATE": "2022-06-24T01:16:36.000Z", + "REMOTE_URL": "https://github.com/DimensionDev/Maskbook.git", + "BRANCH_NAME": "feat/migrationToMobile", + "DIRTY": true, "TAG_DIRTY": true } \ No newline at end of file diff --git a/DevelopmentPod/MaskbookPlugin/maskbook/injected-script.js b/DevelopmentPod/MaskbookPlugin/maskbook/injected-script.js index e3498720..b6774df4 100644 --- a/DevelopmentPod/MaskbookPlugin/maskbook/injected-script.js +++ b/DevelopmentPod/MaskbookPlugin/maskbook/injected-script.js @@ -38,34 +38,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -243,7 +215,6 @@ const data = await promise(); sendEvent('resolvePromise', id, data); } catch (error) { - // TODO: sendEvent('rejectPromise', id, getError(error)); } } @@ -472,6 +443,8 @@ dispatchEventRaw(getDocumentActiveElement(), e, { clipboardData: dt }); } + function _optionalChain$1(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; } + const hasListened = { __proto__: null }; const { has } = Reflect; const { Promise: Promise$1, setTimeout: setTimeout$1 } = window; @@ -483,14 +456,27 @@ const fragments = apply(split, path, ['.' ]); let result = window; while (fragments.length !== 0) { - const key = apply(shift, fragments, []); - result = key ? result[key] : result; + try { + const key = apply(shift, fragments, []); + result = key ? result[key] : result; + } catch (e) { + return + } } return result } function access(path, id, property) { - handlePromise(id, () => read(path)[property]); + handlePromise(id, () => { + const item = read(path)[property]; + + // the public key cannot transfer correctly between pages, since stringify it manually + if (path === 'solflare' && property === 'publicKey') { + return item.toBase58() + } + + return item + }); } function callRequest(path, id, request) { @@ -504,19 +490,25 @@ function bindEvent(path, bridgeEvent, event) { if (hasListened[event]) return hasListened[event] = true; - read(path).on( + _optionalChain$1([read, 'call', _ => _(path), 'optionalAccess', _2 => _2.on, 'call', _3 => _3( event, clone_into((...args) => { - sendEvent(bridgeEvent, event, args); + // TODO: type unsound + sendEvent(bridgeEvent, path, event, args); }), - ); + )]); } function untilInner(name) { if (has(window, name)) return apply(resolve, Promise$1, [true]) - return new Promise$1((r) => { + + let restCheckTimes = 150; // 30s + + return new Promise$1((resolve) => { function check() { - if (has(window, name)) return r(true) + restCheckTimes -= 1; + if (restCheckTimes < 0) return + if (has(window, name)) return resolve(true) apply(setTimeout$1, window, [check, 200]); } check(); @@ -606,43 +598,19 @@ case 'resolvePromise': return - // solana - case 'solanaBridgeRequestListen': - return apply(bindEvent, null, ['solana', 'solanaBridgeOnEvent', ...r[1]]) - case 'solanaBridgeExecute': - return apply(execute, null, [...r[1]]) - case 'solanaBridgeSendRequest': - return apply(callRequest, null, ['solana', ...r[1]]) - case 'solanaBridgePrimitiveAccess': - return apply(access, null, ['solana', ...r[1]]) - case 'untilSolanaBridgeOnline': - return apply(until, null, ['solana', ...r[1]]) - case 'solanaBridgeOnEvent': - return - - // ethereum - case 'ethBridgeRequestListen': - return apply(bindEvent, null, ['ethereum', 'ethBridgeOnEvent', ...r[1]]) - case 'ethBridgeSendRequest': - return apply(callRequest, null, ['ethereum', ...r[1]]) - case 'ethBridgePrimitiveAccess': - return apply(access, null, ['ethereum', ...r[1]]) - case 'untilEthBridgeOnline': - return apply(until, null, ['ethereum', ...r[1]]) - case 'ethBridgeOnEvent': - return - - // coin98 - case 'coin98BridgeRequestListen': - return apply(bindEvent, null, ['coin98.provider', 'coin98BridgeOnEvent', ...r[1]]) - case 'coin98BridgeSendRequest': - return apply(callRequest, null, ['coin98.provider', ...r[1]]) - case 'coin98BridgePrimitiveAccess': - return apply(access, null, ['coin98.provider', ...r[1]]) - case 'untilCoin98BridgeOnline': - return apply(until, null, ['coin98', ...r[1]]) - case 'coin98BridgeOnEvent': + // web3 + case 'web3BridgeBindEvent': + return apply(bindEvent, null, r[1]) + case 'web3BridgeEmitEvent': return + case 'web3BridgeSendRequest': + return apply(callRequest, null, r[1]) + case 'web3BridgePrimitiveAccess': + return apply(access, null, r[1]) + case 'web3UntilBridgeOnline': + return apply(until, null, r[1]) + case 'web3BridgeExecute': + return apply(execute, null, r[1]) default: const neverEvent = r[0]; diff --git a/DevelopmentPod/MaskbookPlugin/maskbook/js/1224.js b/DevelopmentPod/MaskbookPlugin/maskbook/js/1224.js new file mode 100644 index 00000000..6d93adff --- /dev/null +++ b/DevelopmentPod/MaskbookPlugin/maskbook/js/1224.js @@ -0,0 +1,2482 @@ +"use strict"; +(globalThis["webpackChunk_masknet_extension"] = globalThis["webpackChunk_masknet_extension"] || []).push([[1224],{ + +/***/ 58757: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + + +if (true) { + module.exports = __webpack_require__(34028); +} else {} + + +/***/ }), + +/***/ 37508: +/***/ (function(module) { + + + +(function(root) { + const MAX_VALUE = 0x7fffffff; + + // The SHA256 and PBKDF2 implementation are from scrypt-async-js: + // See: https://github.com/dchest/scrypt-async-js + function SHA256(m) { + const K = new Uint32Array([ + 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, + 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, + 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, + 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, + 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152, + 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, + 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, + 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, + 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, + 0xd6990624, 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08, + 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, + 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, + 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2 + ]); + + let h0 = 0x6a09e667, h1 = 0xbb67ae85, h2 = 0x3c6ef372, h3 = 0xa54ff53a; + let h4 = 0x510e527f, h5 = 0x9b05688c, h6 = 0x1f83d9ab, h7 = 0x5be0cd19; + const w = new Uint32Array(64); + + function blocks(p) { + let off = 0, len = p.length; + while (len >= 64) { + let a = h0, b = h1, c = h2, d = h3, e = h4, f = h5, g = h6, h = h7, u, i, j, t1, t2; + + for (i = 0; i < 16; i++) { + j = off + i*4; + w[i] = ((p[j] & 0xff)<<24) | ((p[j+1] & 0xff)<<16) | + ((p[j+2] & 0xff)<<8) | (p[j+3] & 0xff); + } + + for (i = 16; i < 64; i++) { + u = w[i-2]; + t1 = ((u>>>17) | (u<<(32-17))) ^ ((u>>>19) | (u<<(32-19))) ^ (u>>>10); + + u = w[i-15]; + t2 = ((u>>>7) | (u<<(32-7))) ^ ((u>>>18) | (u<<(32-18))) ^ (u>>>3); + + w[i] = (((t1 + w[i-7]) | 0) + ((t2 + w[i-16]) | 0)) | 0; + } + + for (i = 0; i < 64; i++) { + t1 = ((((((e>>>6) | (e<<(32-6))) ^ ((e>>>11) | (e<<(32-11))) ^ + ((e>>>25) | (e<<(32-25)))) + ((e & f) ^ (~e & g))) | 0) + + ((h + ((K[i] + w[i]) | 0)) | 0)) | 0; + + t2 = ((((a>>>2) | (a<<(32-2))) ^ ((a>>>13) | (a<<(32-13))) ^ + ((a>>>22) | (a<<(32-22)))) + ((a & b) ^ (a & c) ^ (b & c))) | 0; + + h = g; + g = f; + f = e; + e = (d + t1) | 0; + d = c; + c = b; + b = a; + a = (t1 + t2) | 0; + } + + h0 = (h0 + a) | 0; + h1 = (h1 + b) | 0; + h2 = (h2 + c) | 0; + h3 = (h3 + d) | 0; + h4 = (h4 + e) | 0; + h5 = (h5 + f) | 0; + h6 = (h6 + g) | 0; + h7 = (h7 + h) | 0; + + off += 64; + len -= 64; + } + } + + blocks(m); + + let i, bytesLeft = m.length % 64, + bitLenHi = (m.length / 0x20000000) | 0, + bitLenLo = m.length << 3, + numZeros = (bytesLeft < 56) ? 56 : 120, + p = m.slice(m.length - bytesLeft, m.length); + + p.push(0x80); + for (i = bytesLeft + 1; i < numZeros; i++) { p.push(0); } + p.push((bitLenHi >>> 24) & 0xff); + p.push((bitLenHi >>> 16) & 0xff); + p.push((bitLenHi >>> 8) & 0xff); + p.push((bitLenHi >>> 0) & 0xff); + p.push((bitLenLo >>> 24) & 0xff); + p.push((bitLenLo >>> 16) & 0xff); + p.push((bitLenLo >>> 8) & 0xff); + p.push((bitLenLo >>> 0) & 0xff); + + blocks(p); + + return [ + (h0 >>> 24) & 0xff, (h0 >>> 16) & 0xff, (h0 >>> 8) & 0xff, (h0 >>> 0) & 0xff, + (h1 >>> 24) & 0xff, (h1 >>> 16) & 0xff, (h1 >>> 8) & 0xff, (h1 >>> 0) & 0xff, + (h2 >>> 24) & 0xff, (h2 >>> 16) & 0xff, (h2 >>> 8) & 0xff, (h2 >>> 0) & 0xff, + (h3 >>> 24) & 0xff, (h3 >>> 16) & 0xff, (h3 >>> 8) & 0xff, (h3 >>> 0) & 0xff, + (h4 >>> 24) & 0xff, (h4 >>> 16) & 0xff, (h4 >>> 8) & 0xff, (h4 >>> 0) & 0xff, + (h5 >>> 24) & 0xff, (h5 >>> 16) & 0xff, (h5 >>> 8) & 0xff, (h5 >>> 0) & 0xff, + (h6 >>> 24) & 0xff, (h6 >>> 16) & 0xff, (h6 >>> 8) & 0xff, (h6 >>> 0) & 0xff, + (h7 >>> 24) & 0xff, (h7 >>> 16) & 0xff, (h7 >>> 8) & 0xff, (h7 >>> 0) & 0xff + ]; + } + + function PBKDF2_HMAC_SHA256_OneIter(password, salt, dkLen) { + // compress password if it's longer than hash block length + password = (password.length <= 64) ? password : SHA256(password); + + const innerLen = 64 + salt.length + 4; + const inner = new Array(innerLen); + const outerKey = new Array(64); + + let i; + let dk = []; + + // inner = (password ^ ipad) || salt || counter + for (i = 0; i < 64; i++) { inner[i] = 0x36; } + for (i = 0; i < password.length; i++) { inner[i] ^= password[i]; } + for (i = 0; i < salt.length; i++) { inner[64 + i] = salt[i]; } + for (i = innerLen - 4; i < innerLen; i++) { inner[i] = 0; } + + // outerKey = password ^ opad + for (i = 0; i < 64; i++) outerKey[i] = 0x5c; + for (i = 0; i < password.length; i++) outerKey[i] ^= password[i]; + + // increments counter inside inner + function incrementCounter() { + for (let i = innerLen - 1; i >= innerLen - 4; i--) { + inner[i]++; + if (inner[i] <= 0xff) return; + inner[i] = 0; + } + } + + // output blocks = SHA256(outerKey || SHA256(inner)) ... + while (dkLen >= 32) { + incrementCounter(); + dk = dk.concat(SHA256(outerKey.concat(SHA256(inner)))); + dkLen -= 32; + } + if (dkLen > 0) { + incrementCounter(); + dk = dk.concat(SHA256(outerKey.concat(SHA256(inner))).slice(0, dkLen)); + } + + return dk; + } + + // The following is an adaptation of scryptsy + // See: https://www.npmjs.com/package/scryptsy + function blockmix_salsa8(BY, Yi, r, x, _X) { + let i; + + arraycopy(BY, (2 * r - 1) * 16, _X, 0, 16); + for (i = 0; i < 2 * r; i++) { + blockxor(BY, i * 16, _X, 16); + salsa20_8(_X, x); + arraycopy(_X, 0, BY, Yi + (i * 16), 16); + } + + for (i = 0; i < r; i++) { + arraycopy(BY, Yi + (i * 2) * 16, BY, (i * 16), 16); + } + + for (i = 0; i < r; i++) { + arraycopy(BY, Yi + (i * 2 + 1) * 16, BY, (i + r) * 16, 16); + } + } + + function R(a, b) { + return (a << b) | (a >>> (32 - b)); + } + + function salsa20_8(B, x) { + arraycopy(B, 0, x, 0, 16); + + for (let i = 8; i > 0; i -= 2) { + x[ 4] ^= R(x[ 0] + x[12], 7); + x[ 8] ^= R(x[ 4] + x[ 0], 9); + x[12] ^= R(x[ 8] + x[ 4], 13); + x[ 0] ^= R(x[12] + x[ 8], 18); + x[ 9] ^= R(x[ 5] + x[ 1], 7); + x[13] ^= R(x[ 9] + x[ 5], 9); + x[ 1] ^= R(x[13] + x[ 9], 13); + x[ 5] ^= R(x[ 1] + x[13], 18); + x[14] ^= R(x[10] + x[ 6], 7); + x[ 2] ^= R(x[14] + x[10], 9); + x[ 6] ^= R(x[ 2] + x[14], 13); + x[10] ^= R(x[ 6] + x[ 2], 18); + x[ 3] ^= R(x[15] + x[11], 7); + x[ 7] ^= R(x[ 3] + x[15], 9); + x[11] ^= R(x[ 7] + x[ 3], 13); + x[15] ^= R(x[11] + x[ 7], 18); + x[ 1] ^= R(x[ 0] + x[ 3], 7); + x[ 2] ^= R(x[ 1] + x[ 0], 9); + x[ 3] ^= R(x[ 2] + x[ 1], 13); + x[ 0] ^= R(x[ 3] + x[ 2], 18); + x[ 6] ^= R(x[ 5] + x[ 4], 7); + x[ 7] ^= R(x[ 6] + x[ 5], 9); + x[ 4] ^= R(x[ 7] + x[ 6], 13); + x[ 5] ^= R(x[ 4] + x[ 7], 18); + x[11] ^= R(x[10] + x[ 9], 7); + x[ 8] ^= R(x[11] + x[10], 9); + x[ 9] ^= R(x[ 8] + x[11], 13); + x[10] ^= R(x[ 9] + x[ 8], 18); + x[12] ^= R(x[15] + x[14], 7); + x[13] ^= R(x[12] + x[15], 9); + x[14] ^= R(x[13] + x[12], 13); + x[15] ^= R(x[14] + x[13], 18); + } + + for (let i = 0; i < 16; ++i) { + B[i] += x[i]; + } + } + + // naive approach... going back to loop unrolling may yield additional performance + function blockxor(S, Si, D, len) { + for (let i = 0; i < len; i++) { + D[i] ^= S[Si + i] + } + } + + function arraycopy(src, srcPos, dest, destPos, length) { + while (length--) { + dest[destPos++] = src[srcPos++]; + } + } + + function checkBufferish(o) { + if (!o || typeof(o.length) !== 'number') { return false; } + + for (let i = 0; i < o.length; i++) { + const v = o[i]; + if (typeof(v) !== 'number' || v % 1 || v < 0 || v >= 256) { + return false; + } + } + + return true; + } + + function ensureInteger(value, name) { + if (typeof(value) !== "number" || (value % 1)) { throw new Error('invalid ' + name); } + return value; + } + + // N = Cpu cost, r = Memory cost, p = parallelization cost + // callback(error, progress, key) + function _scrypt(password, salt, N, r, p, dkLen, callback) { + + N = ensureInteger(N, 'N'); + r = ensureInteger(r, 'r'); + p = ensureInteger(p, 'p'); + + dkLen = ensureInteger(dkLen, 'dkLen'); + + if (N === 0 || (N & (N - 1)) !== 0) { throw new Error('N must be power of 2'); } + + if (N > MAX_VALUE / 128 / r) { throw new Error('N too large'); } + if (r > MAX_VALUE / 128 / p) { throw new Error('r too large'); } + + if (!checkBufferish(password)) { + throw new Error('password must be an array or buffer'); + } + password = Array.prototype.slice.call(password); + + if (!checkBufferish(salt)) { + throw new Error('salt must be an array or buffer'); + } + salt = Array.prototype.slice.call(salt); + + let b = PBKDF2_HMAC_SHA256_OneIter(password, salt, p * 128 * r); + const B = new Uint32Array(p * 32 * r) + for (let i = 0; i < B.length; i++) { + const j = i * 4; + B[i] = ((b[j + 3] & 0xff) << 24) | + ((b[j + 2] & 0xff) << 16) | + ((b[j + 1] & 0xff) << 8) | + ((b[j + 0] & 0xff) << 0); + } + + const XY = new Uint32Array(64 * r); + const V = new Uint32Array(32 * r * N); + + const Yi = 32 * r; + + // scratch space + const x = new Uint32Array(16); // salsa20_8 + const _X = new Uint32Array(16); // blockmix_salsa8 + + const totalOps = p * N * 2; + let currentOp = 0; + let lastPercent10 = null; + + // Set this to true to abandon the scrypt on the next step + let stop = false; + + // State information + let state = 0; + let i0 = 0, i1; + let Bi; + + // How many blockmix_salsa8 can we do per step? + const limit = callback ? parseInt(1000 / r): 0xffffffff; + + // Trick from scrypt-async; if there is a setImmediate shim in place, use it + const nextTick = (typeof(setImmediate) !== 'undefined') ? setImmediate : setTimeout; + + // This is really all I changed; making scryptsy a state machine so we occasionally + // stop and give other evnts on the evnt loop a chance to run. ~RicMoo + const incrementalSMix = function() { + if (stop) { + return callback(new Error('cancelled'), currentOp / totalOps); + } + + let steps; + + switch (state) { + case 0: + // for (var i = 0; i < p; i++)... + Bi = i0 * 32 * r; + + arraycopy(B, Bi, XY, 0, Yi); // ROMix - 1 + + state = 1; // Move to ROMix 2 + i1 = 0; + + // Fall through + + case 1: + + // Run up to 1000 steps of the first inner smix loop + steps = N - i1; + if (steps > limit) { steps = limit; } + for (let i = 0; i < steps; i++) { // ROMix - 2 + arraycopy(XY, 0, V, (i1 + i) * Yi, Yi) // ROMix - 3 + blockmix_salsa8(XY, Yi, r, x, _X); // ROMix - 4 + } + + // for (var i = 0; i < N; i++) + i1 += steps; + currentOp += steps; + + if (callback) { + // Call the callback with the progress (optionally stopping us) + const percent10 = parseInt(1000 * currentOp / totalOps); + if (percent10 !== lastPercent10) { + stop = callback(null, currentOp / totalOps); + if (stop) { break; } + lastPercent10 = percent10; + } + } + + if (i1 < N) { break; } + + i1 = 0; // Move to ROMix 6 + state = 2; + + // Fall through + + case 2: + + // Run up to 1000 steps of the second inner smix loop + steps = N - i1; + if (steps > limit) { steps = limit; } + for (let i = 0; i < steps; i++) { // ROMix - 6 + const offset = (2 * r - 1) * 16; // ROMix - 7 + const j = XY[offset] & (N - 1); + blockxor(V, j * Yi, XY, Yi); // ROMix - 8 (inner) + blockmix_salsa8(XY, Yi, r, x, _X); // ROMix - 9 (outer) + } + + // for (var i = 0; i < N; i++)... + i1 += steps; + currentOp += steps; + + // Call the callback with the progress (optionally stopping us) + if (callback) { + const percent10 = parseInt(1000 * currentOp / totalOps); + if (percent10 !== lastPercent10) { + stop = callback(null, currentOp / totalOps); + if (stop) { break; } + lastPercent10 = percent10; + } + } + + if (i1 < N) { break; } + + arraycopy(XY, 0, B, Bi, Yi); // ROMix - 10 + + // for (var i = 0; i < p; i++)... + i0++; + if (i0 < p) { + state = 0; + break; + } + + b = []; + for (let i = 0; i < B.length; i++) { + b.push((B[i] >> 0) & 0xff); + b.push((B[i] >> 8) & 0xff); + b.push((B[i] >> 16) & 0xff); + b.push((B[i] >> 24) & 0xff); + } + + const derivedKey = PBKDF2_HMAC_SHA256_OneIter(password, b, dkLen); + + // Send the result to the callback + if (callback) { callback(null, 1.0, derivedKey); } + + // Done; don't break (which would reschedule) + return derivedKey; + } + + // Schedule the next steps + if (callback) { nextTick(incrementalSMix); } + } + + // Run the smix state machine until completion + if (!callback) { + while (true) { + const derivedKey = incrementalSMix(); + if (derivedKey != undefined) { return derivedKey; } + } + } + + // Bootstrap the async incremental smix + incrementalSMix(); + } + + const lib = { + scrypt: function(password, salt, N, r, p, dkLen, progressCallback) { + return new Promise(function(resolve, reject) { + let lastProgress = 0; + if (progressCallback) { progressCallback(0); } + _scrypt(password, salt, N, r, p, dkLen, function(error, progress, key) { + if (error) { + reject(error); + } else if (key) { + if (progressCallback && lastProgress !== 1) { + progressCallback(1); + } + resolve(new Uint8Array(key)); + } else if (progressCallback && progress !== lastProgress) { + lastProgress = progress; + return progressCallback(progress); + } + }); + }); + }, + syncScrypt: function(password, salt, N, r, p, dkLen) { + return new Uint8Array(_scrypt(password, salt, N, r, p, dkLen)); + } + }; + + // node.js + if (true) { + module.exports = lib; + + // RequireJS/AMD + // http://www.requirejs.org/docs/api.html + // https://github.com/amdjs/amdjs-api/wiki/AMD + } else {} + +})(this); + + +/***/ }), + +/***/ 7197: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "DT": () => (/* binding */ currentMaskWalletChainIdSettings), +/* harmony export */ "Jg": () => (/* binding */ currentMaskWalletLockStatusSettings), +/* harmony export */ "T_": () => (/* binding */ currentMaskWalletAccountSettings), +/* harmony export */ "br": () => (/* binding */ currentMaskWalletNetworkSettings) +/* harmony export */ }); +/* harmony import */ var _settings_createSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(31202); +/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(72499); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(25302); +/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(53856); + + + + +const currentMaskWalletAccountSettings = (0,_settings_createSettings__WEBPACK_IMPORTED_MODULE_0__/* .createGlobalSettings */ .TI)(`${_constants__WEBPACK_IMPORTED_MODULE_1__/* .PLUGIN_ID */ .Uu}+selectedMaskWalletAddress`, ''); +const currentMaskWalletChainIdSettings = (0,_settings_createSettings__WEBPACK_IMPORTED_MODULE_0__/* .createGlobalSettings */ .TI)(`${_constants__WEBPACK_IMPORTED_MODULE_1__/* .PLUGIN_ID */ .Uu}+maskWalletChainId`, _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Mainnet */ .a_.Mainnet); +const currentMaskWalletNetworkSettings = (0,_settings_createSettings__WEBPACK_IMPORTED_MODULE_0__/* .createGlobalSettings */ .TI)(`${_constants__WEBPACK_IMPORTED_MODULE_1__/* .PLUGIN_ID */ .Uu}+selectedMaskWalletNetwork`, _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .NetworkType.Ethereum */ .td.Ethereum); +const currentMaskWalletLockStatusSettings = (0,_settings_createSettings__WEBPACK_IMPORTED_MODULE_0__/* .createGlobalSettings */ .TI)(`${_constants__WEBPACK_IMPORTED_MODULE_1__/* .PLUGIN_ID */ .Uu}+maskWalletLockStatus`, _types__WEBPACK_IMPORTED_MODULE_2__/* .LockStatus.INIT */ .O.INIT); + + +/***/ }), + +/***/ 53856: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "O": () => (/* binding */ LockStatus) +/* harmony export */ }); +var LockStatus; +(function(LockStatus) { + LockStatus[LockStatus["INIT"] = 0] = "INIT"; + LockStatus[LockStatus["UNLOCK"] = 1] = "UNLOCK"; + LockStatus[LockStatus["LOCKED"] = 2] = "LOCKED"; +})(LockStatus || (LockStatus = {})); + + +/***/ }), + +/***/ 54409: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* unused harmony export createNormalReactRoot */ +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35667); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(58757); +/* harmony import */ var react_dom_client__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(70195); +/* harmony import */ var _masknet_shared_base_ui__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(80226); +/* harmony import */ var _masknet_theme__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(31939); + + + + + +function createNormalReactRoot(jsx, container) { + if (!container) container = document.getElementById('root') ?? void 0; + if (!container) { + container = document.createElement('div'); + document.body.appendChild(container); + } + if (false) {} + return createRoot(container).render(/*#__PURE__*/ _jsx(StrictMode, { + children: /*#__PURE__*/ _jsx(DisableShadowRootContext.Provider, { + value: true, + children: /*#__PURE__*/ _jsx(ErrorBoundary, { + children: jsx + }) + }) + })); +} + + +/***/ }), + +/***/ 45908: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "D": () => (/* binding */ useControlledDialog) +/* harmony export */ }); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(58757); + +function useControlledDialog() { + const [open, setOpen] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false); + return { + open, + setOpen, + onClose: ()=>setOpen(false) + , + onOpen: ()=>setOpen(true) + }; +} + + +/***/ }), + +/***/ 78831: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "H": () => (/* binding */ useMenu) +/* harmony export */ }); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(58757); +/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(63439); +/* harmony import */ var _masknet_theme__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(31939); +/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(31217); + + + + +/** + * A util hooks for easier to use ``s. + * @param menus Material UI `` elements + */ function useMenu(elements, anchorSibling = false, props, useShadowRoot = true) { + const [open, setOpen] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false); + const [anchorEl, setAnchorEl] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null); + const close = ()=>{ + setOpen(false); + setAnchorEl(null); + }; + const update = (0,react_use__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z)(); + return [ + /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(useShadowRoot ? _masknet_theme__WEBPACK_IMPORTED_MODULE_1__/* .ShadowRootMenu */ .dy : _mui_material__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, { + PaperProps: props?.paperProps, + MenuListProps: props?.menuListProps, + open, + anchorEl, + onClose: close, + onClick: close, + anchorOrigin: props?.anchorOrigin, + transformOrigin: props?.transformOrigin + }, elements?.map((element, key)=>/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.isValidElement)(element) ? /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.cloneElement)(element, { + ...element.props, + key + }) : element + )), + (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((anchorElOrEvent)=>{ + let element; + if (anchorElOrEvent instanceof HTMLElement) { + element = anchorElOrEvent; + } else { + element = anchorElOrEvent.currentTarget; + } + // when the essential content of currentTarget would be closed over, + // we can set the anchorEl with currentTarget's bottom sibling to avoid it. + const finalAnchor = anchorSibling ? element.nextElementSibling ?? undefined : element; + setAnchorEl(finalAnchor); + setOpen(true); + // HACK: it seems like anchor doesn't work correctly + // but a force repaint can solve the problem. + window.requestAnimationFrame(update); + }, []), + ]; +} + + +/***/ }), + +/***/ 70236: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "E": () => (/* binding */ useSwitcher) +/* harmony export */ }); +/* unused harmony export useSettingsSwitcher */ +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35667); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(58757); +/* harmony import */ var _masknet_shared_base_ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(80226); +/* harmony import */ var _extension_options_page_DashboardComponents_ActionButton__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(72288); +/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(76618); + + + + + +function useSettingsSwitcher(settings, options, resolver) { + const currentOption = useValueRef(settings); + const nextOption = useMemo(()=>{ + if (options.length === 0) return; + if (typeof currentOption === 'undefined') return options[0]; + const indexOf = options.indexOf(currentOption); + if (indexOf === -1) return; + return indexOf === options.length - 1 ? options[0] : options[indexOf + 1]; + }, [ + currentOption, + options + ]); + const onSwitch = useCallback(()=>{ + if (typeof nextOption !== 'undefined') settings.value = nextOption; + }, [ + nextOption + ]); + if (options.length <= 1) return null; + if (typeof nextOption === 'undefined') return null; + return /*#__PURE__*/ _jsxs(ActionButton, { + sx: { + marginTop: 1 + }, + color: "primary", + variant: "contained", + onClick: onSwitch, + children: [ + "Switch to ", + resolver(nextOption) + ] + }); +} +function useSwitcher(currentOption, onSwitch, options, resolver, fullWidth) { + const theme = (0,_mui_material__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z)(); + const nextOption = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>{ + if (options.length === 0) return; + if (typeof currentOption === 'undefined') return options[0]; + const indexOf = options.indexOf(currentOption); + if (indexOf === -1) return; + return indexOf === options.length - 1 ? options[0] : options[indexOf + 1]; + }, [ + currentOption, + options + ]); + if (options.length <= 1) return null; + if (typeof nextOption === 'undefined') return null; + return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_extension_options_page_DashboardComponents_ActionButton__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .ZP, { + fullWidth: fullWidth, + sx: { + marginTop: 1, + backgroundColor: theme.palette.maskColor?.dark, + '&:hover': { + backgroundColor: theme.palette.maskColor?.dark + }, + color: 'white' + }, + variant: "contained", + onClick: ()=>onSwitch(nextOption) + , + children: [ + "Switch to ", + resolver(nextOption) + ] + }); +} + + +/***/ }), + +/***/ 94201: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + + +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "$": () => (/* reexport */ getAssetAsBlobURL) +}); + +// EXTERNAL MODULE: ./src/extension/service.ts +var service = __webpack_require__(78778); +// EXTERNAL MODULE: ../shared-base/src/index.ts + 2 modules +var src = __webpack_require__(44451); +;// CONCATENATED MODULE: ./src/utils/suspends/getAssetAsBlobURL.ts + + +/** + * Fetch a file and turn it into blob URL. + * This function must run in React concurrent mode. + */ function getAssetAsBlobURL(url) { + return (0,src/* getAssetAsBlobURL */.$I)(url, service/* default.Helper.fetch */.ZP.Helper.fetch); +} + +;// CONCATENATED MODULE: ./src/utils/suspends/index.ts + + + +/***/ }), + +/***/ 51602: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "J": () => (/* binding */ useClassicMaskSNSPluginTheme), +/* harmony export */ "V": () => (/* binding */ useClassicMaskSNSTheme) +/* harmony export */ }); +/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(25105); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(58757); +/* harmony import */ var _social_network__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(82192); +/* harmony import */ var use_subscription__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(14257); +/* harmony import */ var _MaskTheme__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(9956); +/* harmony import */ var _useThemeLanguage__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(65095); +/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(44451); +/* harmony import */ var _dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(88967); +/* harmony import */ var _dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_9__); +/* harmony import */ var _masknet_shared_base_ui__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(80226); +/* harmony import */ var _settings_settings__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(5903); +/* harmony import */ var lodash_unified__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(9084); +/* harmony import */ var lodash_unified__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(46440); +/* harmony import */ var _social_network_adaptor_twitter_com_customization_twitter_color_schema_json__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(88674); +/* harmony import */ var immer__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(60232); + + + + + + + + + + + + + +const staticRef = (0,_masknet_shared_base__WEBPACK_IMPORTED_MODULE_5__/* .createSubscriptionFromValueRef */ ._H)(new _dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_9__.ValueRef('light')); +const defaultUseTheme = (t)=>t +; +/** + * @deprecated Should migrate to \@masknet/theme + */ function useClassicMaskSNSTheme() { + const provider = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(_social_network__WEBPACK_IMPORTED_MODULE_1__/* .activatedSocialNetworkUI.customization.paletteMode */ .LM.customization.paletteMode?.current || staticRef).current; + const usePostTheme = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(_social_network__WEBPACK_IMPORTED_MODULE_1__/* .activatedSocialNetworkUI.customization.useTheme */ .LM.customization.useTheme || defaultUseTheme).current; + const palette = (0,use_subscription__WEBPACK_IMPORTED_MODULE_2__.useSubscription)(provider); + const baseTheme = palette === 'dark' ? _MaskTheme__WEBPACK_IMPORTED_MODULE_3__/* .MaskDarkTheme */ .H : _MaskTheme__WEBPACK_IMPORTED_MODULE_3__/* .MaskLightTheme */ .C; + (0,immer__WEBPACK_IMPORTED_MODULE_10__/* .setAutoFreeze */ .Fl)(false); + const maskTheme = (0,immer__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .ZP)(baseTheme, (theme)=>{ + const colorSchema = _social_network_adaptor_twitter_com_customization_twitter_color_schema_json__WEBPACK_IMPORTED_MODULE_8__[theme.palette.mode]; + theme.palette.maskColor = colorSchema.maskColor; + }); + // TODO: support RTL? + const [localization, isRTL] = (0,_useThemeLanguage__WEBPACK_IMPORTED_MODULE_4__/* .useThemeLanguage */ .e)((0,_masknet_shared_base_ui__WEBPACK_IMPORTED_MODULE_6__/* .useValueRef */ .E)(_settings_settings__WEBPACK_IMPORTED_MODULE_7__/* .languageSettings */ .pQ)); + const theme1 = (0,_mui_material__WEBPACK_IMPORTED_MODULE_11__/* ["default"] */ .Z)(maskTheme, localization); + return usePostTheme(theme1); +} +function useClassicMaskSNSPluginTheme() { + const theme = useClassicMaskSNSTheme(); + return (0,_mui_material__WEBPACK_IMPORTED_MODULE_11__/* ["default"] */ .Z)((0,lodash_unified__WEBPACK_IMPORTED_MODULE_12__/* ["default"] */ .Z)((0,lodash_unified__WEBPACK_IMPORTED_MODULE_13__/* ["default"] */ .Z)(theme), { + components: { + MuiButton: { + defaultProps: { + variant: 'roundedContained' + } + } + } + })); +} + + +/***/ }), + +/***/ 24103: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "N": () => (/* binding */ useColorStyles) +/* harmony export */ }); +/* harmony import */ var _masknet_theme__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(31939); +/* harmony import */ var _mui_material_colors__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(15746); +/* harmony import */ var _mui_material_colors__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(92017); +/* harmony import */ var _mui_material_colors__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(94362); + + +const useColorStyles = (0,_masknet_theme__WEBPACK_IMPORTED_MODULE_0__/* .makeStyles */ .ZL)()((theme)=>{ + const dark = theme.palette.mode === 'dark'; + return { + error: { + color: dark ? _mui_material_colors__WEBPACK_IMPORTED_MODULE_1__/* ["default"][500] */ .Z[500] : _mui_material_colors__WEBPACK_IMPORTED_MODULE_1__/* ["default"][900] */ .Z[900] + }, + success: { + color: dark ? _mui_material_colors__WEBPACK_IMPORTED_MODULE_2__/* ["default"][500] */ .Z[500] : _mui_material_colors__WEBPACK_IMPORTED_MODULE_2__/* ["default"][800] */ .Z[800] + }, + info: { + color: dark ? _mui_material_colors__WEBPACK_IMPORTED_MODULE_3__/* ["default"][500] */ .Z[500] : _mui_material_colors__WEBPACK_IMPORTED_MODULE_3__/* ["default"][800] */ .Z[800] + } + }; +}); + + +/***/ }), + +/***/ 87434: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "eE": () => (/* binding */ useActivatedPluginsDashboard), +/* harmony export */ "yf": () => (/* binding */ useActivatedPluginDashboard) +/* harmony export */ }); +/* unused harmony export startPluginDashboard */ +/* harmony import */ var _servie_events__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(69260); +/* harmony import */ var use_subscription__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(14257); +/* harmony import */ var _manage__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(32670); + + + +const { activated , startDaemon , events } = (0,_manage__WEBPACK_IMPORTED_MODULE_1__/* .createManager */ .m)((def)=>def.Dashboard +); +const subscription = { + getCurrentValue: ()=>[ + ...activated.plugins + ] + , + subscribe: (f)=>events.on(_servie_events__WEBPACK_IMPORTED_MODULE_2__/* .ALL_EVENTS */ .Ko, f) +}; +function useActivatedPluginsDashboard() { + return (0,use_subscription__WEBPACK_IMPORTED_MODULE_0__.useSubscription)(subscription); +} +function useActivatedPluginDashboard(pluginID) { + const plugins = (0,use_subscription__WEBPACK_IMPORTED_MODULE_0__.useSubscription)(subscription); + return plugins.find((x)=>x.ID === pluginID + ); +} +function startPluginDashboard(host) { + startDaemon(host); +} + + +/***/ }), + +/***/ 31293: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "j": () => (/* binding */ PluginId), +/* harmony export */ "m": () => (/* binding */ CurrentSNSNetwork) +/* harmony export */ }); +var CurrentSNSNetwork; +(function(CurrentSNSNetwork) { + CurrentSNSNetwork[CurrentSNSNetwork["Unknown"] = 0] = "Unknown"; + CurrentSNSNetwork[CurrentSNSNetwork["Facebook"] = 1] = "Facebook"; + CurrentSNSNetwork[CurrentSNSNetwork["Twitter"] = 2] = "Twitter"; + CurrentSNSNetwork[CurrentSNSNetwork["Instagram"] = 3] = "Instagram"; + CurrentSNSNetwork[CurrentSNSNetwork["Minds"] = 4] = "Minds"; +})(CurrentSNSNetwork || (CurrentSNSNetwork = {})); +var PluginId; +(function(PluginId) { + PluginId["Avatar"] = 'com.maskbook.avatar'; + PluginId["ArtBlocks"] = 'io.artblocks'; + PluginId["Collectible"] = 'com.maskbook.collectibles'; + PluginId["CryptoArtAI"] = 'com.maskbook.cryptoartai'; + PluginId["dHEDGE"] = 'org.dhedge'; + PluginId["EVM"] = 'com.mask.evm'; + PluginId["NextID"] = 'com.mask.next_id'; + PluginId["External"] = 'io.mask.external'; + PluginId["Furucombo"] = 'app.furucombo'; + PluginId["FindTruman"] = 'org.findtruman'; + PluginId["Gitcoin"] = 'co.gitcoin'; + PluginId["GoodGhosting"] = 'co.good_ghosting'; + PluginId["MaskBox"] = 'com.maskbook.box'; + PluginId["Poll"] = 'com.maskbook.poll'; + PluginId["Profile"] = 'com.mask.profile'; + PluginId["Trader"] = 'com.maskbook.trader'; + PluginId["Tips"] = 'com.maskbook.tip'; + PluginId["Transak"] = 'com.maskbook.transak'; + PluginId["Valuables"] = 'com.maskbook.tweet'; + PluginId["DAO"] = 'money.juicebox'; + PluginId["Debugger"] = 'io.mask.debugger'; + PluginId["Example"] = 'io.mask.example'; + PluginId["Flow"] = 'com.mask.flow'; + PluginId["RSS3"] = 'bio.rss3'; + PluginId["RedPacket"] = 'com.maskbook.red_packet'; + PluginId["RedPacketNFT"] = 'com.maskbook.red_packet_nft'; + PluginId["Pets"] = 'com.maskbook.pets'; + PluginId["Snapshot"] = 'org.snapshot'; + PluginId["Savings"] = 'com.savings'; + PluginId["ITO"] = 'com.maskbook.ito'; + PluginId["Wallet"] = 'com.maskbook.wallet'; + PluginId["PoolTogether"] = 'com.pooltogether'; + PluginId["UnlockProtocol"] = 'com.maskbook.unlockprotocol'; + PluginId["FileService"] = 'com.maskbook.fileservice'; + PluginId["CyberConnect"] = 'me.cyberconnect.app'; + PluginId["GoPlusSecurity"] = 'io.gopluslabs.security'; + PluginId["CrossChainBridge"] = 'io.mask.cross-chain-bridge'; + PluginId["Referral"] = 'com.maskbook.referral'; +})(PluginId || (PluginId = {})); + + +/***/ }), + +/***/ 91202: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* unused harmony export useLookupAddress */ +/* harmony import */ var _useChainId__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(45087); +/* harmony import */ var _useWeb3State__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12368); + + + +function useLookupAddress(pluginId, domain) { + const chainId = useChainId(pluginId); + const { NameService , Others } = useWeb3State(pluginId); + return useAsyncRetry(async ()=>{ + if (!chainId || !domain || !Others?.isValidDomain?.(domain) || !NameService) return; + return NameService.lookup?.(chainId, domain); + }, [ + chainId, + domain, + NameService, + Others + ]); +} + + +/***/ }), + +/***/ 16394: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* unused harmony export useTransactions */ +/* harmony import */ var _entry_web3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(50719); + + +function useTransactions(pluginID, options) { + const account = useAccount(pluginID); + const chainId = useChainId(pluginID); + const hub = useWeb3Hub(pluginID, options); + return useAsyncRetry(async ()=>{ + return hub?.getTransactions(options?.chainId ?? chainId, options?.account ?? account); + }, [ + account, + chainId, + hub + ]); +} + + +/***/ }), + +/***/ 34849: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "R": () => (/* binding */ WalletMessages) +/* harmony export */ }); +/* harmony import */ var _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(70226); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(24003); + + +if (false) {} +const WalletMessages = { + events: (0,_masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__/* .createPluginMessage */ .I4)(_constants__WEBPACK_IMPORTED_MODULE_1__/* .PLUGIN_ID */ .Uu) +}; + + +/***/ }), + +/***/ 30807: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* unused harmony export createGlobalState */ +/* harmony import */ var use_subscription__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(14257); +/* harmony import */ var ts_results__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(48160); + + +/** + * Create a new global state. + * + * @param f The async function that return the data needed. + * @param subscribe + * The subscribe function that call the callback when the data changed. + * It will call the f again to revalidate the data. + * + * @returns + * It returns a tuple. + * + * The first item is the react hooks for this resource. + * The hooks receive a argument "checked". + * If checked is true, it will return a status object so you can handle the error by yourself. + * + * The second item is the revalidation function. It can be called anywhere and returns a Promise. + * It will resolves regardless the f itself fulfilled or rejected. + */ function createGlobalState(f1, subscribe) { + const listeners = new Set(); + let currentValue = None; + let pending; + const sub = { + getCurrentValue () { + if (currentValue.none) { + subscribe(revalidate); + throw pending ||= revalidate(); + } + if (currentValue.val.err) throw currentValue.val.val; + return currentValue.val.val; + }, + subscribe (f) { + listeners.add(f); + return ()=>listeners.delete(f) + ; + } + }; + function useData() { + return useSubscription(sub); + } + function revalidate() { + return f1().then((val)=>currentValue = Some(Ok(val)) + , (err)=>currentValue = Some(Err(err)) + ).then(()=>undefined + ).finally(()=>listeners.forEach((f)=>f() + ) + ); + } + return [ + useData, + revalidate + ]; +} + + +/***/ }), + +/***/ 80226: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "E": () => (/* reexport safe */ _hooks__WEBPACK_IMPORTED_MODULE_2__.E), +/* harmony export */ "F$": () => (/* reexport safe */ _hooks__WEBPACK_IMPORTED_MODULE_2__.F$), +/* harmony export */ "N3": () => (/* reexport safe */ _components__WEBPACK_IMPORTED_MODULE_1__.N3), +/* harmony export */ "S8": () => (/* reexport safe */ _hooks__WEBPACK_IMPORTED_MODULE_2__.S8), +/* harmony export */ "SV": () => (/* reexport safe */ _components__WEBPACK_IMPORTED_MODULE_1__.SV), +/* harmony export */ "pv": () => (/* reexport safe */ _hooks__WEBPACK_IMPORTED_MODULE_2__.pv), +/* harmony export */ "xw": () => (/* reexport safe */ _bom__WEBPACK_IMPORTED_MODULE_0__.x) +/* harmony export */ }); +/* harmony import */ var _bom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(74762); +/* harmony import */ var _components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(58044); +/* harmony import */ var _hooks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(95169); + + + + + +/***/ }), + +/***/ 98981: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "N": () => (/* binding */ EMPTY_OBJECT), +/* harmony export */ "r": () => (/* binding */ EMPTY_LIST) +/* harmony export */ }); +const EMPTY_LIST = Object.freeze([]); +const EMPTY_OBJECT = Object.freeze({}); + + +/***/ }), + +/***/ 99594: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "mZ": () => (/* reexport safe */ _PopupRoutes__WEBPACK_IMPORTED_MODULE_0__.m), +/* harmony export */ "vq": () => (/* reexport safe */ _DashboardRoutes__WEBPACK_IMPORTED_MODULE_1__.v) +/* harmony export */ }); +/* unused harmony export relativeRouteOf */ +/* harmony import */ var _PopupRoutes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11337); +/* harmony import */ var _DashboardRoutes__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(89364); + + +function relativeRouteOf(parent) { + return (child)=>{ + if (!child.startsWith(parent)) throw new Error(); + return child.slice(parent.length).replace(/^\//, ''); + }; +} + + +/***/ }), + +/***/ 53734: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "Nb": () => (/* binding */ formatPersonaFingerprint), +/* harmony export */ "lK": () => (/* binding */ formatPersonaPublicKey), +/* harmony export */ "rY": () => (/* binding */ formatPersonaName) +/* harmony export */ }); +/* unused harmony exports MAX_PERSONA_LIMIT, MAX_PERSONA_NAME_LENGTH */ +function formatPersonaFingerprint(fingerprint, size = 0) { + if (size === 0) return fingerprint; + return `${fingerprint.slice(0, Math.max(0, 2 + size))}...${fingerprint.slice(-size)}`; +} +const MAX_PERSONA_LIMIT = 10; +const MAX_PERSONA_NAME_LENGTH = 12; +const formatPersonaName = (nickname)=>{ + if (!nickname) return ''; + if (nickname.length < MAX_PERSONA_NAME_LENGTH) return nickname; + return `${nickname.slice(0, 12)}...`; +}; +function formatPersonaPublicKey(address, size = 0) { + if (size === 0 || size >= 20) return address; + return `${address.slice(0, Math.max(0, 2 + size))}...${address.slice(-size)}`; +} + + +/***/ }), + +/***/ 51878: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* unused harmony export ChainIcon */ +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35667); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(58757); +/* harmony import */ var _masknet_theme__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(31939); + + + +const useStyles = (0,_masknet_theme__WEBPACK_IMPORTED_MODULE_2__/* .makeStyles */ .ZL)()((theme)=>({ + point: { + width: 12.5, + height: 12.5, + borderRadius: 6.25, + margin: 3.75 + }, + border: { + border: `1px solid ${theme.palette.background.paper}` + } + }) +); +const ChainIcon = /*#__PURE__*/ (/* unused pure expression or super */ null && (memo(({ color , size =12.5 , ...props })=>{ + const classes = useStylesExtends(useStyles(), props); + return /*#__PURE__*/ _jsx("div", { + className: classes.point, + style: { + width: size, + height: size, + backgroundColor: color + } + }); +}))); + + +/***/ }), + +/***/ 25593: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* unused harmony export MiniNetworkSelector */ +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35667); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(58757); +/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(35878); +/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(85792); +/* harmony import */ var _masknet_theme__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(31939); +/* harmony import */ var _ChainIcon__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(51878); +/* harmony import */ var _WalletIcon__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(58437); + + + + + + +const AllNetworkButton = (0,_mui_material__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .ZP)(_mui_material__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z)(({ theme })=>({ + display: 'inline-block', + marginRight: theme.spacing(1), + padding: 0, + borderRadius: '50%', + fontSize: 12, + '&:hover': { + boxShadow: 'none' + }, + opacity: 0.5 + }) +); +const useStyles = (0,_masknet_theme__WEBPACK_IMPORTED_MODULE_2__/* .makeStyles */ .ZL)()((theme, props)=>({ + networkSelected: { + opacity: 1, + '&:after': { + content: '""', + position: 'absolute', + bottom: -8, + right: (props.size - 4) / 2, + display: 'inline-block', + width: 4, + height: 4, + background: _masknet_theme__WEBPACK_IMPORTED_MODULE_2__/* .MaskColorVar.primary */ .ZN.primary, + borderRadius: '50%' + } + }, + networkDisabled: { + cursor: 'not-allowed', + '&:hover': { + opacity: 0.6 + } + } + }) +); +const MiniNetworkSelector = /*#__PURE__*/ (/* unused pure expression or super */ null && (memo(({ hideAllNetworkButton =false , onSelect , networks =[] , selectedNetwork , disabledNonCurrentNetwork =false , size =30 , })=>{ + const { classes } = useStyles({ + size + }); + return /*#__PURE__*/ _jsxs(Stack, { + direction: "row", + children: [ + !hideAllNetworkButton && /*#__PURE__*/ _jsx(AllNetworkButton, { + className: !selectedNetwork ? classes.networkSelected : '', + sx: { + width: size, + height: size, + minWidth: size, + lineHeight: `${size}px` + }, + onClick: ()=>onSelect(null) + , + children: "ALL" + }), + networks.filter((x)=>x.isMainnet + ).map((network)=>{ + return /*#__PURE__*/ _jsx(Box, { + position: "relative", + mr: 1, + height: size, + onClick: ()=>!disabledNonCurrentNetwork && onSelect(network) + , + sx: { + cursor: 'pointer', + opacity: '0.6', + ':hover': { + opacity: 1 + }, + userSelect: 'none', + lineHeight: `${size}px` + }, + className: selectedNetwork?.ID === network.ID ? classes.networkSelected : disabledNonCurrentNetwork ? classes.networkDisabled : '', + children: network.isMainnet ? /*#__PURE__*/ _jsx(WalletIcon, { + mainIcon: network.icon, + size: size + }) : /*#__PURE__*/ _jsx(ChainIcon, { + color: network.iconColor, + size: size + }) + }, network.ID); + }) + ] + }); +}))); + + +/***/ }), + +/***/ 89241: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "n2": () => (/* binding */ mediaViewerUrl) +/* harmony export */ }); +/* unused harmony exports SOCIAL_MEDIA_ICON_MAPPING, SOCIAL_MEDIA_ROUND_ICON_MAPPING, SOCIAL_MEDIA_NAME, SOCIAL_MEDIA_SUPPORTING_NEXT_DOT_ID, MAX_WALLET_LIMIT */ +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35667); +/* harmony import */ var _masknet_icons__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(37594); +/* harmony import */ var _masknet_icons__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(67558); +/* harmony import */ var _masknet_icons__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(12095); +/* harmony import */ var _masknet_icons__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(55903); +/* harmony import */ var _masknet_icons__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(35961); +/* harmony import */ var _masknet_icons__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(42099); +/* harmony import */ var _masknet_icons__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(24421); +/* harmony import */ var _masknet_icons__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(75430); +/* harmony import */ var _masknet_icons__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(62305); +/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(44451); + + + +const SOCIAL_MEDIA_ICON_MAPPING = { + [_masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .EnhanceableSite.Twitter */ .Jk.Twitter]: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_masknet_icons__WEBPACK_IMPORTED_MODULE_2__/* .TwitterColoredIcon */ .g, {}), + [_masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .EnhanceableSite.Facebook */ .Jk.Facebook]: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_masknet_icons__WEBPACK_IMPORTED_MODULE_3__/* .FacebookColoredIcon */ .W, {}), + [_masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .EnhanceableSite.Minds */ .Jk.Minds]: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_masknet_icons__WEBPACK_IMPORTED_MODULE_4__/* .MindsIcon */ .G, {}), + [_masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .EnhanceableSite.Instagram */ .Jk.Instagram]: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_masknet_icons__WEBPACK_IMPORTED_MODULE_5__/* .InstagramColoredIcon */ .$, {}), + [_masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .EnhanceableSite.OpenSea */ .Jk.OpenSea]: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_masknet_icons__WEBPACK_IMPORTED_MODULE_6__/* .OpenSeaColoredIcon */ .w, {}), + [_masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .EnhanceableSite.Localhost */ .Jk.Localhost]: null +}; +const SOCIAL_MEDIA_ROUND_ICON_MAPPING = { + [_masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .EnhanceableSite.Twitter */ .Jk.Twitter]: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_masknet_icons__WEBPACK_IMPORTED_MODULE_7__/* .TwitterRoundIcon */ .W, {}), + [_masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .EnhanceableSite.Facebook */ .Jk.Facebook]: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_masknet_icons__WEBPACK_IMPORTED_MODULE_8__/* .FacebookRoundIcon */ .F, {}), + [_masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .EnhanceableSite.Minds */ .Jk.Minds]: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_masknet_icons__WEBPACK_IMPORTED_MODULE_9__/* .MindsRoundIcon */ .W, {}), + [_masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .EnhanceableSite.Instagram */ .Jk.Instagram]: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_masknet_icons__WEBPACK_IMPORTED_MODULE_10__/* .InstagramRoundIcon */ .A, {}), + [_masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .EnhanceableSite.OpenSea */ .Jk.OpenSea]: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_masknet_icons__WEBPACK_IMPORTED_MODULE_6__/* .OpenSeaColoredIcon */ .w, {}), + [_masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .EnhanceableSite.Localhost */ .Jk.Localhost]: null +}; +const SOCIAL_MEDIA_NAME = { + [_masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .EnhanceableSite.Twitter */ .Jk.Twitter]: 'Twitter', + [_masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .EnhanceableSite.Facebook */ .Jk.Facebook]: 'Facebook', + [_masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .EnhanceableSite.Minds */ .Jk.Minds]: 'Mind', + [_masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .EnhanceableSite.Instagram */ .Jk.Instagram]: 'Instagram', + [_masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .EnhanceableSite.OpenSea */ .Jk.OpenSea]: 'OpenSea', + [_masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .EnhanceableSite.Localhost */ .Jk.Localhost]: 'Localhost' +}; +const SOCIAL_MEDIA_SUPPORTING_NEXT_DOT_ID = [ + _masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .EnhanceableSite.Twitter */ .Jk.Twitter +]; +const mediaViewerUrl = 'https://media-viewer.r2d2.to/index.html'; +const MAX_WALLET_LIMIT = 100; + + +/***/ }), + +/***/ 68483: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* unused harmony exports useMenuContext, useMenu, useMenuConfig */ +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35667); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(58757); + + + + +/** Provide ShadowRootMenu for useMenu in content script. */ const useMenuContext = /*#__PURE__*/ (/* unused pure expression or super */ null && (createContext(Menu))); +/** + * A util hooks for easier to use ``s. + * + * If you need configuration, please use useMenuConfig + */ // ! Do not change signature of this. Change useMenuConfig instead. +function useMenu(...elements) { + return useMenuConfig(elements, {}); +} +function useMenuConfig(elements, config) { + const [anchorEl, setAnchorEl] = useState(null); + const [status, setOpen] = useState(false); + const open = useCallback((anchorElOrEvent)=>{ + let element; + if (anchorElOrEvent instanceof HTMLElement) { + element = anchorElOrEvent; + } else { + element = anchorElOrEvent.currentTarget; + } + setAnchorEl(element); + setOpen(true); + // HACK: it seems like anchor doesn't work correctly + // but a force repaint can solve the problem. + window.requestAnimationFrame(update); + }, []); + const update = useUpdate(); + const close = useCallback(()=>setOpen(false) + , []); + const Menu1 = useContext(useMenuContext); + return [ + /*#__PURE__*/ _jsx(Menu1, { + open: status, + onClose: close, + onClick: close, + anchorEl: anchorEl, + ...config, + children: elements?.map((element, key)=>/*#__PURE__*/ isValidElement(element) ? /*#__PURE__*/ cloneElement(element, { + ...element.props, + key + }) : element + ) + }, "menu"), + open, + close, + ]; +} + + +/***/ }), + +/***/ 59478: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* unused harmony exports languages, addSharedI18N */ +/* harmony import */ var _en_US_json__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(75961); +/* harmony import */ var _ja_JP_json__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(45558); +/* harmony import */ var _ko_KR_json__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(93495); +/* harmony import */ var _qya_AA_json__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(88807); +/* harmony import */ var _zh_CN_json__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(83055); +/* harmony import */ var _zh_TW_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(47359); +/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(44451); +// This file is auto generated. DO NOT EDIT +// Run `npx gulp sync-languages` to regenerate. +// Default fallback language in a family of languages are chosen by the alphabet order +// To overwrite this, please overwrite packages/scripts/src/locale-kit-next/index.ts + + + + + + +const languages = { + en: _en_US_json__WEBPACK_IMPORTED_MODULE_0__, + ja: _ja_JP_json__WEBPACK_IMPORTED_MODULE_1__, + ko: _ko_KR_json__WEBPACK_IMPORTED_MODULE_2__, + qy: _qya_AA_json__WEBPACK_IMPORTED_MODULE_3__, + 'zh-CN': _zh_CN_json__WEBPACK_IMPORTED_MODULE_4__, + zh: _zh_TW_json__WEBPACK_IMPORTED_MODULE_5__ +}; + +const addSharedI18N = (0,_masknet_shared_base__WEBPACK_IMPORTED_MODULE_6__/* .createI18NBundle */ .C9)('shared', languages); +// @ts-ignore +if (false) {} + + +/***/ }), + +/***/ 31180: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "P": () => (/* binding */ CSSVariableInjectorCSS) +/* harmony export */ }); +/* unused harmony export applyMaskColorVars */ +/* harmony import */ var lodash_unified__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(34936); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(46768); +/* harmony import */ var tinycolor2__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(32086); +/* harmony import */ var tinycolor2__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(tinycolor2__WEBPACK_IMPORTED_MODULE_1__); + + + +// Fragment are in the form of "1, 2, 3" +// which is used for rgba(var(--x), alpha) +function getRGBFragment(x, key) { + const { r , g , b } = tinycolor2__WEBPACK_IMPORTED_MODULE_1___default()(x[key]).toRgb(); + return [ + r, + g, + b + ].join(', '); +} +function CSSVariableInjectorCSS(scheme) { + const ns = scheme === 'light' ? _constants__WEBPACK_IMPORTED_MODULE_0__/* .LightColor */ .C : _constants__WEBPACK_IMPORTED_MODULE_0__/* .DarkColor */ .I; + const result = {}; + for (const key of Object.keys(ns)){ + // --mask-name: val; + result[`--mask-${(0,lodash_unified__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z)(key)}`] = ns[key]; + result[`--mask-${(0,lodash_unified__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z)(key)}-fragment`] = getRGBFragment(ns, key); + } + return { + ':root, :host': result + }; +} +function applyMaskColorVars(node, scheme) { + const ns = scheme === 'light' ? LightColor : DarkColor; + if (node === document.body) { + const id = '#mask-style-var'; + if (!document.getElementById(id)) { + const style = document.createElement('style'); + style.id = id; + document.head.appendChild(style); + } + applyMaskColorVars(document.getElementById(id), scheme); + return; + } else if (node instanceof HTMLStyleElement) { + let rule = ':root, :host {\n'; + for (const key of Object.keys(ns)){ + // --mask-name: val; + rule += ` --mask-${kebabCase(key)}: ${ns[key]};\n`; + rule += ` --mask-${kebabCase(key)}-fragment: ${getRGBFragment(ns, key)};\n`; + } + node.textContent = rule + '}'; + } else { + for (const key of Object.keys(ns)){ + node.style.setProperty('--mask-' + kebabCase(key), ns[key]); + node.style.setProperty('--mask-' + kebabCase(key) + '-fragment', getRGBFragment(ns, key)); + } + } +} + + +/***/ }), + +/***/ 88762: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "Ci": () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_2__.C), +/* harmony export */ "I3": () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_2__.I), +/* harmony export */ "US": () => (/* reexport safe */ _Injector__WEBPACK_IMPORTED_MODULE_1__.U), +/* harmony export */ "ZN": () => (/* reexport safe */ _vars__WEBPACK_IMPORTED_MODULE_3__.Z), +/* harmony export */ "nb": () => (/* reexport safe */ _vars__WEBPACK_IMPORTED_MODULE_3__.n) +/* harmony export */ }); +/* harmony import */ var _applyToDOM__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(31180); +/* harmony import */ var _Injector__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(42381); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(46768); +/* harmony import */ var _vars__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(8600); + + + + + + +/***/ }), + +/***/ 7848: +/***/ ((__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) => { + + +// UNUSED EXPORTS: ButtonGroupTabList, ButtonTab + +// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.1.0/node_modules/react/jsx-runtime.js +var jsx_runtime = __webpack_require__(35667); +// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.8.0_4xriuibr7qayay6mzcpq5f43me/node_modules/@mui/material/styles/styled.js +var styled = __webpack_require__(35878); +// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.8.0_4xriuibr7qayay6mzcpq5f43me/node_modules/@mui/material/Button/Button.js +var Button = __webpack_require__(85792); +// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.1.0/node_modules/react/index.js +var react = __webpack_require__(58757); +;// CONCATENATED MODULE: ../theme/src/Components/ButtonGroupTab/ButtonGroupTab.tsx + + + +const TabButtonWrap = (0,styled/* default */.ZP)(Button/* default */.Z)(({ theme })=>({ + paddingLeft: theme.spacing(2), + paddingRight: theme.spacing(2), + flex: 1 + }) +); +/** + * This is an alternative implementation of Tab component, to use with . + */ const ButtonGroupTab_ButtonTab = /*#__PURE__*/ (/* unused pure expression or super */ null && (forwardRef((props, ref)=>{ + const activated = !!props.selected; + const { onChange , onClick , value } = props; + const handleClick = (event)=>{ + if (!activated && onChange) onChange(event, String(value)); + if (onClick) onClick(event); + }; + // TODO: replace secondary to correct theme color + return /*#__PURE__*/ _jsx(TabButtonWrap, { + ref: ref, + role: "tab", + ...props, + disableElevation: true, + variant: "contained", + color: activated ? 'primary' : 'secondary', + "aria-selected": activated, + onClick: handleClick, + onChange: undefined + }); +}))); + +;// CONCATENATED MODULE: ../theme/src/Components/ButtonGroupTab/ButtonGroupTabList.tsx + + + + + +/** + * This component is like TabList + Tabs in the @mui/material. + * It should be used with . + * + * Warning: Only a few "value" and "label" props on the @mui/material component will work. + * + * @example + * const [currentTab, onChange, tabs, setTab] = useTab('tab1', 'tab2', 'tab3') + * return ( + * + * + * + * + * + * + * Item One + * Item Two + * Item Three + * + * ) + */ const ButtonGroupTabList = /*#__PURE__*/ (/* unused pure expression or super */ null && (forwardRef((props, ref)=>{ + const context = useTabContext(); + if (context === null) throw new TypeError('No TabContext provided'); + const children = Children.map(props.children, (child)=>{ + if (!/*#__PURE__*/ isValidElement(child)) return child; + const extra = { + 'aria-controls': getPanelId(context, child.props.value), + id: getTabId(context, child.props.value), + selected: child.props.value === context.value, + onChange: props.onChange + }; + if (child.type === Tab) { + return /*#__PURE__*/ _jsx(ButtonTab, { + value: child.props.value, + ...extra, + children: child.props.label + }); + } + return /*#__PURE__*/ cloneElement(child, extra); + }); + const { onChange , ...rest } = props; + return /*#__PURE__*/ _jsx(ButtonGroup, { + ...rest, + ref: ref, + role: "tablist", + children: children + }); +}))); + +;// CONCATENATED MODULE: ../theme/src/Components/ButtonGroupTab/index.ts + + + + +/***/ }), + +/***/ 75168: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* unused harmony export CountdownButton */ +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35667); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(58757); + + + +const CountdownButton = /*#__PURE__*/ (/* unused pure expression or super */ null && (forwardRef((props, ref)=>{ + const { duration =60 , children , repeatContent ='Resend' , onClick , disabled , ...others } = props; + const [countdown, setCountdown] = useState(undefined); + const handleClick = (event)=>{ + setCountdown(duration); + onClick?.(event); + }; + const content = useMemo(()=>{ + if (countdown) { + return `${children} (${countdown})`; + } else if (countdown === 0) { + return repeatContent; + } else { + return children; + } + }, [ + countdown + ]); + useEffect(()=>{ + if (countdown) { + const timer = setTimeout(()=>{ + setCountdown(countdown - 1); + }, 1000); + return ()=>{ + clearTimeout(timer); + }; + } + return ()=>{}; + }, [ + countdown + ]); + return /*#__PURE__*/ _jsx(Button, { + ref: ref, + ...others, + onClick: handleClick, + disabled: !!countdown || disabled, + children: content + }); +}))); + + +/***/ }), + +/***/ 54650: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* unused harmony export PhoneNumberField */ +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35667); +/* harmony import */ var _UIHelper_makeStyles__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(75322); +/* harmony import */ var _TextField__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(32876); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(58757); + + + + + +const useStyles = (0,_UIHelper_makeStyles__WEBPACK_IMPORTED_MODULE_1__/* .makeStyles */ .Z)()({ + country: { + width: '120px', + marginRight: '10px' + }, + phone: { + width: '100%' + } +}); +const PhoneNumberField = ({ label , value , error , onBlur , countryPlaceholder ='+1' , onChange })=>{ + const { classes } = useStyles(); + const [phone, setPhone] = useState(value.phone); + const [countryCode, setCountryCode] = useState(value.country); + const handleCountryCodeChange = (event)=>{ + const inputValue = event.target.value; + const prefix = inputValue.startsWith('+') ? '' : '+'; + setCountryCode(prefix + inputValue); + onChange?.({ + country: inputValue, + phone + }); + }; + const handlePhoneChange = (event)=>{ + const inputValue = event.target.value; + setPhone(inputValue); + onChange?.({ + country: countryCode, + phone: inputValue + }); + }; + return /*#__PURE__*/ _jsxs("div", { + children: [ + label, + /*#__PURE__*/ _jsxs(Box, { + sx: { + display: 'flex', + alignItems: 'flex-start' + }, + children: [ + /*#__PURE__*/ _jsx("div", { + className: classes.country, + children: /*#__PURE__*/ _jsx(MaskTextField, { + value: countryCode, + onChange: handleCountryCodeChange, + placeholder: countryPlaceholder + }) + }), + /*#__PURE__*/ _jsx("div", { + className: classes.phone, + children: /*#__PURE__*/ _jsx(MaskTextField, { + fullWidth: true, + value: phone, + onChange: handlePhoneChange, + onBlur: onBlur, + type: "text", + error: !!error, + helperText: error + }) + }) + ] + }) + ] + }); +}; + + +/***/ }), + +/***/ 13643: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* unused harmony export SendingCodeField */ +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35667); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(58757); +/* harmony import */ var _TextField__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(32876); +/* harmony import */ var _CountdownButton__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(75168); + + + + + +const SendingCodeField = ({ onSend , sendButtonText ='Send' , label , errorMessage , onBlur , disabled =false , autoSend =false , onChange })=>{ + const [code, setCode] = useState(''); + const sendButton = useRef(null); + useEffect(()=>{ + onChange?.(code); + }, [ + code + ]); + useEffect(()=>{ + if (autoSend) sendButton.current?.click(); + }, [ + autoSend + ]); + return /*#__PURE__*/ _jsxs(Box, { + children: [ + /*#__PURE__*/ _jsx(Box, { + children: label + }), + /*#__PURE__*/ _jsx(Box, { + children: /*#__PURE__*/ _jsxs(Stack, { + alignItems: "flex-start", + direction: "row", + spacing: 1, + children: [ + /*#__PURE__*/ _jsx(Box, { + flex: 1, + children: /*#__PURE__*/ _jsx(MaskTextField, { + size: "small", + value: code, + onChange: (event)=>setCode(event.target.value) + , + error: !!errorMessage, + helperText: errorMessage, + onBlur: ()=>onBlur?.(code) + , + disabled: disabled + }) + }), + /*#__PURE__*/ _jsx(CountdownButton, { + ref: sendButton, + size: "medium", + sx: { + height: '40px', + width: '100px' + }, + onClick: onSend, + disabled: disabled, + children: sendButtonText + }) + ] + }) + }) + ] + }); +}; + + +/***/ }), + +/***/ 8647: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* unused harmony exports MaskLightTheme, MaskDarkTheme */ +/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(98109); +/* harmony import */ var _changes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2241); +/* harmony import */ var _component_changes__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(53931); +/* harmony import */ var lodash_unified__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(9084); +/* harmony import */ var _CSSVariables__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(88762); + + + + + +const color = (mode, color1)=>({ + mode, + primary: { + main: color1.primary, + contrastText: color1.primaryContrastText + }, + secondary: { + main: color1.primary, + contrastText: color1.primaryContrastText + }, + background: { + paper: color1.primaryBackground, + default: color1.secondaryBackground + }, + error: { + main: color1.redMain, + contrastText: color1.redContrastText + }, + success: { + main: color1.greenMain + }, + warning: { + main: color1.orangeMain + }, + divider: color1.divider, + text: { + primary: color1.textPrimary, + secondary: color1.textSecondary + } + }) +; +function MaskTheme(mode) { + const colors = mode === 'dark' ? _CSSVariables__WEBPACK_IMPORTED_MODULE_2__/* .DarkColor */ .I3 : _CSSVariables__WEBPACK_IMPORTED_MODULE_2__/* .LightColor */ .Ci; + const theme = (0,lodash_unified__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z)({ + palette: color(mode, colors) + }, ...Object.values(_changes__WEBPACK_IMPORTED_MODULE_0__).map(applyColors), ...Object.values(_component_changes__WEBPACK_IMPORTED_MODULE_1__).map(applyColors)); + return (0,_mui_material__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z)(theme); + function applyColors(x) { + if (typeof x === 'function') return x(mode, colors); + return x; + } +} +const MaskLightTheme = MaskTheme('light'); +const MaskDarkTheme = MaskTheme('dark'); + + +/***/ }), + +/***/ 84432: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "Bc": () => (/* reexport safe */ _custom_ui_helper__WEBPACK_IMPORTED_MODULE_1__.B), +/* harmony export */ "ZL": () => (/* reexport safe */ _makeStyles__WEBPACK_IMPORTED_MODULE_0__.Z), +/* harmony export */ "ze": () => (/* reexport safe */ _custom_ui_helper__WEBPACK_IMPORTED_MODULE_1__.z) +/* harmony export */ }); +/* harmony import */ var _makeStyles__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(75322); +/* harmony import */ var _custom_ui_helper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(89259); + + + + + +/***/ }), + +/***/ 75322: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "Z": () => (/* binding */ makeStyles) +/* harmony export */ }); +/* harmony import */ var tss_react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(82737); +/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(76618); + + +const { makeStyles } = (0,tss_react__WEBPACK_IMPORTED_MODULE_0__/* .createMakeStyles */ .a0)({ + useTheme: _mui_material__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z +}); + + +/***/ }), + +/***/ 72499: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "W8": () => (/* binding */ EthereumMethodType), +/* harmony export */ "XQ": () => (/* binding */ SchemaType), +/* harmony export */ "a_": () => (/* binding */ ChainId), +/* harmony export */ "iE": () => (/* binding */ TransactionEventType), +/* harmony export */ "lP": () => (/* binding */ ProviderType), +/* harmony export */ "n$": () => (/* binding */ TransactionStateType), +/* harmony export */ "td": () => (/* binding */ NetworkType) +/* harmony export */ }); +/* unused harmony exports DomainProvider, FilterTransactionType, TransactionType, DebankTransactionDirection, ZerionTransactionDirection, FungibleAssetProvider, NonFungibleAssetProvider */ +var ChainId; +(function(ChainId) { + ChainId[ChainId[// Mainnet + "Mainnet"] = 1] = "Mainnet"; + ChainId[ChainId["Ropsten"] = 3] = "Ropsten"; + ChainId[ChainId["Rinkeby"] = 4] = "Rinkeby"; + ChainId[ChainId["Gorli"] = 5] = "Gorli"; + ChainId[ChainId["Kovan"] = 42] = "Kovan"; + ChainId[ChainId[// BSC + "BSC"] = 56] = "BSC"; + ChainId[ChainId["BSCT"] = 97] = "BSCT"; + ChainId[ChainId[// Matic + "Matic"] = 137] = "Matic"; + ChainId[ChainId["Mumbai"] = 80001] = "Mumbai"; + ChainId[ChainId[// Arbitrum + "Arbitrum"] = 42161] = "Arbitrum"; + ChainId[ChainId["Arbitrum_Rinkeby"] = 421611] = "Arbitrum_Rinkeby"; + ChainId[ChainId[// xDai + "xDai"] = 100] = "xDai"; + ChainId[ChainId[// Avalanche + "Avalanche"] = 43114] = "Avalanche"; + ChainId[ChainId["Avalanche_Fuji"] = 43113] = "Avalanche_Fuji"; + ChainId[ChainId[// Celo + "Celo"] = 42220] = "Celo"; + ChainId[ChainId[// Fantom + "Fantom"] = 250] = "Fantom"; + ChainId[ChainId[// Aurora + "Aurora"] = 1313161554] = "Aurora"; + ChainId[ChainId["Aurora_Testnet"] = 1313161555] = "Aurora_Testnet"; + ChainId[ChainId[// Fuse + "Fuse"] = 122] = "Fuse"; + ChainId[ChainId[// Boba + "Boba"] = 288] = "Boba"; + ChainId[ChainId[// Metis + "Metis"] = 1088] = "Metis"; + ChainId[ChainId[// Optimistic + "Optimistic"] = 10] = "Optimistic"; + ChainId[ChainId[// Harmony + "Harmony"] = 1666600000] = "Harmony"; + ChainId[ChainId["Harmony_Test"] = 1666700000] = "Harmony_Test"; + ChainId[ChainId[// Conflux + "Conflux"] = 1030] = "Conflux"; +})(ChainId || (ChainId = {})); +var SchemaType; +(function(SchemaType) { + SchemaType[SchemaType["Native"] = 1] = "Native"; + SchemaType[SchemaType["ERC20"] = 2] = "ERC20"; + SchemaType[SchemaType["ERC721"] = 3] = "ERC721"; + SchemaType[SchemaType["ERC1155"] = 4] = "ERC1155"; +})(SchemaType || (SchemaType = {})); +var EthereumMethodType; +(function(EthereumMethodType) { + EthereumMethodType["WATCH_ASSET"] = 'wallet_watchAsset'; + EthereumMethodType["WATCH_ASSET_LEGACY"] = 'metamask_watchAsset'; + EthereumMethodType["PERSONAL_SIGN"] = 'personal_sign'; + EthereumMethodType[// https://eips.ethereum.org/EIPS/eip-3085 + "WALLET_ADD_ETHEREUM_CHAIN"] = 'wallet_addEthereumChain'; + EthereumMethodType[// https://eips.ethereum.org/EIPS/eip-3326 + "WALLET_SWITCH_ETHEREUM_CHAIN"] = 'wallet_switchEthereumChain'; + EthereumMethodType["ETH_CHAIN_ID"] = 'eth_chainId'; + EthereumMethodType["ETH_ACCOUNTS"] = 'eth_accounts'; + EthereumMethodType["ETH_REQUEST_ACCOUNTS"] = 'eth_requestAccounts'; + EthereumMethodType["ETH_SEND_TRANSACTION"] = 'eth_sendTransaction'; + EthereumMethodType["ETH_SEND_RAW_TRANSACTION"] = 'eth_sendRawTransaction'; + EthereumMethodType["ETH_GET_CODE"] = 'eth_getCode'; + EthereumMethodType["ETH_GAS_PRICE"] = 'eth_gasPrice'; + EthereumMethodType["ETH_GET_BLOCK_BY_NUMBER"] = 'eth_getBlockByNumber'; + EthereumMethodType["ETH_GET_BLOCK_BY_HASH"] = 'eth_getBlockByHash'; + EthereumMethodType["ETH_BLOCK_NUMBER"] = 'eth_blockNumber'; + EthereumMethodType["ETH_GET_BALANCE"] = 'eth_getBalance'; + EthereumMethodType["ETH_GET_TRANSACTION_BY_HASH"] = 'eth_getTransactionByHash'; + EthereumMethodType["ETH_GET_TRANSACTION_RECEIPT"] = 'eth_getTransactionReceipt'; + EthereumMethodType["ETH_GET_TRANSACTION_COUNT"] = 'eth_getTransactionCount'; + EthereumMethodType["ETH_GET_FILTER_CHANGES"] = 'eth_getFilterChanges'; + EthereumMethodType["ETH_NEW_PENDING_TRANSACTION_FILTER"] = 'eth_newPendingTransactionFilter'; + EthereumMethodType["ETH_ESTIMATE_GAS"] = 'eth_estimateGas'; + EthereumMethodType["ETH_CALL"] = 'eth_call'; + EthereumMethodType["ETH_SIGN"] = 'eth_sign'; + EthereumMethodType["ETH_DECRYPT"] = 'eth_decrypt'; + EthereumMethodType["ETH_SIGN_TYPED_DATA"] = 'eth_signTypedData_v4'; + EthereumMethodType["ETH_SIGN_TRANSACTION"] = 'eth_signTransaction'; + EthereumMethodType["ETH_GET_LOGS"] = 'eth_getLogs'; + EthereumMethodType["ETH_GET_ENCRYPTION_PUBLIC_KEY"] = 'eth_getEncryptionPublicKey'; + EthereumMethodType[// only for mask + "MASK_LOGIN"] = "MASK_LOGIN"; + EthereumMethodType["MASK_LOGOUT"] = "MASK_LOGOUT"; + EthereumMethodType["MASK_REPLACE_TRANSACTION"] = 'mask_replaceTransaction'; +})(EthereumMethodType || (EthereumMethodType = {})); +var TransactionEventType; +(function(TransactionEventType) { + TransactionEventType["TRANSACTION_HASH"] = 'transactionHash'; + TransactionEventType["RECEIPT"] = 'receipt'; + TransactionEventType["CONFIRMATION"] = 'confirmation'; + TransactionEventType["ERROR"] = 'error'; +})(TransactionEventType || (TransactionEventType = {})); +var DomainProvider; +(function(DomainProvider) { + DomainProvider["ENS"] = "ENS"; + DomainProvider["UNS"] = "UNS"; +})(DomainProvider || (DomainProvider = {})); +var FilterTransactionType; +(function(FilterTransactionType) { + FilterTransactionType["ALL"] = 'all'; + FilterTransactionType["SEND"] = 'send'; + FilterTransactionType["RECEIVE"] = 'receive'; + FilterTransactionType["CREATE_LUCKY_DROP"] = 'create_lucky_drop'; + FilterTransactionType["FILL_POOL"] = 'fill_pool'; +})(FilterTransactionType || (FilterTransactionType = {})); +var TransactionType; +(function(TransactionType) { + TransactionType["SEND"] = 'Send'; + TransactionType["SWAP"] = 'swap'; + TransactionType["RECEIVE"] = 'Receive'; + TransactionType["TRANSFER"] = 'transfer'; + TransactionType["CREATE_LUCKY_DROP"] = 'create_lucky_drop'; + TransactionType["CREATE_RED_PACKET"] = 'create_red_packet'; + TransactionType["FILL_POOL"] = 'fill_pool'; + TransactionType["CLAIM"] = 'claim'; + TransactionType["REFUND"] = 'refund'; +})(TransactionType || (TransactionType = {})); +var DebankTransactionDirection; +(function(DebankTransactionDirection) { + DebankTransactionDirection["SEND"] = 'send'; + DebankTransactionDirection["RECEIVE"] = 'receive'; +})(DebankTransactionDirection || (DebankTransactionDirection = {})); +var ZerionTransactionDirection; +(function(ZerionTransactionDirection) { + ZerionTransactionDirection["IN"] = 'in'; + ZerionTransactionDirection["OUT"] = 'out'; + ZerionTransactionDirection["SELF"] = 'self'; +})(ZerionTransactionDirection || (ZerionTransactionDirection = {})); +var TransactionStateType; +(function(TransactionStateType) { + TransactionStateType[TransactionStateType["UNKNOWN"] = 0] = "UNKNOWN"; + TransactionStateType[TransactionStateType[/** Wait for external provider */ "WAIT_FOR_CONFIRMING"] = 1] = "WAIT_FOR_CONFIRMING"; + TransactionStateType[TransactionStateType[/** Hash is available */ "HASH"] = 2] = "HASH"; + TransactionStateType[TransactionStateType[/** Receipt is available */ "RECEIPT"] = 3] = "RECEIPT"; + TransactionStateType[TransactionStateType[/** Confirmed or Reverted */ "CONFIRMED"] = 4] = "CONFIRMED"; + TransactionStateType[TransactionStateType[/** Fail to send */ "FAILED"] = 5] = "FAILED"; +})(TransactionStateType || (TransactionStateType = {})); +var NetworkType; +(function(NetworkType) { + NetworkType["Ethereum"] = "Ethereum"; + NetworkType["Binance"] = "Binance"; + NetworkType["Polygon"] = "Polygon"; + NetworkType["Arbitrum"] = "Arbitrum"; + NetworkType["xDai"] = "xDai"; + NetworkType["Celo"] = "Celo"; + NetworkType["Fantom"] = "Fantom"; + NetworkType["Aurora"] = "Aurora"; + NetworkType["Avalanche"] = "Avalanche"; + NetworkType["Boba"] = "Boba"; + NetworkType["Fuse"] = "Fuse"; + NetworkType["Metis"] = "Metis"; + NetworkType["Optimistic"] = "Optimistic"; + NetworkType["Harmony"] = "Harmony"; + NetworkType["Conflux"] = "Conflux"; +})(NetworkType || (NetworkType = {})); +var ProviderType; +(function(ProviderType) { + ProviderType["None"] = "None"; + ProviderType["MaskWallet"] = 'Maskbook'; + ProviderType["MetaMask"] = "MetaMask"; + ProviderType["WalletConnect"] = "WalletConnect"; + ProviderType["Fortmatic"] = "Fortmatic"; + ProviderType["Torus"] = "Torus"; + ProviderType["Coin98"] = "Coin98"; + ProviderType["MathWallet"] = "MathWallet"; + ProviderType["WalletLink"] = "WalletLink"; + ProviderType["CustomNetwork"] = "CustomNetwork"; +})(ProviderType || (ProviderType = {})); +var FungibleAssetProvider; +(function(FungibleAssetProvider) { + FungibleAssetProvider["ZERION"] = 'Zerion'; + FungibleAssetProvider["DEBANK"] = 'Debank'; +})(FungibleAssetProvider || (FungibleAssetProvider = {})); +var NonFungibleAssetProvider; +(function(NonFungibleAssetProvider) { + NonFungibleAssetProvider["OPENSEA"] = 'OpenSea'; + NonFungibleAssetProvider["RARIBLE"] = 'Rarible'; + NonFungibleAssetProvider["NFTSCAN"] = 'NFTScan'; + NonFungibleAssetProvider["ZORA"] = 'Zora'; +})(NonFungibleAssetProvider || (NonFungibleAssetProvider = {})); + + +/***/ }), + +/***/ 62846: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "Q_": () => (/* binding */ CHAIN_DESCRIPTORS), +/* harmony export */ "qQ": () => (/* binding */ NETWORK_DESCRIPTORS), +/* harmony export */ "zM": () => (/* binding */ PROVIDER_DESCRIPTORS) +/* harmony export */ }); +/* harmony import */ var _dimensiondev_kit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(46123); +/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(44451); +/* harmony import */ var _masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(67938); +/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(56874); + + + + +const PLUGIN_ID = _masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_2__/* .NetworkPluginID.PLUGIN_FLOW */ .FF.PLUGIN_FLOW; +const CHAIN_DESCRIPTORS = [ + { + type: _types__WEBPACK_IMPORTED_MODULE_3__/* .NetworkType.Flow */ .td.Flow, + chainId: _types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Mainnet */ .a_.Mainnet, + coinMarketCapChainId: '', + coinGeckoChainId: '', + coinGeckoPlatformId: '', + name: 'Flow', + color: '#16ff99', + fullName: 'Flow', + shortName: 'Flow', + network: 'mainnet', + nativeCurrency: (0,_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_2__/* .createFungibleToken */ .mn)(_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Mainnet */ .a_.Mainnet, _types__WEBPACK_IMPORTED_MODULE_3__/* .SchemaType.Fungible */ .XQ.Fungible, '0x1654653399040a61', 'Flow', 'FLOW', 8, 'https://static.flowscan.org/mainnet/icons/A.1654653399040a61.FlowToken.png'), + explorerURL: { + url: 'https://flowscan.org/' + } + }, + { + type: _types__WEBPACK_IMPORTED_MODULE_3__/* .NetworkType.Flow */ .td.Flow, + chainId: _types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Testnet */ .a_.Testnet, + coinMarketCapChainId: '', + coinGeckoChainId: '', + coinGeckoPlatformId: '', + name: 'Flow', + color: '#16ff99', + fullName: 'Flow', + shortName: 'Flow', + network: 'testnet', + nativeCurrency: (0,_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_2__/* .createFungibleToken */ .mn)(_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Mainnet */ .a_.Mainnet, _types__WEBPACK_IMPORTED_MODULE_3__/* .SchemaType.Fungible */ .XQ.Fungible, '0x7e60df042a9c0868', 'Flow', 'FLOW', 8, 'https://static.flowscan.org/mainnet/icons/A.1654653399040a61.FlowToken.png'), + explorerURL: { + url: 'https://testnet.flowscan.org/' + } + }, +]; +const NETWORK_DESCRIPTORS = [ + { + ID: `${PLUGIN_ID}_flow`, + networkSupporterPluginID: PLUGIN_ID, + chainId: _types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Mainnet */ .a_.Mainnet, + type: _types__WEBPACK_IMPORTED_MODULE_3__/* .NetworkType.Flow */ .td.Flow, + name: 'Flow', + icon: new URL(/* asset import */ __webpack_require__(85206), __webpack_require__.b), + iconColor: 'rgb(54, 173, 104)', + isMainnet: true + }, + { + ID: `${PLUGIN_ID}_flow_testnet`, + networkSupporterPluginID: PLUGIN_ID, + chainId: _types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Testnet */ .a_.Testnet, + type: _types__WEBPACK_IMPORTED_MODULE_3__/* .NetworkType.Flow */ .td.Flow, + name: 'Flow Testnet', + icon: new URL(/* asset import */ __webpack_require__(85206), __webpack_require__.b), + iconColor: 'rgb(54, 173, 104)', + isMainnet: false + }, +]; +const PROVIDER_DESCRIPTORS = [ + { + ID: `${PLUGIN_ID}_blocto`, + providerAdaptorPluginID: PLUGIN_ID, + type: _types__WEBPACK_IMPORTED_MODULE_3__/* .ProviderType.Blocto */ .lP.Blocto, + name: 'Blocto', + icon: new URL(/* asset import */ __webpack_require__(31116), __webpack_require__.b), + iconFilterColor: 'rgba(52, 133, 196, 0.2)', + backgroundGradient: 'linear-gradient(90deg, rgba(52, 133, 196, 0.2) 0%, rgba(0, 239, 139, 0.2) 100%), linear-gradient(0deg, #FFFFFF, #FFFFFF)', + homeLink: 'https://portto.com/', + shortenLink: 'portto.com', + enableRequirements: { + supportedChainIds: (0,_dimensiondev_kit__WEBPACK_IMPORTED_MODULE_0__/* .getEnumAsArray */ .Yl)(_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId */ .a_).map((x)=>x.value + ), + supportedEnhanceableSites: (0,_dimensiondev_kit__WEBPACK_IMPORTED_MODULE_0__/* .getEnumAsArray */ .Yl)(_masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .EnhanceableSite */ .Jk).map((x)=>x.value + ), + supportedExtensionSites: (0,_dimensiondev_kit__WEBPACK_IMPORTED_MODULE_0__/* .getEnumAsArray */ .Yl)(_masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .ExtensionSite */ .v_).map((x)=>x.value + ) + } + }, +]; + + +/***/ }), + +/***/ 4688: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "Q_": () => (/* binding */ CHAIN_DESCRIPTORS), +/* harmony export */ "qQ": () => (/* binding */ NETWORK_DESCRIPTORS), +/* harmony export */ "zM": () => (/* binding */ PROVIDER_DESCRIPTORS) +/* harmony export */ }); +/* harmony import */ var _dimensiondev_kit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(46123); +/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(44451); +/* harmony import */ var _masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(67938); +/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(50236); +/* harmony import */ var _primitives__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(62212); + + + + + +const PLUGIN_ID = _masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_2__/* .NetworkPluginID.PLUGIN_SOLANA */ .FF.PLUGIN_SOLANA; +const CHAIN_DESCRIPTORS = [ + { + type: _types__WEBPACK_IMPORTED_MODULE_3__/* .NetworkType.Solana */ .td.Solana, + chainId: _types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Mainnet */ .a_.Mainnet, + coinMarketCapChainId: '', + coinGeckoChainId: '', + coinGeckoPlatformId: '', + name: 'Solana', + color: '#17ac7c', + fullName: 'Solana', + shortName: 'Solana', + network: 'mainnet', + nativeCurrency: (0,_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_2__/* .createFungibleToken */ .mn)(_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Mainnet */ .a_.Mainnet, _types__WEBPACK_IMPORTED_MODULE_3__/* .SchemaType.Fungible */ .XQ.Fungible, _primitives__WEBPACK_IMPORTED_MODULE_4__/* .ZERO_ADDRESS */ .r, 'Solana', 'SOL', 9, 'https://assets.coingecko.com/coins/images/4128/small/solana.png'), + explorerURL: { + url: 'https://explorer.solana.com/' + } + }, + { + type: _types__WEBPACK_IMPORTED_MODULE_3__/* .NetworkType.Solana */ .td.Solana, + chainId: _types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Devnet */ .a_.Devnet, + coinMarketCapChainId: '', + coinGeckoChainId: '', + coinGeckoPlatformId: '', + name: 'Solana', + color: '#17ac7c', + fullName: 'Solana', + shortName: 'Solana', + network: 'devnet', + nativeCurrency: (0,_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_2__/* .createFungibleToken */ .mn)(_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Devnet */ .a_.Devnet, _types__WEBPACK_IMPORTED_MODULE_3__/* .SchemaType.Fungible */ .XQ.Fungible, _primitives__WEBPACK_IMPORTED_MODULE_4__/* .ZERO_ADDRESS */ .r, 'Solana', 'SOL', 9, 'https://assets.coingecko.com/coins/images/4128/small/solana.png'), + explorerURL: { + url: 'https://explorer.solana.com/', + parameters: { + cluster: 'devnet' + } + } + }, + { + type: _types__WEBPACK_IMPORTED_MODULE_3__/* .NetworkType.Solana */ .td.Solana, + chainId: _types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Testnet */ .a_.Testnet, + coinMarketCapChainId: '', + coinGeckoChainId: '', + coinGeckoPlatformId: '', + name: 'Solana', + color: '#17ac7c', + fullName: 'Solana', + shortName: 'Solana', + network: 'testnet', + nativeCurrency: (0,_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_2__/* .createFungibleToken */ .mn)(_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Testnet */ .a_.Testnet, _types__WEBPACK_IMPORTED_MODULE_3__/* .SchemaType.Fungible */ .XQ.Fungible, _primitives__WEBPACK_IMPORTED_MODULE_4__/* .ZERO_ADDRESS */ .r, 'Solana', 'SOL', 9, 'https://assets.coingecko.com/coins/images/4128/small/solana.png'), + explorerURL: { + url: 'https://explorer.solana.com/', + parameters: { + cluster: 'testnet' + } + } + }, +]; +const NETWORK_DESCRIPTORS = [ + { + ID: `${PLUGIN_ID}_solana`, + networkSupporterPluginID: PLUGIN_ID, + chainId: _types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Mainnet */ .a_.Mainnet, + type: _types__WEBPACK_IMPORTED_MODULE_3__/* .NetworkType.Solana */ .td.Solana, + name: 'Solana', + icon: new URL(/* asset import */ __webpack_require__(76645), __webpack_require__.b), + iconColor: '#5d6fc0', + isMainnet: true + }, + { + ID: `${PLUGIN_ID}_solana_testnet`, + networkSupporterPluginID: PLUGIN_ID, + chainId: _types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Testnet */ .a_.Testnet, + type: _types__WEBPACK_IMPORTED_MODULE_3__/* .NetworkType.Solana */ .td.Solana, + name: 'Solana Testnet', + icon: new URL(/* asset import */ __webpack_require__(76645), __webpack_require__.b), + iconColor: '#5d6fc0', + isMainnet: false + }, +]; +const PROVIDER_DESCRIPTORS = [ + { + ID: `${PLUGIN_ID}_phantom`, + providerAdaptorPluginID: PLUGIN_ID, + type: _types__WEBPACK_IMPORTED_MODULE_3__/* .ProviderType.Phantom */ .lP.Phantom, + name: 'Phantom', + icon: new URL(/* asset import */ __webpack_require__(59785), __webpack_require__.b), + homeLink: 'https://phantom.app/', + shortenLink: 'phantom.app', + downloadLink: 'https://phantom.app/download', + enableRequirements: { + supportedChainIds: (0,_dimensiondev_kit__WEBPACK_IMPORTED_MODULE_0__/* .getEnumAsArray */ .Yl)(_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId */ .a_).map((x)=>x.value + ), + supportedEnhanceableSites: (0,_dimensiondev_kit__WEBPACK_IMPORTED_MODULE_0__/* .getEnumAsArray */ .Yl)(_masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .EnhanceableSite */ .Jk).map((x)=>x.value + ), + supportedExtensionSites: [] + }, + iconFilterColor: 'rgba(85, 27, 249, 0.2)', + backgroundGradient: 'linear-gradient(90deg, rgba(84, 63, 196, 0.2) 0%, rgba(98, 126, 234, 0.2) 100%), linear-gradient(0deg, #FFFFFF, #FFFFFF)' + }, + { + ID: `${PLUGIN_ID}_solflare`, + providerAdaptorPluginID: PLUGIN_ID, + type: _types__WEBPACK_IMPORTED_MODULE_3__/* .ProviderType.Solflare */ .lP.Solflare, + name: 'Solflare', + icon: new URL(/* asset import */ __webpack_require__(42131), __webpack_require__.b), + homeLink: 'https://solflare.com/', + shortenLink: 'solflare.com', + downloadLink: 'https://solflare.com/download', + enableRequirements: { + supportedChainIds: (0,_dimensiondev_kit__WEBPACK_IMPORTED_MODULE_0__/* .getEnumAsArray */ .Yl)(_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId */ .a_).map((x)=>x.value + ), + supportedEnhanceableSites: [], + supportedExtensionSites: [] + } + }, + { + ID: `${PLUGIN_ID}_coin98`, + providerAdaptorPluginID: PLUGIN_ID, + type: _types__WEBPACK_IMPORTED_MODULE_3__/* .ProviderType.Coin98 */ .lP.Coin98, + name: 'Coin98', + icon: new URL(/* asset import */ __webpack_require__(4492), __webpack_require__.b), + homeLink: 'https://coin98.com/', + shortenLink: 'solflare.com', + downloadLink: 'https://coin98.com/wallet', + enableRequirements: { + supportedChainIds: (0,_dimensiondev_kit__WEBPACK_IMPORTED_MODULE_0__/* .getEnumAsArray */ .Yl)(_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId */ .a_).map((x)=>x.value + ), + supportedEnhanceableSites: [], + supportedExtensionSites: [] + } + }, + { + ID: `${PLUGIN_ID}_sollet`, + providerAdaptorPluginID: PLUGIN_ID, + type: _types__WEBPACK_IMPORTED_MODULE_3__/* .ProviderType.Sollet */ .lP.Sollet, + name: 'Sollet', + icon: new URL(/* asset import */ __webpack_require__(65280), __webpack_require__.b), + homeLink: 'https://www.sollet.io/', + shortenLink: 'sollet.io', + downloadLink: 'https://www.sollet.io/', + enableRequirements: { + supportedChainIds: (0,_dimensiondev_kit__WEBPACK_IMPORTED_MODULE_0__/* .getEnumAsArray */ .Yl)(_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId */ .a_).map((x)=>x.value + ), + supportedEnhanceableSites: [], + supportedExtensionSites: (0,_dimensiondev_kit__WEBPACK_IMPORTED_MODULE_0__/* .getEnumAsArray */ .Yl)(_masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .ExtensionSite */ .v_).map((x)=>x.value + ) + } + }, +]; + + +/***/ }), + +/***/ 8297: +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "n": () => (/* binding */ blobToDataURL) +/* harmony export */ }); +/* unused harmony export blobToText */ +const blobToDataURL = factory('DataURL'); +const blobToText = factory('Text'); +function factory(method) { + return (blob) => { + return new Promise((resolve, reject) => { + const reader = new FileReader(); + reader.addEventListener('error', () => { + reject(reader.error); + }); + reader.addEventListener('load', () => { + resolve(reader.result); + }); + reader[`readAs${method}`](blob); + }); + }; +} +//# sourceMappingURL=blob.js.map + +/***/ }), + +/***/ 88674: +/***/ ((module) => { + +module.exports = JSON.parse('{"light":{"grey":{"50":"#eff3f4","200":"#cfd9de","300":"#b9cad3","700":"#536471"},"text":{"primary":"#07101B","secondary":"#767F8D","third":"#ACB4C1","strong":"#111418","buttonText":"#FFFFFF"},"maskColor":{"main":"#07101B","second":"#767F8D","third":"#ACB4C1","primaryMain":"#B5B7BB","secondaryMain":"#CDCFD1","thirdMain":"#F3F3F4","bg":"#F9F9F9","bottom":"#FFFFFF","secondaryBottom":"rgba(255, 255, 255, 0.8)","input":"#F2F6FA","modelTitleBg":"linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 100%), linear-gradient(90deg, rgba(98, 152, 234, 0.2) 1.03%, rgba(98, 152, 234, 0.2) 1.04%, rgba(98, 126, 234, 0.2) 100%)","highlight":"#1C68F3","line":"#F2F5F6","secondaryLine":"#E6E7E8","tips":"rgba(0, 0, 0, 0.9)","primary":"#1C68F3","success":"#3DC233","warn":"#FFB100","danger":"#FF3545","white":"#ffffff","dark":"#07101B"},"background":{"default":"#F9F9F9","input":"#F2F6FA","tipMask":"rgba(0, 0, 0, 0.85)","messageShadow":"rgba(101, 119, 134, 0.2)","paper":"#ffffff"},"error":{"main":"#F4212E"},"divider":"#EFF3F4","secondaryDivider":"#CFD9DE","action":{"buttonHover":"#272C30","bgHover":"#EDEFEF","mask":"rgba(0, 0, 0, 0.4)"}},"light_high_contrast":{"grey":{"50":"#eff3f4","200":"#cfd9de","300":"#b9cad3","700":"#536471"},"text":{"primary":"#07101B","secondary":"#767F8D","third":"#ACB4C1","strong":"#111418","buttonText":"#FFFFFF"},"maskColor":{"main":"#07101B","second":"#767F8D","third":"#ACB4C1","primaryMain":"#B5B7BB","secondaryMain":"#CDCFD1","thirdMain":"#F3F3F4","bg":"#F9F9F9","bottom":"#FFFFFF","secondaryBottom":"rgba(255, 255, 255, 0.8)","input":"#F2F6FA","modelTitleBg":"linear-gradient(180deg, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 100%), linear-gradient(90deg, rgba(98, 152, 234, 0.2) 1.03%, rgba(98, 152, 234, 0.2) 1.04%, rgba(98, 126, 234, 0.2) 100%)","highlight":"#1C68F3","line":"#F2F5F6","secondaryLine":"#E6E7E8","tips":"rgba(0, 0, 0, 0.9)","primary":"#1C68F3","success":"#3DC233","warn":"#FFB100","danger":"#FF3545","white":"#ffffff","dark":"#07101B"},"background":{"default":"#F9F9F9","input":"#F2F6FA","tipMask":"rgba(0, 0, 0, 0.85)","messageShadow":"rgba(101, 119, 134, 0.2)","paper":"#ffffff"},"error":{"main":"#F4212E"},"divider":"#EFF3F4","secondaryDivider":"#CFD9DE","action":{"buttonHover":"#272C30","bgHover":"#EDEFEF","mask":"rgba(0, 0, 0, 0.4)"}},"dark":{"grey":{"50":"#253341","200":"#3d5466","300":"#6b7d8c","700":"#8899a6"},"maskColor":{"main":"#F5F5F5","second":"#C4C7CD","third":"#666C75","primaryMain":"#494949","secondaryMain":"#181818","thirdMain":"#151515","bg":"#1C1C1C","bottom":"#101010","secondaryBottom":"rgba(0, 0, 0, 0.8)","input":"#26292C","modelTitleBg":"linear-gradient(180deg, #202020 0%, #181818 100%)","highlight":"#FFFFFF","line":"#2F2F2F","secondaryLine":"#6F6F6F","tips":"rgba(255, 255, 255, 0.9)","primary":"#1C68F3","success":"#3DC233","warn":"#FFB100","danger":"#FF3545","white":"#ffffff","dark":"#07101B"},"text":{"primary":"#F5F5F5","secondary":"#C4C7CD","third":"#666C75","strong":"#FFFFFF","buttonText":"#0F1419"},"background":{"default":"#1C1C1C","input":"#26292C","tipMask":"rgba(255, 255, 255, 0.85)","messageShadow":"rgba(136, 153, 166, 0.2)","paper":"#101010"},"error":{"main":"#FF5555"},"divider":"#38444D","secondaryDivider":"#38444D","action":{"buttonHover":"#D7DBDC","bgHover":"#1D2933","mask":"rgba(91, 112, 131, 0.4)"}},"dark_high_contrast":{"grey":{"50":"#253341","200":"#3d5466","300":"#6b7d8c","700":"#8899a6"},"maskColor":{"main":"#F5F5F5","second":"#C4C7CD","third":"#666C75","primaryMain":"#494949","secondaryMain":"#181818","thirdMain":"#151515","bg":"#1C1C1C","bottom":"#101010","secondaryBottom":"rgba(0, 0, 0, 0.8)","input":"#26292C","modelTitleBg":"linear-gradient(180deg, #202020 0%, #181818 100%)","highlight":"#FFFFFF","line":"#2F2F2F","secondaryLine":"#6F6F6F","tips":"rgba(255, 255, 255, 0.9)","primary":"#1C68F3","success":"#3DC233","warn":"#FFB100","danger":"#FF3545","white":"#ffffff","dark":"#07101B"},"text":{"primary":"#F5F5F5","secondary":"#C4C7CD","third":"#666C75","strong":"#FFFFFF","buttonText":"#0F1419"},"background":{"default":"#1C1C1C","input":"#26292C","tipMask":"rgba(255, 255, 255, 0.85)","messageShadow":"rgba(136, 153, 166, 0.2)","paper":"#101010"},"error":{"main":"#FF5555"},"divider":"#38444D","secondaryDivider":"#38444D","action":{"buttonHover":"#D7DBDC","bgHover":"#1D2933","mask":"rgba(91, 112, 131, 0.4)"}}}'); + +/***/ }) + +}]); \ No newline at end of file diff --git a/DevelopmentPod/MaskbookPlugin/maskbook/js/1950.js b/DevelopmentPod/MaskbookPlugin/maskbook/js/1950.js new file mode 100644 index 00000000..e5e5042f --- /dev/null +++ b/DevelopmentPod/MaskbookPlugin/maskbook/js/1950.js @@ -0,0 +1,1255 @@ +"use strict"; +(globalThis["webpackChunk_masknet_extension"] = globalThis["webpackChunk_masknet_extension"] || []).push([[1950],{ + +/***/ 52947: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "A": () => (/* binding */ queryAvatarsDataURL), +/* harmony export */ "Z": () => (/* binding */ storeAvatar) +/* harmony export */ }); +/* harmony import */ var _db__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(59017); +/* harmony import */ var _shared_native_rpc__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(76536); +/* harmony import */ var _dimensiondev_kit__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(46123); +/* harmony import */ var _utils_openDB__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(55989); + + + + +/** + * Get a (cached) blob url for an identifier. No cache for native api. + * ? Because of cross-origin restrictions, we cannot use blob url here. sad :( + */ async function nativeImpl(identifiers) { + const map = new Map(new Map()); + await Promise.allSettled(identifiers.map(async (id)=>{ + const result = await _shared_native_rpc__WEBPACK_IMPORTED_MODULE_1__/* .nativeAPI.api.query_avatar */ .Nz.api.query_avatar({ + identifier: id.toText() + }); + result && map.set(id, result); + })); + return map; +} +const indexedDBImpl = (0,_dimensiondev_kit__WEBPACK_IMPORTED_MODULE_2__/* .memoizePromise */ .J3)(async function(identifiers) { + const promises = []; + const map = new Map(); + const t = (0,_utils_openDB__WEBPACK_IMPORTED_MODULE_3__/* .createTransaction */ ._X)(await (0,_db__WEBPACK_IMPORTED_MODULE_0__/* .createAvatarDBAccess */ .Hm)(), 'readonly')('avatars'); + for (const id of identifiers){ + // Must not await here. Because we insert non-idb async operation (blobToDataURL). + promises.push((0,_db__WEBPACK_IMPORTED_MODULE_0__/* .queryAvatarDB */ .dg)(t, id).then((buffer)=>buffer && (0,_dimensiondev_kit__WEBPACK_IMPORTED_MODULE_2__/* .blobToDataURL */ .n5)(new Blob([ + buffer + ], { + type: 'image/png' + })) + ).then((url)=>url && map.set(id, url) + )); + } + await Promise.allSettled(promises); + return map; +}, (id)=>id.flatMap((x)=>x.toText() + ).join(';') +); +const queryAvatarsDataURL = _shared_native_rpc__WEBPACK_IMPORTED_MODULE_1__/* .hasNativeAPI */ ._ ? nativeImpl : indexedDBImpl; +/** + * Store an avatar with a url for an identifier. + * @param identifier - This avatar belongs to. + * @param avatar - Avatar to store. If it is a string, will try to fetch it. + */ async function storeAvatar(identifier, avatar) { + try { + if (_shared_native_rpc__WEBPACK_IMPORTED_MODULE_1__/* .hasNativeAPI */ ._) { + // ArrayBuffer is unreachable on Native side. + if (typeof avatar !== 'string') return; + await _shared_native_rpc__WEBPACK_IMPORTED_MODULE_1__/* .nativeAPI */ .Nz?.api.store_avatar({ + identifier: identifier.toText(), + avatar: avatar + }); + return; + } + if (typeof avatar === 'string') { + if (avatar.startsWith('https') === false) return; + const isOutdated = await (0,_db__WEBPACK_IMPORTED_MODULE_0__/* .isAvatarOutdatedDB */ .PU)((0,_utils_openDB__WEBPACK_IMPORTED_MODULE_3__/* .createTransaction */ ._X)(await (0,_db__WEBPACK_IMPORTED_MODULE_0__/* .createAvatarDBAccess */ .Hm)(), 'readonly')('metadata'), identifier, 'lastUpdateTime'); + if (isOutdated) { + // ! must fetch before create the transaction + const buffer = await (await fetch(avatar)).arrayBuffer(); + { + const t = (0,_utils_openDB__WEBPACK_IMPORTED_MODULE_3__/* .createTransaction */ ._X)(await (0,_db__WEBPACK_IMPORTED_MODULE_0__/* .createAvatarDBAccess */ .Hm)(), 'readwrite')('avatars', 'metadata'); + await (0,_db__WEBPACK_IMPORTED_MODULE_0__/* .storeAvatarDB */ .CW)(t, identifier, buffer); + } + } + // else do nothing + } else { + const t = (0,_utils_openDB__WEBPACK_IMPORTED_MODULE_3__/* .createTransaction */ ._X)(await (0,_db__WEBPACK_IMPORTED_MODULE_0__/* .createAvatarDBAccess */ .Hm)(), 'readwrite')('avatars', 'metadata'); + await (0,_db__WEBPACK_IMPORTED_MODULE_0__/* .storeAvatarDB */ .CW)(t, identifier, avatar); + } + } catch (error) { + console.error('[AvatarDB] Store avatar failed', error); + } finally{ + indexedDBImpl.cache.clear(); + } +} + + +/***/ }), + +/***/ 59017: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "CW": () => (/* binding */ storeAvatarDB), +/* harmony export */ "Hm": () => (/* binding */ createAvatarDBAccess), +/* harmony export */ "PU": () => (/* binding */ isAvatarOutdatedDB), +/* harmony export */ "dg": () => (/* binding */ queryAvatarDB) +/* harmony export */ }); +/* unused harmony exports queryAvatarOutdatedDB, deleteAvatarsDB */ +/* harmony import */ var idb_with_async_ittr__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(63338); +/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(44451); +/* harmony import */ var _utils_openDB__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(55989); + + + +const pendingUpdate = new Map(); +let pendingUpdateTimer; +// #endregion +const createAvatarDBAccess = (0,_utils_openDB__WEBPACK_IMPORTED_MODULE_2__/* .createDBAccess */ .Z_)(()=>{ + return (0,idb_with_async_ittr__WEBPACK_IMPORTED_MODULE_0__/* .openDB */ .X3)('maskbook-avatar-cache', 1, { + upgrade (db, oldVersion, newVersion, transaction) { + // Out line keys + db.createObjectStore('avatars'); + db.createObjectStore('metadata', { + keyPath: 'identifier' + }); + } + }); +}); +/** + * Store avatar into database + */ async function storeAvatarDB(t, id, avatar) { + const meta = { + identifier: id.toText(), + lastUpdateTime: new Date(), + lastAccessTime: new Date() + }; + await t.objectStore('avatars').put(avatar, id.toText()); + await t.objectStore('metadata').put(meta); +} +/** + * Read avatar out + */ async function queryAvatarDB(t, id) { + const result = await t.objectStore('avatars').get(id.toText()); + if (result) scheduleAvatarMetaUpdate(id, { + lastAccessTime: new Date() + }); + return result || null; +} +function scheduleAvatarMetaUpdate(id1, meta1) { + pendingUpdate.set(id1, meta1); + if (pendingUpdateTimer) return; + const _1_minute = 60 * 1000; + pendingUpdateTimer = setTimeout(async ()=>{ + try { + const t = (0,_utils_openDB__WEBPACK_IMPORTED_MODULE_2__/* .createTransaction */ ._X)(await createAvatarDBAccess(), 'readwrite')('metadata'); + for (const [id, meta] of pendingUpdate){ + const old = await t.objectStore('metadata').get(id.toText()); + await t.objectStore('metadata').put({ + ...old, + ...meta + }); + } + } finally{ + pendingUpdateTimer = null; + pendingUpdate.clear(); + } + }, _1_minute); +} +/** + * Find avatar lastUpdateTime or lastAccessTime out-of-date + * @param attribute - Which attribute want to query + * @param deadline - Select all identifiers before a date + * defaults to 14 days for lastAccessTime + * defaults to 7 days for lastUpdateTime + * @internal + */ async function queryAvatarOutdatedDB(t, attribute, deadline = new Date(Date.now() - 1000 * 60 * 60 * 24 * (attribute === 'lastAccessTime' ? 14 : 7))) { + const outdated = []; + for await (const { value } of t.objectStore('metadata')){ + if (deadline > value[attribute]) { + const id = Identifier.from(value.identifier); + if (id.none) continue; + if (id.val instanceof ProfileIdentifier || id.val instanceof ECKeyIdentifier) outdated.push(id.val); + } + } + return outdated; +} +/** + * Query if the avatar is outdated + * @param attribute - Which attribute want to query + * @param deadline - Select all identifiers before a date + * defaults to 30 days for lastAccessTime + * defaults to 7 days for lastUpdateTime + * @internal + */ async function isAvatarOutdatedDB(t, identifier, attribute, deadline = new Date(Date.now() - 1000 * 60 * 60 * 24 * (attribute === 'lastAccessTime' ? 30 : 7))) { + const meta = await t.objectStore('metadata').get(identifier.toText()); + if (!meta) return true; + if (deadline > meta[attribute]) return true; + return false; +} +/** + * Batch delete avatars + * @internal + */ async function deleteAvatarsDB(t, ids) { + for (const id of ids){ + t.objectStore('avatars').delete(id.toText()); + t.objectStore('metadata').delete(id.toText()); + } +} + + +/***/ }), + +/***/ 28511: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "AY": () => (/* binding */ detachProfileDB), +/* harmony export */ "As": () => (/* binding */ consistentPersonaDBWriteAccess), +/* harmony export */ "B4": () => (/* binding */ deleteProfileDB), +/* harmony export */ "E8": () => (/* binding */ updatePersonaDB), +/* harmony export */ "E9": () => (/* binding */ createPersonaDB), +/* harmony export */ "Eq": () => (/* binding */ queryPersonasWithPrivateKey), +/* harmony export */ "Hm": () => (/* binding */ queryPersonaDB), +/* harmony export */ "IW": () => (/* binding */ queryProfileDB), +/* harmony export */ "Jx": () => (/* binding */ updateRelationDB), +/* harmony export */ "LY": () => (/* binding */ deletePersonaDB), +/* harmony export */ "N8": () => (/* binding */ createRelationDB), +/* harmony export */ "PF": () => (/* binding */ queryRelationsPagedDB), +/* harmony export */ "Ul": () => (/* binding */ safeDeletePersonaDB), +/* harmony export */ "_P": () => (/* binding */ queryPersonasDB), +/* harmony export */ "ah": () => (/* binding */ createProfileDB), +/* harmony export */ "bF": () => (/* binding */ queryRelations), +/* harmony export */ "cl": () => (/* binding */ createRelationsTransaction), +/* harmony export */ "fl": () => (/* binding */ queryPersonaByProfileDB), +/* harmony export */ "hC": () => (/* binding */ createPersonaDBReadonlyAccess), +/* harmony export */ "hK": () => (/* binding */ createOrUpdateRelationDB), +/* harmony export */ "i2": () => (/* binding */ queryProfilesDB), +/* harmony export */ "lX": () => (/* binding */ createOrUpdatePersonaDB), +/* harmony export */ "o7": () => (/* binding */ createOrUpdateProfileDB), +/* harmony export */ "tc": () => (/* binding */ attachProfileDB) +/* harmony export */ }); +/* harmony import */ var _shared_native_rpc__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(76536); + + +const { queryProfilesDB , queryProfileDB , queryPersonaDB , queryPersonasDB , detachProfileDB , deletePersonaDB , safeDeletePersonaDB , queryPersonaByProfileDB , createPersonaDB , attachProfileDB , createPersonaDBReadonlyAccess , consistentPersonaDBWriteAccess , updatePersonaDB , createOrUpdatePersonaDB , createOrUpdateProfileDB , createProfileDB , createRelationDB , createRelationsTransaction , deleteProfileDB , queryRelationsPagedDB , updateRelationDB , queryPersonasWithPrivateKey , queryRelations , createOrUpdateRelationDB , } = new Proxy({}, { + get (_, key) { + return async function(...args) { + if (_shared_native_rpc__WEBPACK_IMPORTED_MODULE_0__/* .hasNativeAPI */ ._) { + return __webpack_require__.e(/* import() */ 5388).then(__webpack_require__.bind(__webpack_require__, 35388)).then((x)=>x[key](...args) + ); + } + return Promise.all(/* import() */[__webpack_require__.e(2698), __webpack_require__.e(6739), __webpack_require__.e(9442), __webpack_require__.e(5989)]).then(__webpack_require__.bind(__webpack_require__, 79442)).then((x)=>x[key](...args) + ); + }; + } +}); + + +/***/ }), + +/***/ 78366: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "MM": () => (/* binding */ decryptByLocalKey), +/* harmony export */ "M_": () => (/* binding */ queryPublicKey), +/* harmony export */ "Si": () => (/* binding */ deriveAESByECDH), +/* harmony export */ "i6": () => (/* binding */ encryptByLocalKey), +/* harmony export */ "lr": () => (/* binding */ createProfileWithPersona), +/* harmony export */ "w0": () => (/* binding */ createPersonaByJsonWebKey), +/* harmony export */ "wf": () => (/* binding */ hasLocalKeyOf) +/* harmony export */ }); +/* harmony import */ var _dimensiondev_kit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(46123); +/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(44451); +/* harmony import */ var _db__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(28511); + + + +// #region Local key helpers +/** + * If has local key of a profile in the database. + * @param id Profile Identifier + */ async function hasLocalKeyOf(id) { + let has = false; + await (0,_db__WEBPACK_IMPORTED_MODULE_2__/* .createPersonaDBReadonlyAccess */ .hC)(async (tx)=>{ + const result = await getLocalKeyOf(id, tx); + has = !!result; + }); + return has; +} +/** + * Try to decrypt data using local key. + * + * @param authorHint Author of the local key + * @param data Data to be decrypted + * @param iv IV + */ async function decryptByLocalKey(authorHint, data, iv) { + const candidateKeys = []; + if (authorHint) { + await (0,_db__WEBPACK_IMPORTED_MODULE_2__/* .createPersonaDBReadonlyAccess */ .hC)(async (tx)=>{ + const key = await getLocalKeyOf(authorHint, tx); + key && candidateKeys.push(key); + }); + // TODO: We may push every local key we owned to the candidate list so we can also decrypt when authorHint is null, but that might be a performance pitfall when localKey field is not indexed. + } + let check = ()=>{}; + return Promise.any(candidateKeys.map(async (key)=>{ + const k = await crypto.subtle.importKey('jwk', key, { + name: 'AES-GCM', + length: 256 + }, false, [ + 'decrypt' + ]); + check(); + const result = await crypto.subtle.decrypt({ + iv, + name: 'AES-GCM' + }, k, data); + check = abort; + return result; + })); +} +async function encryptByLocalKey(who, content, iv) { + let key; + await (0,_db__WEBPACK_IMPORTED_MODULE_2__/* .createPersonaDBReadonlyAccess */ .hC)(async (tx)=>{ + const jwk = await getLocalKeyOf(who, tx); + if (!jwk) return; + const k = await crypto.subtle.importKey('jwk', jwk, { + name: 'AES-GCM', + length: 256 + }, false, [ + 'encrypt' + ]); + key = k; + }); + if (!key) throw new Error('No local key found'); + const result = await crypto.subtle.encrypt({ + iv, + name: 'AES-GCM' + }, key, content); + return result; +} +async function getLocalKeyOf(id, tx) { + const profile = await (0,_db__WEBPACK_IMPORTED_MODULE_2__/* .queryProfileDB */ .IW)(id, tx); + if (!profile) return; + if (profile.localKey) return profile.localKey; + if (!profile.linkedPersona) return; + const persona = await (0,_db__WEBPACK_IMPORTED_MODULE_2__/* .queryPersonaByProfileDB */ .fl)(id, tx); + return persona?.localKey; +} +// #endregion +// #region ECDH +async function deriveAESByECDH(pub, of) { + const curve = pub.algorithm.namedCurve || ''; + const sameCurvePrivateKeys = new Map(); + await (0,_db__WEBPACK_IMPORTED_MODULE_2__/* .createPersonaDBReadonlyAccess */ .hC)(async (tx)=>{ + const personas = await (0,_db__WEBPACK_IMPORTED_MODULE_2__/* .queryPersonasWithPrivateKey */ .Eq)(tx); + for (const persona of personas){ + if (!persona.privateKey) continue; + if (persona.privateKey.crv !== curve) continue; + if (of) { + if (of instanceof _masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .ProfileIdentifier */ .WO) { + if (!persona.linkedProfiles.has(of)) continue; + } else if (of instanceof _masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .ECKeyIdentifier */ .ob) { + if (persona.identifier !== of) continue; + } else (0,_dimensiondev_kit__WEBPACK_IMPORTED_MODULE_0__/* .safeUnreachable */ .P)(of); + } + sameCurvePrivateKeys.set(persona.identifier, persona.privateKey); + } + }); + const deriveResult = new Map(); + const result = await Promise.allSettled([ + ...sameCurvePrivateKeys + ].map(async ([id, key])=>{ + const privateKey = await crypto.subtle.importKey('jwk', key, { + name: 'ECDH', + namedCurve: key.crv + }, false, [ + 'deriveKey' + ]); + const derived = await crypto.subtle.deriveKey({ + name: 'ECDH', + public: pub + }, privateKey, { + name: 'AES-GCM', + length: 256 + }, true, [ + 'encrypt', + 'decrypt' + ]); + deriveResult.set(id, derived); + })); + const failed = result.filter((x)=>x.status === 'rejected' + ); + if (failed.length) { + console.warn('Failed to ECDH', ...failed.map((x)=>x.reason + )); + } + return deriveResult; +} +// #endregion +// #region normal functions +async function createPersonaByJsonWebKey(options) { + const identifier = await (0,_masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .ECKeyIdentifierFromJsonWebKey */ .CH)(options.publicKey); + const record = { + createdAt: new Date(), + updatedAt: new Date(), + identifier, + linkedProfiles: new Map(), + publicKey: options.publicKey, + privateKey: options.privateKey, + nickname: options.nickname, + mnemonic: options.mnemonic, + localKey: options.localKey, + hasLogout: false, + uninitialized: options.uninitialized + }; + await (0,_db__WEBPACK_IMPORTED_MODULE_2__/* .consistentPersonaDBWriteAccess */ .As)((t)=>(0,_db__WEBPACK_IMPORTED_MODULE_2__/* .createPersonaDB */ .E9)(record, t) + ); + return identifier; +} +async function createProfileWithPersona(profileID, data, keys) { + const ec_id = await (0,_masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .ECKeyIdentifierFromJsonWebKey */ .CH)(keys.publicKey); + const rec = { + createdAt: new Date(), + updatedAt: new Date(), + identifier: ec_id, + linkedProfiles: new Map(), + nickname: keys.nickname, + publicKey: keys.publicKey, + privateKey: keys.privateKey, + localKey: keys.localKey, + mnemonic: keys.mnemonic, + hasLogout: false + }; + await (0,_db__WEBPACK_IMPORTED_MODULE_2__/* .consistentPersonaDBWriteAccess */ .As)(async (t)=>{ + await (0,_db__WEBPACK_IMPORTED_MODULE_2__/* .createOrUpdatePersonaDB */ .lX)(rec, { + explicitUndefinedField: 'ignore', + linkedProfiles: 'merge' + }, t); + await (0,_db__WEBPACK_IMPORTED_MODULE_2__/* .attachProfileDB */ .tc)(profileID, ec_id, data, t); + }); +} +// #endregion +async function queryPublicKey(author) { + if (!author) return null; + const persona = await (0,_db__WEBPACK_IMPORTED_MODULE_2__/* .queryPersonaByProfileDB */ .fl)(author); + if (!persona) return null; + return await crypto.subtle.importKey('jwk', persona.publicKey, { + name: 'ECDH', + namedCurve: persona.publicKey.crv + }, true, [ + 'deriveKey' + ]); +} +function abort() { + throw new Error('Cancelled'); +} + + +/***/ }), + +/***/ 34424: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "Y": () => (/* binding */ toProfileInformation), +/* harmony export */ "y": () => (/* binding */ toPersonaInformation) +/* harmony export */ }); +/* harmony import */ var _database_avatar_cache_avatar__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(52947); +/* harmony import */ var _database_persona_db__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(28511); + + +/** @internal */ function toProfileInformation(profiles) { + return { + mustNotAwaitThisWithInATransaction: (async ()=>{ + const result = []; + for (const profile of profiles){ + result.push({ + identifier: profile.identifier, + nickname: profile.nickname, + linkedPersona: profile.linkedPersona + }); + } + const avatars = await (0,_database_avatar_cache_avatar__WEBPACK_IMPORTED_MODULE_0__/* .queryAvatarsDataURL */ .A)(result.map((x)=>x.identifier + )); + result.forEach((x)=>avatars.has(x.identifier) && (x.avatar = avatars.get(x.identifier)) + ); + return result; + })() + }; +} +/** @internal */ function toPersonaInformation(personas, t) { + const personaInfo = []; + const dbQueryPass2 = []; + const dbQuery = personas.map(async (persona)=>{ + const map = []; + personaInfo.push({ + nickname: persona.nickname, + identifier: persona.identifier, + linkedProfiles: map + }); + if (persona.linkedProfiles.size) { + const profiles = await (0,_database_persona_db__WEBPACK_IMPORTED_MODULE_1__/* .queryProfilesDB */ .i2)({ + identifiers: [ + ...persona.linkedProfiles.keys() + ] + }, t); + // we must not await toProfileInformation cause it is tx of another db. + dbQueryPass2.push(toProfileInformation(profiles).mustNotAwaitThisWithInATransaction.then((x)=>void map.push(...x) + )); + } + }); + return { + // we have to split two arrays for them and await them one by one, otherwise it will be race condition + mustNotAwaitThisWithInATransaction: Promise.all(dbQuery).then(()=>Promise.all(dbQueryPass2) + ).then(()=>personaInfo + ) + }; +} + + +/***/ }), + +/***/ 61950: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +// ESM COMPAT FLAG +__webpack_require__.r(__webpack_exports__); + +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "attachProfile": () => (/* reexport */ attachProfile), + "createNewRelation": () => (/* reexport */ createNewRelation), + "createPersonaByMnemonic": () => (/* reexport */ createPersonaByMnemonic), + "createPersonaByMnemonicV2": () => (/* reexport */ createPersonaByMnemonicV2), + "createPersonaByPrivateKey": () => (/* reexport */ createPersonaByPrivateKey), + "deletePersona": () => (/* reexport */ deletePersona), + "detachProfile": () => (/* reexport */ detachProfile), + "detachProfileWithNextID": () => (/* reexport */ detachProfileWithNextID), + "generateSignResult": () => (/* reexport */ generateSignResult), + "getPersonaAvatar": () => (/* reexport */ getPersonaAvatar), + "hasLocalKey": () => (/* reexport */ hasLocalKey), + "loginExistPersonaByPrivateKey": () => (/* reexport */ loginExistPersonaByPrivateKey), + "loginPersona": () => (/* reexport */ loginPersona), + "logoutPersona": () => (/* reexport */ logoutPersona), + "mobile_queryOwnedProfiles": () => (/* reexport */ mobile_queryOwnedProfiles), + "mobile_queryPersonaByPrivateKey": () => (/* reexport */ mobile_queryPersonaByPrivateKey), + "mobile_queryPersonaRecordsFromIndexedDB": () => (/* reexport */ mobile_queryPersonaRecordsFromIndexedDB), + "mobile_queryPersonas": () => (/* reexport */ mobile_queryPersonas), + "mobile_queryProfileRecordFromIndexedDB": () => (/* reexport */ mobile_queryProfileRecordFromIndexedDB), + "mobile_queryProfiles": () => (/* reexport */ mobile_queryProfiles), + "mobile_queryRelationsRecordFromIndexedDB": () => (/* reexport */ mobile_queryRelationsRecordFromIndexedDB), + "mobile_removeProfile": () => (/* reexport */ mobile_removeProfile), + "mobile_restoreFromMnemonicWords": () => (/* reexport */ mobile_restoreFromMnemonicWords), + "queryAvatarsDataURL": () => (/* reexport */ avatar_cache_avatar/* queryAvatarsDataURL */.A), + "queryLastPersonaCreated": () => (/* reexport */ queryLastPersonaCreated), + "queryOwnedPersonaInformation": () => (/* reexport */ queryOwnedPersonaInformation), + "queryOwnedProfilesInformation": () => (/* reexport */ queryOwnedProfilesInformation), + "queryPersona": () => (/* reexport */ queryPersona), + "queryPersonaByMnemonic": () => (/* reexport */ queryPersonaByMnemonic), + "queryPersonaByProfile": () => (/* reexport */ queryPersonaByProfile), + "queryProfilesInformation": () => (/* reexport */ queryProfilesInformation), + "queryRelationPaged": () => (/* reexport */ queryRelationPaged), + "renamePersona": () => (/* reexport */ renamePersona), + "resolveUnknownLegacyIdentity": () => (/* reexport */ resolveUnknownLegacyIdentity), + "setupPersona": () => (/* reexport */ setupPersona), + "signWithPersona": () => (/* reexport */ signWithPersona), + "updatePersonaAvatar": () => (/* reexport */ updatePersonaAvatar), + "updateProfileInfo": () => (/* reexport */ updateProfileInfo), + "updateRelation": () => (/* reexport */ updateRelation), + "validateMnemonic": () => (/* reexport */ validateMnemonic) +}); + +// EXTERNAL MODULE: ../../node_modules/.pnpm/bip39@3.0.4/node_modules/bip39/src/index.js +var src = __webpack_require__(68440); +// EXTERNAL MODULE: ../../node_modules/.pnpm/@dimensiondev+kit@0.0.0-20220617045824-8bc7a27/node_modules/@dimensiondev/kit/esm/index.js +var esm = __webpack_require__(46123); +// EXTERNAL MODULE: ../shared-base/src/index.ts + 2 modules +var shared_base_src = __webpack_require__(44451); +// EXTERNAL MODULE: ./background/database/persona/helper.ts +var helper = __webpack_require__(78366); +// EXTERNAL MODULE: ../../node_modules/.pnpm/@msgpack+msgpack@2.7.2/node_modules/@msgpack/msgpack/dist.es5+esm/decode.mjs + 3 modules +var decode = __webpack_require__(92415); +// EXTERNAL MODULE: ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/omit.js + 3 modules +var omit = __webpack_require__(96596); +;// CONCATENATED MODULE: ./background/services/identity/persona/mobile.ts +function personaRecordToMobilePersona(persona) { + if (!persona) return persona; + const profiles = {}; + for (const [key, value] of persona.linkedProfiles){ + const k = key.toText(); + Object.assign(profiles, { + [k]: value?.connectionConfirmState + }); + } + return { + identifier: persona.identifier.toText(), + createdAt: persona.createdAt.getTime(), + updatedAt: persona.updatedAt.getTime(), + hasPrivateKey: !!persona.privateKey, + linkedProfiles: profiles, + nickname: persona.nickname + }; +} + +// EXTERNAL MODULE: ./background/database/persona/db.ts +var db = __webpack_require__(28511); +// EXTERNAL MODULE: ../../node_modules/.pnpm/wallet.ts@1.0.1/node_modules/wallet.ts/dist/index.js +var dist = __webpack_require__(99674); +// EXTERNAL MODULE: ./utils-pure/crypto/index.ts +var utils_pure_crypto = __webpack_require__(38270); +;// CONCATENATED MODULE: ./background/services/identity/persona/utils.ts + + + + + +/** + * Local key (AES key) is used to encrypt message to myself. + * This key should never be published. + */ async function deriveLocalKeyFromECDHKey(pub, mnemonicWord) { + // ? Derive method: publicKey as "password" and password for the mnemonicWord as hash + const pbkdf2 = await crypto.subtle.importKey('raw', (0,esm/* encodeText */.YT)(pub.x + pub.y), 'PBKDF2', false, [ + 'deriveBits', + 'deriveKey', + ]); + const aes = await crypto.subtle.deriveKey({ + name: 'PBKDF2', + salt: (0,esm/* encodeText */.YT)(mnemonicWord), + iterations: 100000, + hash: 'SHA-256' + }, pbkdf2, { + name: 'AES-GCM', + length: 256 + }, true, [ + 'encrypt', + 'decrypt' + ]); + return (0,utils_pure_crypto/* CryptoKeyToJsonWebKey */.i)(aes); +} +// Private key at m/44'/coinType'/account'/change/addressIndex +// coinType = ether +const path = "m/44'/60'/0'/0/0"; +async function generate_ECDH_256k1_KeyPair_ByMnemonicWord(password) { + const mnemonicWord = src/* generateMnemonic */.OF(); + const seed = await src/* mnemonicToSeed */.OI(mnemonicWord, password); + const masterKey = dist.HDKey.parseMasterSeed(seed); + const derivedKey = masterKey.derive(path); + const key = await split_ec_k256_keypair_into_pub_priv(await HDKeyToJwk(derivedKey)); + return { + key, + password, + mnemonicRecord: { + parameter: { + path, + withPassword: password.length > 0 + }, + words: mnemonicWord + } + }; +} +async function recover_ECDH_256k1_KeyPair_ByMnemonicWord(mnemonicWord, password) { + const verify = src/* validateMnemonic */._I(mnemonicWord); + if (!verify) { + console.warn('Verify error'); + } + const seed = await src/* mnemonicToSeed */.OI(mnemonicWord, password); + const masterKey = dist.HDKey.parseMasterSeed(seed); + const derivedKey = masterKey.derive(path); + const key = await split_ec_k256_keypair_into_pub_priv(await HDKeyToJwk(derivedKey)); + return { + key, + password, + mnemonicRecord: { + parameter: { + path, + withPassword: password.length > 0 + }, + words: mnemonicWord + } + }; +} +const validateMnemonic = src/* validateMnemonic */._I; +async function HDKeyToJwk(hdk) { + const jwk = await (0,shared_base_src/* decompressSecp256k1Key */.qX)((0,esm/* encodeArrayBuffer */.ll)(hdk.publicKey)); + jwk.d = hdk.privateKey ? (0,shared_base_src/* toBase64URL */.wi)(hdk.privateKey) : undefined; + return jwk; +} +async function split_ec_k256_keypair_into_pub_priv(key) { + (0,shared_base_src/* assertEC_Private_JsonWebKey */.mQ)(key); + const { d , ...pub } = key; + // @ts-expect-error Do a force transform + return { + privateKey: { + ...key + }, + publicKey: pub + }; +} + +;// CONCATENATED MODULE: ./background/services/identity/persona/create.ts + + + + + + + + + +async function createPersonaByPrivateKey(privateKeyString, nickname) { + const privateKey = (0,decode/* decode */.Jx)((0,esm/* decodeArrayBuffer */.xe)(privateKeyString)); + if (!(0,shared_base_src/* isEC_Private_JsonWebKey */.PQ)(privateKey)) throw new TypeError('Invalid private key'); + return (0,helper/* createPersonaByJsonWebKey */.w0)({ + privateKey, + publicKey: (0,omit/* default */.Z)(privateKey, 'd'), + nickname + }); +} +async function mobile_restoreFromMnemonicWords(mnemonicWords, nickname, password1) { + if (false) {} + if (!src/* validateMnemonic */._I(mnemonicWords)) throw new Error('the mnemonic words are not valid'); + const identifier = await restoreNewIdentityWithMnemonicWord(mnemonicWords, password1, { + nickname + }); + return (0,db/* queryPersonaDB */.Hm)(identifier).then((x)=>personaRecordToMobilePersona(x) + ); + /** + * Recover new identity by a password and mnemonic words + * + * @param password password used to generate mnemonic word, can be empty string + * @param word mnemonic words + * @param info additional information + */ async function restoreNewIdentityWithMnemonicWord(word, password, info) { + const { key , mnemonicRecord } = await recover_ECDH_256k1_KeyPair_ByMnemonicWord(word, password); + const { privateKey , publicKey } = key; + const localKeyJwk = await deriveLocalKeyFromECDHKey(publicKey, mnemonicRecord.words); + const ecKeyID = await (0,helper/* createPersonaByJsonWebKey */.w0)({ + publicKey, + privateKey, + localKey: info.localKey || localKeyJwk, + mnemonic: mnemonicRecord, + nickname: info.nickname + }); + if (info.whoAmI) { + await (0,db/* attachProfileDB */.tc)(info.whoAmI, ecKeyID, info.details || { + connectionConfirmState: 'pending' + }); + } + return ecKeyID; + } +} +async function createPersonaByMnemonic(nickname, password) { + const { key , mnemonicRecord: mnemonic } = await generate_ECDH_256k1_KeyPair_ByMnemonicWord(password); + const { privateKey , publicKey } = key; + const localKey = await deriveLocalKeyFromECDHKey(publicKey, mnemonic.words); + return (0,helper/* createPersonaByJsonWebKey */.w0)({ + privateKey, + publicKey, + localKey, + mnemonic, + nickname, + uninitialized: false + }); +} +async function createPersonaByMnemonicV2(mnemonicWord, nickname, password) { + const personas = await (0,db/* queryPersonasDB */._P)({ + nameContains: nickname + }); + if (personas.length > 0) throw new Error('Nickname already exists'); + const verify = src/* validateMnemonic */._I(mnemonicWord); + if (!verify) throw new Error('Verify error'); + const { key , mnemonicRecord: mnemonic } = await recover_ECDH_256k1_KeyPair_ByMnemonicWord(mnemonicWord, password); + const { privateKey , publicKey } = key; + const localKey = await deriveLocalKeyFromECDHKey(publicKey, mnemonic.words); + return (0,helper/* createPersonaByJsonWebKey */.w0)({ + privateKey, + publicKey, + localKey, + mnemonic, + nickname, + uninitialized: false + }); +} + +// EXTERNAL MODULE: ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/head.js +var head = __webpack_require__(29730); +// EXTERNAL MODULE: ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/orderBy.js +var orderBy = __webpack_require__(50350); +// EXTERNAL MODULE: ./background/database/persona/web.ts + 1 modules +var web = __webpack_require__(79442); +// EXTERNAL MODULE: ./background/services/__utils__/convert.ts +var convert = __webpack_require__(34424); +;// CONCATENATED MODULE: ./background/services/identity/persona/query.ts + + + + + +async function mobile_queryPersonaRecordsFromIndexedDB() { + if (false) {} + return (0,web.queryPersonasDB)(); +} +async function mobile_queryPersonas(options) { + if (false) {} + const { hasPrivateKey , identifier , network } = options; + const result = []; + if (identifier === undefined) { + result.push(...await (0,db/* queryPersonasDB */._P)({ + hasPrivateKey + })); + } else { + const persona = await (0,db/* queryPersonaDB */.Hm)(identifier); + persona && result.push(persona); + } + return result.filter((x1)=>{ + if (!x1.privateKey && hasPrivateKey) return false; + if (network && ![ + ...x1.linkedProfiles.keys() + ].some((x)=>x.network === network + )) return false; + return true; + }).map((x)=>personaRecordToMobilePersona(x) + ); +} +async function queryOwnedPersonaInformation(initializedOnly) { + let result; + await (0,db/* createPersonaDBReadonlyAccess */.hC)(async (t)=>{ + let personas = await (0,db/* queryPersonasDB */._P)({ + hasPrivateKey: true + }, t); + if (initializedOnly) personas = personas.filter((x)=>!x.uninitialized + ); + result = (0,convert/* toPersonaInformation */.y)(personas, t).mustNotAwaitThisWithInATransaction; + }); + return result; +} +async function queryLastPersonaCreated() { + const all = await (0,db/* queryPersonasDB */._P)({ + hasPrivateKey: true + }); + return (0,head/* default */.Z)((0,orderBy/* default */.Z)(all, (x)=>x.createdAt + , 'desc'))?.identifier; +} +async function queryPersonaByProfile(id) { + let result; + await (0,db/* createPersonaDBReadonlyAccess */.hC)(async (t)=>{ + const profile = await (0,db/* queryProfileDB */.IW)(id, t); + if (!profile?.linkedPersona) return; + const persona = await (0,db/* queryPersonaDB */.Hm)(profile.linkedPersona, t); + if (!persona) return; + result = (0,convert/* toPersonaInformation */.y)([ + persona + ], t).mustNotAwaitThisWithInATransaction.then((x)=>(0,head/* default */.Z)(x) + ); + }); + return result; +} +async function queryPersona(id) { + let result; + await (0,db/* createPersonaDBReadonlyAccess */.hC)(async (t)=>{ + const persona = await (0,db/* queryPersonaDB */.Hm)(id, t); + if (!persona) return; + result = (0,convert/* toPersonaInformation */.y)([ + persona + ], t).mustNotAwaitThisWithInATransaction.then((x)=>(0,head/* default */.Z)(x) + ); + }); + return result; +} + +;// CONCATENATED MODULE: ./background/services/identity/persona/update.ts + + + + + + +async function deletePersona(id, confirm) { + return (0,db/* consistentPersonaDBWriteAccess */.As)(async (t)=>{ + const d = await (0,db/* queryPersonaDB */.Hm)(id, t); + if (!d) return; + for (const e of d.linkedProfiles){ + await (0,db/* detachProfileDB */.AY)(e[0], t); + } + if (confirm === 'delete even with private') await (0,db/* deletePersonaDB */.LY)(id, 'delete even with private', t); + else if (confirm === 'safe delete') await (0,db/* safeDeletePersonaDB */.Ul)(id, t); + }); +} +/** @internal looks like not directly used. let's not exposing it for now. */ async function loginPersona(identifier) { + return (0,db/* consistentPersonaDBWriteAccess */.As)((t)=>(0,db/* updatePersonaDB */.E8)({ + identifier, + hasLogout: false + }, { + linkedProfiles: 'merge', + explicitUndefinedField: 'ignore' + }, t) + ); +} +async function logoutPersona(identifier) { + return (0,db/* consistentPersonaDBWriteAccess */.As)((t)=>(0,db/* updatePersonaDB */.E8)({ + identifier, + hasLogout: true + }, { + linkedProfiles: 'merge', + explicitUndefinedField: 'ignore' + }, t) + ); +} +async function setupPersona(id) { + return (0,db/* consistentPersonaDBWriteAccess */.As)(async (t)=>{ + const d = await (0,db/* queryPersonaDB */.Hm)(id, t); + if (!d) throw new Error('cannot find persona'); + if (!d.privateKey) throw new Error('Cannot setup a persona without a private key'); + if (d.linkedProfiles.size === 0) throw new Error('persona should link at least one profile'); + if (d.uninitialized) { + await (0,db/* updatePersonaDB */.E8)({ + identifier: id, + uninitialized: false + }, { + linkedProfiles: 'merge', + explicitUndefinedField: 'ignore' + }, t); + } + }); +} +async function loginExistPersonaByPrivateKey(privateKeyString) { + const privateKey = (0,decode/* decode */.Jx)((0,esm/* decodeArrayBuffer */.xe)(privateKeyString)); + if (!(0,shared_base_src/* isEC_Private_JsonWebKey */.PQ)(privateKey)) throw new TypeError('Invalid private key'); + const identifier = await (0,shared_base_src/* ECKeyIdentifierFromJsonWebKey */.CH)(privateKey); + const persona = await (0,db/* queryPersonaDB */.Hm)(identifier, undefined, true); + if (persona) { + await loginPersona(persona.identifier); + return identifier; + } + return null; +} +async function mobile_queryPersonaByPrivateKey(privateKeyString) { + if (false) {} + const privateKey = (0,decode/* decode */.Jx)((0,esm/* decodeArrayBuffer */.xe)(privateKeyString)); + const identifier = await (0,shared_base_src/* ECKeyIdentifierFromJsonWebKey */.CH)(privateKey); + const persona = await (0,db/* queryPersonaDB */.Hm)(identifier, undefined, true); + if (persona) { + await loginPersona(persona.identifier); + return personaRecordToMobilePersona(persona); + } + return null; +} +async function renamePersona(identifier, nickname) { + const personas = await (0,db/* queryPersonasDB */._P)({ + nameContains: nickname + }); + if (personas.length > 0) throw new Error('Nickname already exists'); + return (0,db/* consistentPersonaDBWriteAccess */.As)((t)=>(0,db/* updatePersonaDB */.E8)({ + identifier, + nickname + }, { + linkedProfiles: 'merge', + explicitUndefinedField: 'ignore' + }, t) + ); +} +async function queryPersonaByMnemonic(mnemonic, password) { + const verify = validateMnemonic(mnemonic); + if (!verify) { + throw new Error('Verify error'); + } + const { key } = await recover_ECDH_256k1_KeyPair_ByMnemonicWord(mnemonic, password); + const identifier = await (0,shared_base_src/* ECKeyIdentifierFromJsonWebKey */.CH)(key.privateKey); + const persona = await (0,db/* queryPersonaDB */.Hm)(identifier, undefined, true); + if (persona) { + await loginPersona(persona.identifier); + return persona.identifier; + } + return null; +} + +// EXTERNAL MODULE: ../../node_modules/.pnpm/ethereumjs-util@7.1.0/node_modules/ethereumjs-util/dist.browser/index.js +var dist_browser = __webpack_require__(98257); +// EXTERNAL MODULE: ./shared/index.ts +var shared = __webpack_require__(94670); +// EXTERNAL MODULE: ./background/services/helper/index.ts + 3 modules +var services_helper = __webpack_require__(67968); +;// CONCATENATED MODULE: ./background/services/identity/persona/sign.ts +/* provided dependency */ var Buffer = __webpack_require__(15313)["Buffer"]; + + + + + + +async function signWithPersona({ message , method , identifier }) { + if (method !== 'eth') throw new Error('Unknown sign method'); + const requestID = Math.random().toString(16).slice(3); + await (0,services_helper.openPopupWindow)(shared_base_src/* PopupRoutes.PersonaSignRequest */.mZ.PersonaSignRequest, { + message, + requestID, + identifier: identifier?.toText() + }); + const waitForApprove = new Promise((resolve, reject)=>{ + (0,esm/* delay */.gw)(1000 * 60).then(()=>reject(new Error('Timeout')) + ); + shared/* MaskMessages.events.personaSignRequest.on */.ql.events.personaSignRequest.on((approval)=>{ + if (approval.requestID !== requestID) return; + if (!approval.selectedPersona) reject(new Error('Persona Rejected')); + resolve(approval.selectedPersona); + }); + }); + const signer = await waitForApprove; + return generateSignResult(signer, message); +} +async function generateSignResult(signer, message) { + const persona = (await (0,db/* queryPersonasWithPrivateKey */.Eq)()).find((x)=>x.identifier === signer + ); + if (!persona) throw new Error('Persona not found'); + const length = (0,esm/* encodeText */.YT)(message).length; + const messageHash = (0,dist_browser.keccakFromString)(`\x19Ethereum Signed Message:\n${length}${message}`, 256); + const privateKey = Buffer.from((0,shared_base_src/* fromBase64URL */.mz)(persona.privateKey.d)); + const signature = (0,dist_browser.ecsign)(messageHash, privateKey); + return { + persona: persona.identifier, + signature: { + raw: signature, + signature: (0,dist_browser.toRpcSig)(signature.v, signature.r, signature.s), + EIP2098: (0,dist_browser.toCompactSig)(signature.v, signature.r, signature.s) + }, + address: (0,dist_browser.bufferToHex)((0,dist_browser.publicToAddress)((0,dist_browser.privateToPublic)(privateKey))), + messageHex: (0,dist_browser.bufferToHex)(Buffer.from(new TextEncoder().encode(message))) + }; +} + +// EXTERNAL MODULE: ./shared/messages.ts +var messages = __webpack_require__(29130); +// EXTERNAL MODULE: ./background/database/avatar-cache/avatar.ts +var avatar_cache_avatar = __webpack_require__(52947); +;// CONCATENATED MODULE: ./background/services/identity/persona/avatar.ts + + +async function getPersonaAvatar(identifier) { + if (!identifier) return null; + return (0,avatar_cache_avatar/* queryAvatarsDataURL */.A)([ + identifier + ]).then((x)=>x.get(identifier) + ); +} +async function updatePersonaAvatar(identifier, avatar) { + if (!identifier) return; + await (0,avatar_cache_avatar/* storeAvatar */.Z)(identifier, await avatar.arrayBuffer()); + messages/* MaskMessages.events.ownPersonaChanged.sendToAll */.q.events.ownPersonaChanged.sendToAll(undefined); +} + +;// CONCATENATED MODULE: ./background/services/identity/profile/mobile.ts +/** @internal */ function profileRecordToMobileProfile(profile) { + return { + identifier: profile.identifier.toText(), + createdAt: profile.createdAt.getTime(), + updatedAt: profile.updatedAt.getTime(), + nickname: profile.nickname, + linkedPersona: !!profile.linkedPersona + }; +} + +;// CONCATENATED MODULE: ./background/services/identity/profile/query.ts + + + + + +async function mobile_queryProfiles(options) { + if (false) {} + const { network , identifiers } = options; + const result = await (0,db/* queryProfilesDB */.i2)({ + network, + identifiers + }); + return result.map(profileRecordToMobileProfile); +} +async function mobile_queryOwnedProfiles(network) { + let result; + await (0,db/* createPersonaDBReadonlyAccess */.hC)(async (t)=>{ + const personas = await (0,db/* queryPersonasDB */._P)({ + hasPrivateKey: true + }, t); + const profiles = personas.filter((x)=>!x.uninitialized + ).flatMap((x)=>[ + ...x.linkedProfiles.keys() + ] + ).filter((x)=>network ? x.network === network : true + ); + result = await (0,db/* queryProfilesDB */.i2)({ + identifiers: profiles + }); + }); + return result.map(profileRecordToMobileProfile); +} +async function mobile_queryProfileRecordFromIndexedDB() { + if (false) {} + return (0,web.queryProfilesDB)({}); +} +async function queryProfilesInformation(identifiers) { + const profiles = await (0,db/* queryProfilesDB */.i2)({ + identifiers + }); + return (0,convert/* toProfileInformation */.Y)(profiles).mustNotAwaitThisWithInATransaction; +} +/** @deprecated */ async function hasLocalKey(identifier) { + return (0,helper/* hasLocalKeyOf */.wf)(identifier); +} +async function queryOwnedProfilesInformation(network) { + let profiles; + await (0,db/* createPersonaDBReadonlyAccess */.hC)(async (t)=>{ + const personas = (await (0,db/* queryPersonasDB */._P)({ + hasPrivateKey: true + }, t)).sort((a, b)=>a.updatedAt > b.updatedAt ? 1 : -1 + ); + const ids = Array.from(new Set(personas.flatMap((x)=>[ + ...x.linkedProfiles.keys() + ] + ))); + profiles = await (0,db/* queryProfilesDB */.i2)({ + identifiers: ids, + network + }, t); + }); + return (0,convert/* toProfileInformation */.Y)(profiles.filter((x)=>x.identifier.network === network + )).mustNotAwaitThisWithInATransaction; +} + +// EXTERNAL MODULE: ../web3-providers/src/index.ts +var web3_providers_src = __webpack_require__(19769); +;// CONCATENATED MODULE: ./background/services/identity/profile/update.ts + + + + + +async function updateProfileInfo(identifier, data) { + if (data.nickname) { + const rec = { + identifier, + nickname: data.nickname, + createdAt: new Date(), + updatedAt: new Date() + }; + await (0,db/* consistentPersonaDBWriteAccess */.As)((t)=>(0,db/* createOrUpdateProfileDB */.o7)(rec, t) + ); + } + if (data.avatarURL) await (0,avatar_cache_avatar/* storeAvatar */.Z)(identifier, data.avatarURL); +} +function mobile_removeProfile(id) { + if (false) {} + return (0,db/* consistentPersonaDBWriteAccess */.As)((t)=>(0,db/* deleteProfileDB */.B4)(id, t) + ); +} +async function detachProfileWithNextID(uuid, personaPublicKey, platform, identity, createdAt, options) { + await web3_providers_src/* NextIDProof.bindProof */.q7.bindProof(uuid, personaPublicKey, shared_base_src/* NextIDAction.Delete */.BU.Delete, platform, identity, createdAt, { + signature: options?.signature + }); + messages/* MaskMessages.events.ownProofChanged.sendToAll */.q.events.ownProofChanged.sendToAll(undefined); +} +/** + * In older version of Mask, identity is marked as `ProfileIdentifier(network, '$unknown')` or `ProfileIdentifier(network, '$self')`. After upgrading to the newer version of Mask, Mask will try to find the current user in that network and call this function to replace old identifier into a "resolved" identity. + * @param identifier The resolved identity + */ async function resolveUnknownLegacyIdentity(identifier) { + const unknown = shared_base_src/* ProfileIdentifier.of */.WO.of(identifier.network, '$unknown').unwrap(); + const self = shared_base_src/* ProfileIdentifier.of */.WO.of(identifier.network, '$self').unwrap(); + const records = await (0,db/* queryProfilesDB */.i2)({ + identifiers: [ + unknown, + self + ] + }); + if (!records.length) return; + const finalRecord = Object.assign({}, ...records, { + identifier + }); + try { + await (0,db/* consistentPersonaDBWriteAccess */.As)(async (t)=>{ + await (0,db/* createProfileDB */.ah)(finalRecord, t); + await (0,db/* deleteProfileDB */.B4)(unknown, t).catch(()=>{}); + await (0,db/* deleteProfileDB */.B4)(self, t).catch(()=>{}); + }); + } catch { + // the profile already exists + } +} +/** + * Remove an identity. + */ async function attachProfile(source, target, data) { + if (target instanceof shared_base_src/* ProfileIdentifier */.WO) { + const profile = await (0,db/* queryProfileDB */.IW)(target); + if (!profile?.linkedPersona) throw new Error('target not found'); + target = profile.linkedPersona; + } + return (0,db/* attachProfileDB */.tc)(source, target, data); +} +function detachProfile(identifier) { + return (0,db/* detachProfileDB */.AY)(identifier); +} + +// EXTERNAL MODULE: ../public-api/src/index.ts +var public_api_src = __webpack_require__(60718); +;// CONCATENATED MODULE: ./background/services/identity/relation/create.ts + + +async function createNewRelation(profile, linked, favor = public_api_src/* RelationFavor.UNCOLLECTED */.Kn.UNCOLLECTED) { + const t = await (0,db/* createRelationsTransaction */.cl)(); + const relationsInDB = await (0,db/* queryRelations */.bF)(linked, profile, t); + if (relationsInDB.length > 0) return; + await (0,db/* createRelationDB */.N8)({ + profile, + linked, + favor + }, t); +} + +;// CONCATENATED MODULE: ./background/services/identity/relation/query.ts + + +async function mobile_queryRelationsRecordFromIndexedDB() { + if (false) {} + return (0,web.queryRelations)(); +} +async function queryRelationPaged(currentPersona, options, count) { + if (!currentPersona) return []; + return (0,db/* queryRelationsPagedDB */.PF)(currentPersona, options, count); +} + +;// CONCATENATED MODULE: ./background/services/identity/relation/update.ts + +async function updateRelation(profile, linked, favor) { + const t = await (0,db/* createRelationsTransaction */.cl)(); + await (0,db/* updateRelationDB */.Jx)({ + profile, + linked, + favor + }, t); +} + +;// CONCATENATED MODULE: ./background/services/identity/avatar/query.ts + + +;// CONCATENATED MODULE: ./background/services/identity/index.ts + + + + + + + + + + + + + + +/***/ }) + +}]); \ No newline at end of file diff --git a/DevelopmentPod/MaskbookPlugin/maskbook/js/1993.js b/DevelopmentPod/MaskbookPlugin/maskbook/js/1993.js new file mode 100644 index 00000000..e6fb3d26 --- /dev/null +++ b/DevelopmentPod/MaskbookPlugin/maskbook/js/1993.js @@ -0,0 +1,818 @@ +"use strict"; +(globalThis["webpackChunk_masknet_extension"] = globalThis["webpackChunk_masknet_extension"] || []).push([[1993,7968,5989],{ + +/***/ 45479: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +/* provided dependency */ var Buffer = __webpack_require__(15313)["Buffer"]; + + +var isHexPrefixed = __webpack_require__(77145); +var stripHexPrefix = __webpack_require__(45533); + +/** + * Pads a `String` to have an even length + * @param {String} value + * @return {String} output + */ +function padToEven(value) { + var a = value; // eslint-disable-line + + if (typeof a !== 'string') { + throw new Error('[ethjs-util] while padding to even, value must be string, is currently ' + typeof a + ', while padToEven.'); + } + + if (a.length % 2) { + a = '0' + a; + } + + return a; +} + +/** + * Converts a `Number` into a hex `String` + * @param {Number} i + * @return {String} + */ +function intToHex(i) { + var hex = i.toString(16); // eslint-disable-line + + return '0x' + hex; +} + +/** + * Converts an `Number` to a `Buffer` + * @param {Number} i + * @return {Buffer} + */ +function intToBuffer(i) { + var hex = intToHex(i); + + return new Buffer(padToEven(hex.slice(2)), 'hex'); +} + +/** + * Get the binary size of a string + * @param {String} str + * @return {Number} + */ +function getBinarySize(str) { + if (typeof str !== 'string') { + throw new Error('[ethjs-util] while getting binary size, method getBinarySize requires input \'str\' to be type String, got \'' + typeof str + '\'.'); + } + + return Buffer.byteLength(str, 'utf8'); +} + +/** + * Returns TRUE if the first specified array contains all elements + * from the second one. FALSE otherwise. + * + * @param {array} superset + * @param {array} subset + * + * @returns {boolean} + */ +function arrayContainsArray(superset, subset, some) { + if (Array.isArray(superset) !== true) { + throw new Error('[ethjs-util] method arrayContainsArray requires input \'superset\' to be an array got type \'' + typeof superset + '\''); + } + if (Array.isArray(subset) !== true) { + throw new Error('[ethjs-util] method arrayContainsArray requires input \'subset\' to be an array got type \'' + typeof subset + '\''); + } + + return subset[Boolean(some) && 'some' || 'every'](function (value) { + return superset.indexOf(value) >= 0; + }); +} + +/** + * Should be called to get utf8 from it's hex representation + * + * @method toUtf8 + * @param {String} string in hex + * @returns {String} ascii string representation of hex value + */ +function toUtf8(hex) { + var bufferValue = new Buffer(padToEven(stripHexPrefix(hex).replace(/^0+|0+$/g, '')), 'hex'); + + return bufferValue.toString('utf8'); +} + +/** + * Should be called to get ascii from it's hex representation + * + * @method toAscii + * @param {String} string in hex + * @returns {String} ascii string representation of hex value + */ +function toAscii(hex) { + var str = ''; // eslint-disable-line + var i = 0, + l = hex.length; // eslint-disable-line + + if (hex.substring(0, 2) === '0x') { + i = 2; + } + + for (; i < l; i += 2) { + var code = parseInt(hex.substr(i, 2), 16); + str += String.fromCharCode(code); + } + + return str; +} + +/** + * Should be called to get hex representation (prefixed by 0x) of utf8 string + * + * @method fromUtf8 + * @param {String} string + * @param {Number} optional padding + * @returns {String} hex representation of input string + */ +function fromUtf8(stringValue) { + var str = new Buffer(stringValue, 'utf8'); + + return '0x' + padToEven(str.toString('hex')).replace(/^0+|0+$/g, ''); +} + +/** + * Should be called to get hex representation (prefixed by 0x) of ascii string + * + * @method fromAscii + * @param {String} string + * @param {Number} optional padding + * @returns {String} hex representation of input string + */ +function fromAscii(stringValue) { + var hex = ''; // eslint-disable-line + for (var i = 0; i < stringValue.length; i++) { + // eslint-disable-line + var code = stringValue.charCodeAt(i); + var n = code.toString(16); + hex += n.length < 2 ? '0' + n : n; + } + + return '0x' + hex; +} + +/** + * getKeys([{a: 1, b: 2}, {a: 3, b: 4}], 'a') => [1, 3] + * + * @method getKeys get specific key from inner object array of objects + * @param {String} params + * @param {String} key + * @param {Boolean} allowEmpty + * @returns {Array} output just a simple array of output keys + */ +function getKeys(params, key, allowEmpty) { + if (!Array.isArray(params)) { + throw new Error('[ethjs-util] method getKeys expecting type Array as \'params\' input, got \'' + typeof params + '\''); + } + if (typeof key !== 'string') { + throw new Error('[ethjs-util] method getKeys expecting type String for input \'key\' got \'' + typeof key + '\'.'); + } + + var result = []; // eslint-disable-line + + for (var i = 0; i < params.length; i++) { + // eslint-disable-line + var value = params[i][key]; // eslint-disable-line + if (allowEmpty && !value) { + value = ''; + } else if (typeof value !== 'string') { + throw new Error('invalid abi'); + } + result.push(value); + } + + return result; +} + +/** + * Is the string a hex string. + * + * @method check if string is hex string of specific length + * @param {String} value + * @param {Number} length + * @returns {Boolean} output the string is a hex string + */ +function isHexString(value, length) { + if (typeof value !== 'string' || !value.match(/^0x[0-9A-Fa-f]*$/)) { + return false; + } + + if (length && value.length !== 2 + 2 * length) { + return false; + } + + return true; +} + +module.exports = { + arrayContainsArray: arrayContainsArray, + intToBuffer: intToBuffer, + getBinarySize: getBinarySize, + isHexPrefixed: isHexPrefixed, + stripHexPrefix: stripHexPrefix, + padToEven: padToEven, + intToHex: intToHex, + fromAscii: fromAscii, + fromUtf8: fromUtf8, + toAscii: toAscii, + toUtf8: toUtf8, + getKeys: getKeys, + isHexString: isHexString +}; + +/***/ }), + +/***/ 55989: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + + +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "Z_": () => (/* binding */ createDBAccess), + "Ns": () => (/* binding */ createDBAccessWithAsyncUpgrade), + "_X": () => (/* binding */ createTransaction) +}); + +// EXTERNAL MODULE: ../../node_modules/.pnpm/@dimensiondev+holoflows-kit@0.9.0-20220520093249-0870919_5owzivba7saavwcb3imbrcsadu/node_modules/@dimensiondev/holoflows-kit/umd/index.cjs +var umd = __webpack_require__(88967); +// EXTERNAL MODULE: ./shared/index.ts +var shared = __webpack_require__(94670); +;// CONCATENATED MODULE: ../../node_modules/.pnpm/safari-14-idb-fix@3.0.0/node_modules/safari-14-idb-fix/dist/index.js +/** + * Work around Safari 14 IndexedDB open bug. + * + * Safari has a horrible bug where IDB requests can hang while the browser is starting up. https://bugs.webkit.org/show_bug.cgi?id=226547 + * The only solution is to keep nudging it until it's awake. + */ +function idbReady() { + var isSafari = !navigator.userAgentData && + /Safari\//.test(navigator.userAgent) && + !/Chrom(e|ium)\//.test(navigator.userAgent); + // No point putting other browsers or older versions of Safari through this mess. + if (!isSafari || !indexedDB.databases) + return Promise.resolve(); + var intervalId; + return new Promise(function (resolve) { + var tryIdb = function () { return indexedDB.databases().finally(resolve); }; + intervalId = setInterval(tryIdb, 100); + tryIdb(); + }).finally(function () { return clearInterval(intervalId); }); +} + +/* harmony default export */ const dist = (idbReady); + +;// CONCATENATED MODULE: ./background/database/utils/openDB.ts + + + +function createDBAccess(opener) { + let db = undefined; + if (true) { + // iOS bug: indexedDB dies randomly + shared/* MaskMessages.events.mobile_app_suspended.on */.ql.events.mobile_app_suspended.on(clean); + setInterval(clean, /** 1 min */ 1000 * 60); + } + function clean() { + if (db) { + db.close(); + db.addEventListener('close', ()=>db = undefined + , { + once: true + }); + } + db = undefined; + } + return async ()=>{ + if (true) { + await dist(); + } + (0,umd.assertEnvironment)(umd.Environment.ManifestBackground); + if (db) { + try { + // try if the db still open + const t = db.transaction([ + db.objectStoreNames[0] + ], 'readonly', {}); + t.commit(); + return db; + } catch { + clean(); + } + } + db = await opener(); + db.addEventListener('close', clean, { + once: true + }); + db.addEventListener('error', clean, { + once: true + }); + return db; + }; +} +function createDBAccessWithAsyncUpgrade(firstVersionThatRequiresAsyncUpgrade, latestVersion, opener, asyncUpgradePrepare) { + let db = undefined; + if (true) { + // iOS bug: indexedDB dies randomly + shared/* MaskMessages.events.mobile_app_suspended.on */.ql.events.mobile_app_suspended.on(clean); + setInterval(clean, /** 1 min */ 1000 * 60); + } + function clean() { + if (db) { + db.close(); + db.addEventListener('close', ()=>pendingOpen = db = undefined + , { + once: true + }); + } + pendingOpen = db = undefined; + } + let pendingOpen; + async function open() { + if (true) { + await dist(); + } + (0,umd.assertEnvironment)(umd.Environment.ManifestBackground); + if (db?.version === latestVersion) return db; + let currentVersion = firstVersionThatRequiresAsyncUpgrade; + let lastVersionData = undefined; + while(currentVersion < latestVersion){ + try { + db = await opener(currentVersion, lastVersionData); + // if the open success, the stored version is small or eq than currentTryOpenVersion + // let's call the prepare function to do all the async jobs + lastVersionData = await asyncUpgradePrepare(db); + } catch (error) { + if (currentVersion >= latestVersion) throw error; + // if the stored database version is bigger than the currentTryOpenVersion + // It will fail and we just move to next version + } + currentVersion += 1; + db?.close(); + db = undefined; + } + db = await opener(currentVersion, lastVersionData); + db.addEventListener('close', (e)=>db = undefined + , { + once: true + }); + if (!db) throw new Error('Invalid state'); + return db; + } + return ()=>{ + // Share a Promise to prevent async upgrade for multiple times + if (pendingOpen) return pendingOpen; + const promise = pendingOpen = open(); + promise.catch(()=>pendingOpen = undefined + ); + return promise; + }; +} +function createTransaction(db, mode) { + // It must be a high order function to infer the type of UsedStoreName correctly. + return (...storeNames)=>{ + return db.transaction(storeNames, mode); + }; +} + + +/***/ }), + +/***/ 54494: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "$": () => (/* binding */ __deprecated__getStorage), +/* harmony export */ "X": () => (/* binding */ __deprecated__setStorage) +/* harmony export */ }); +/* harmony import */ var lodash_unified__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9084); +/* harmony import */ var _dimensiondev_kit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(46123); + + +/** + * Make sure that the storage is used serially. + */ class MutexStorage { + lock() { + this.locked = true; + } + unlock() { + this.locked = false; + } + async continue() { + if (!this.locked) this.tasks.shift()?.(); + } + async getStorage(key) { + return new Promise(async (resolve, reject)=>{ + const callback = (e, storage1)=>{ + if (e) reject(e); + else resolve(storage1); + this.unlock(); + this.continue(); + }; + const run = async ()=>{ + try { + this.lock(); + const stored = await (0,_dimensiondev_kit__WEBPACK_IMPORTED_MODULE_0__/* .timeout */ .Vs)(browser.storage.local.get(key), 3000, `Get ${key} timeout.`); + callback(null, stored?.[key]); + } catch (error) { + callback(error); + } + }; + if (this.locked) this.tasks.push(run); + else run(); + }); + } + async setStorage(key, value) { + return new Promise(async (resolve, reject)=>{ + const callback = (e)=>{ + if (e) reject(e); + else resolve(); + this.unlock(); + this.continue(); + }; + const run = async ()=>{ + try { + this.lock(); + await (0,_dimensiondev_kit__WEBPACK_IMPORTED_MODULE_0__/* .timeout */ .Vs)(browser.storage.local.set({ + [key]: value + }), 3000, `Set ${key} to ${value} timeout.`); + callback(null); + } catch (error) { + callback(error); + } + }; + if (this.locked) this.tasks.push(run); + else run(); + }); + } + constructor(){ + this.tasks = []; + this.locked = false; + } +} +const storage = new MutexStorage(); +/** Avoid using this. */ async function __deprecated__getStorage(key) { + if (typeof browser === 'undefined' || !browser.storage) return; + const value = await storage.getStorage(key); + return value; +} +/** Avoid using this. */ async function __deprecated__setStorage(key, value, options = { + howToUpdate: 'replace' +}) { + if (typeof browser === 'undefined' || !browser.storage) return; + if (options.howToUpdate === 'merge') value = (0,lodash_unified__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)(await storage.getStorage(key) ?? {}, value); + return storage.setStorage(key, value); +} + + +/***/ }), + +/***/ 67968: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +// ESM COMPAT FLAG +__webpack_require__.r(__webpack_exports__); + +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "__deprecated__getStorage": () => (/* reexport */ deprecated_storage/* __deprecated__getStorage */.$), + "__deprecated__setStorage": () => (/* reexport */ deprecated_storage/* __deprecated__setStorage */.X), + "fetch": () => (/* reexport */ fetch), + "fetchJSON": () => (/* reexport */ fetchJSON), + "openDashboard": () => (/* reexport */ popup_opener/* openDashboard */.f8), + "openPopupWindow": () => (/* reexport */ popup_opener/* openPopupWindow */.lU), + "queryExtensionPermission": () => (/* reexport */ request_permission/* queryExtensionPermission */.W0), + "r2d2Fetch": () => (/* reexport */ r2d2Fetch), + "removePopupWindow": () => (/* reexport */ popup_opener/* removePopupWindow */.Y8), + "requestExtensionPermission": () => (/* reexport */ request_permission/* requestExtensionPermission */.rc), + "resolveTCOLink": () => (/* reexport */ resolveTCOLink), + "saveFileFromBuffer": () => (/* reexport */ download/* saveFileFromBuffer */.d) +}); + +;// CONCATENATED MODULE: ./background/services/helper/fetch.ts +async function fetch(url) { + const res = await globalThis.fetch(url); + return res.blob(); +} +/** @deprecated */ async function fetchJSON(url) { + const res = await globalThis.fetch(url); + return res.json(); +} + +// EXTERNAL MODULE: ../../node_modules/.pnpm/@dimensiondev+kit@0.0.0-20220617045824-8bc7a27/node_modules/@dimensiondev/kit/esm/index.js +var esm = __webpack_require__(46123); +;// CONCATENATED MODULE: ./background/services/helper/short-link-resolver.ts + +const cache = new Map(); +async function resolver(u) { + if (!u.startsWith('https://t.co/')) return null; + if (cache.has(u)) return cache.get(u); + const res = await globalThis.fetch(u, { + redirect: 'error', + credentials: 'omit', + referrerPolicy: 'no-referrer' + }); + const text = await res.text(); + const url = text.match(/URL=(.+).><\/noscript/)?.[1]; + if (url) cache.set(u, url); + return url ?? null; +} +/** Resolve a https://t.co/ link to it's real address. */ const resolveTCOLink = (0,esm/* memoizePromise */.J3)(resolver, (x)=>x +); + +// EXTERNAL MODULE: ./background/services/helper/popup-opener.ts +var popup_opener = __webpack_require__(31118); +// EXTERNAL MODULE: ./background/services/helper/deprecated-storage.ts +var deprecated_storage = __webpack_require__(54494); +// EXTERNAL MODULE: ./background/services/helper/request-permission.ts +var request_permission = __webpack_require__(39126); +// EXTERNAL MODULE: ./shared/helpers/download.ts +var download = __webpack_require__(42886); +// EXTERNAL MODULE: ../../node_modules/.pnpm/urlcat@2.0.4/node_modules/urlcat/dist/index.js +var dist = __webpack_require__(19802); +var dist_default = /*#__PURE__*/__webpack_require__.n(dist); +;// CONCATENATED MODULE: ./background/services/helper/r2d2Fetch.ts + +const r2d2URL = 'r2d2.to'; +var R2d2Workers; +(function(R2d2Workers) { + R2d2Workers["opensea"] = 'opensea-proxy'; + R2d2Workers["gitcoin"] = 'gitcoin-agent'; + R2d2Workers["coinMarketCap"] = 'coinmarketcap-agent'; + R2d2Workers["goPlusLabs"] = 'gopluslabs'; +})(R2d2Workers || (R2d2Workers = {})); +const matchers = [ + [ + 'https://api.opensea.io', + R2d2Workers.opensea + ], + [ + 'https://gitcoin.co', + R2d2Workers.gitcoin + ], + [ + 'https://web-api.coinmarketcap.com', + R2d2Workers.coinMarketCap + ], + [ + 'https://api.gopluslabs.io', + R2d2Workers.goPlusLabs + ], +]; +/** + * Why use r2d2 fetch: some third api provider will be block in Firefox and protect api key + * @returns fetch response + * @param input + * @param init + */ async function r2d2Fetch(input, init) { + const url = init instanceof Request ? init.url : input; + // ipfs + if (url.startsWith('ipfs://')) return globalThis.fetch(dist_default()('https://cors.r2d2.to?https://coldcdn.com/api/cdn/mipfsygtms/ipfs/:ipfs', { + ipfs: url.replace('ipfs://', '') + }), init); + // r2d2 + if (url.includes('r2d2.to')) return globalThis.fetch(input, init); + // r2d2 worker + const r2deWorkerType = matchers.find((x)=>url.startsWith(x[0]) + )?.[1]; + if (r2deWorkerType) return globalThis.fetch(url.replace(new URL(url).origin, `https://${r2deWorkerType}.${r2d2URL}`), init); + // fallback + return globalThis.fetch(input, init); +} + +;// CONCATENATED MODULE: ./background/services/helper/index.ts + + + + + + + + + +/***/ }), + +/***/ 31118: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "Y8": () => (/* binding */ removePopupWindow), +/* harmony export */ "f8": () => (/* binding */ openDashboard), +/* harmony export */ "lU": () => (/* binding */ openPopupWindow) +/* harmony export */ }); +/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(44451); +/* harmony import */ var urlcat__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(19802); +/* harmony import */ var urlcat__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(urlcat__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(94670); + + + +let currentPopupWindowId = 0; +function isLocked() { + return new Promise((resolve)=>{ + const off = _shared__WEBPACK_IMPORTED_MODULE_2__/* .MaskMessages.events.wallet_is_locked.on */ .ql.events.wallet_is_locked.on(([type, value])=>{ + if (type === 'request') return; + off(); + resolve(value); + // in case something went wrong + setTimeout(()=>resolve(false) + , 200); + }); + _shared__WEBPACK_IMPORTED_MODULE_2__/* .MaskMessages.events.wallet_is_locked.sendToLocal */ .ql.events.wallet_is_locked.sendToLocal([ + 'request' + ]); + }); +} +const exclusionDetectLocked = [ + _masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .PopupRoutes.PersonaSignRequest */ .mZ.PersonaSignRequest, + _masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .PopupRoutes.Unlock */ .mZ.Unlock, + _masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .PopupRoutes.ConnectWallet */ .mZ.ConnectWallet +]; +async function openPopupWindow(route, params) { + const windows = await browser.windows.getAll(); + const popup = windows.find((win)=>win && win.type === 'popup' && win.id === currentPopupWindowId + ); + // Focus on the pop-up window if it already exists + if (popup) { + await browser.windows.update(currentPopupWindowId, { + focused: true + }); + } else { + const locked = await isLocked(); + const shouldUnlockWallet = locked && !exclusionDetectLocked.includes(route ?? _masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .PopupRoutes.Wallet */ .mZ.Wallet); + const url = urlcat__WEBPACK_IMPORTED_MODULE_1___default()('popups.html#', shouldUnlockWallet ? _masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .PopupRoutes.Unlock */ .mZ.Unlock : route ?? _masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .PopupRoutes.Wallet */ .mZ.Wallet, { + toBeClose: 1, + from: locked && route ? route : null, + ...params + }); + let left; + let top; + try { + const lastFocused = await browser.windows.getLastFocused(); + // Position window in top right corner of lastFocused window. + top = lastFocused.top ?? 0; + left = (lastFocused.left ?? 0) + (lastFocused.width ?? 0) - 350; + } catch (error_) { + // The following properties are more than likely 0, due to being + // opened from the background chrome process for the extension that + // has no physical dimensions + const { screenX , screenY , outerWidth } = window; + top = Math.max(screenY, 0); + left = Math.max(screenX + (outerWidth - 350), 0); + } + const { id } = await browser.windows.create({ + url: browser.runtime.getURL(url), + width: 350, + height: 640, + type: 'popup', + state: 'normal', + left, + top + }); + // update currentPopupWindowId and clean event + if (id) { + currentPopupWindowId = id; + browser.windows.onRemoved.addListener(function listener(windowID) { + if (windowID === id) { + currentPopupWindowId = 0; + } + }); + // firefox bug: https://bugzilla.mozilla.org/show_bug.cgi?id=1271047 + if (false) {} + } + } +} +async function removePopupWindow() { + if (!currentPopupWindowId) return; + browser.windows.remove(currentPopupWindowId); + currentPopupWindowId = 0; +} +async function openDashboard(route, search) { + return browser.tabs.create({ + active: true, + url: browser.runtime.getURL(`/dashboard.html#${route}${search ? `?${search}` : ''}`) + }); +} + + +/***/ }), + +/***/ 39126: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "BN": () => (/* binding */ requestSiteAdaptorsPermission), +/* harmony export */ "W0": () => (/* binding */ queryExtensionPermission), +/* harmony export */ "Xm": () => (/* binding */ requestHostPermission), +/* harmony export */ "rc": () => (/* binding */ requestExtensionPermission) +/* harmony export */ }); +/* harmony import */ var _shared_definitions_routes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(38372); +/* harmony import */ var _shared_flags__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(39820); + + +async function requestExtensionPermission(permission) { + if (_shared_flags__WEBPACK_IMPORTED_MODULE_1__/* .Flags.no_web_extension_dynamic_permission_request */ .vU.no_web_extension_dynamic_permission_request) return true; + if (await browser.permissions.contains(permission)) return true; + try { + return await browser.permissions.request(permission); + } catch { + // which means we're on Firefox. + // Chrome allows permission request from the background. + } + const popup = await browser.windows.create({ + height: 600, + width: 350, + type: 'popup', + url: (0,_shared_definitions_routes__WEBPACK_IMPORTED_MODULE_0__/* .getPermissionRequestURL */ .r)(permission) + }); + return new Promise((resolve)=>{ + browser.windows.onRemoved.addListener(function listener(windowID) { + if (windowID !== popup.id) return; + resolve(browser.permissions.contains(permission)); + browser.windows.onRemoved.removeListener(listener); + }); + }); +} +async function requestHostPermission(origins) { + const currentOrigins = (await browser.permissions.getAll()).origins || []; + const extra = origins.filter((i)=>!currentOrigins?.includes(i) + ); + if (!extra.length) return true; + return requestExtensionPermission({ + origins: extra + }); +} +function queryExtensionPermission(permission) { + return browser.permissions.contains(permission); +} +/** @internal */ function requestSiteAdaptorsPermission(defines) { + return requestExtensionPermission({ + origins: defines.map((x)=>x.declarativePermissions.origins + ).flat() + }); +} + + +/***/ }), + +/***/ 38372: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "r": () => (/* binding */ getPermissionRequestURL), +/* harmony export */ "y": () => (/* binding */ getPopupRouteURLWithNoParam) +/* harmony export */ }); +/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(44451); + +function getPopupRouteURLWithNoParam(kind) { + return browser.runtime.getURL(`/popups.html#${kind}`); +} +function getPermissionRequestURL(permission) { + const { origins =[] , permissions =[] } = permission; + const params = new URLSearchParams(); + for (const each of origins)params.append('origins', each); + for (const each1 of permissions)params.append('permissions', each1); + return `${getPopupRouteURLWithNoParam(_masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .PopupRoutes.RequestPermission */ .mZ.RequestPermission)}?${params.toString()}`; +} + + +/***/ }), + +/***/ 42886: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "d": () => (/* binding */ saveFileFromBuffer), +/* harmony export */ "r": () => (/* binding */ saveFileFromUrl) +/* harmony export */ }); +// TODO: maybe fallback to normal HTML save file? +async function saveFileFromUrl(url, fileName) { + await browser.downloads.download({ + url, + filename: fileName, + saveAs: true + }); +} +async function saveFileFromBuffer(options) { + const blob = new Blob([ + options.fileContent + ], { + type: options.mimeType + }); + const url = URL.createObjectURL(blob); + await browser.downloads.download({ + url, + filename: options.fileName, + saveAs: true + }); +} + + +/***/ }) + +}]); \ No newline at end of file diff --git a/DevelopmentPod/MaskbookPlugin/maskbook/js/2372.js b/DevelopmentPod/MaskbookPlugin/maskbook/js/2372.js new file mode 100644 index 00000000..b211cfd4 --- /dev/null +++ b/DevelopmentPod/MaskbookPlugin/maskbook/js/2372.js @@ -0,0 +1,1284 @@ +"use strict"; +(globalThis["webpackChunk_masknet_extension"] = globalThis["webpackChunk_masknet_extension"] || []).push([[2372],{ + +/***/ 49959: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "k": () => (/* binding */ ZRX_AFFILIATE_ADDRESS), +/* harmony export */ "q": () => (/* binding */ ZRX_BASE_URL) +/* harmony export */ }); +/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(72499); + +const ZRX_BASE_URL = { + [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .NetworkType.Ethereum */ .td.Ethereum]: 'https://api.0x.org', + [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .NetworkType.Binance */ .td.Binance]: 'https://bsc.api.0x.org/', + [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .NetworkType.Polygon */ .td.Polygon]: 'https://polygon.api.0x.org/', + [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .NetworkType.Arbitrum */ .td.Arbitrum]: 'https://arbitrum.api.0x.org/', + [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .NetworkType.xDai */ .td.xDai]: 'https://xdai.api.0x.org/', + [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .NetworkType.Avalanche */ .td.Avalanche]: 'https://avalanche.api.0x.org/', + [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .NetworkType.Celo */ .td.Celo]: 'https://celo.api.0x.org/', + [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .NetworkType.Fantom */ .td.Fantom]: 'https://fantom.api.0x.org/', + [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .NetworkType.Aurora */ .td.Aurora]: 'https://aurora.api.0x.org/', + [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .NetworkType.Boba */ .td.Boba]: '', + [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .NetworkType.Fuse */ .td.Fuse]: '', + [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .NetworkType.Metis */ .td.Metis]: '', + [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .NetworkType.Optimistic */ .td.Optimistic]: '', + [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .NetworkType.Harmony */ .td.Harmony]: '', + [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .NetworkType.Conflux */ .td.Conflux]: '' +}; +const ZRX_AFFILIATE_ADDRESS = '0x934B510D4C9103E6a87AEf13b816fb080286D649'; + + +/***/ }), + +/***/ 69461: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "L4": () => (/* binding */ BALANCER_SOR_GAS_PRICE), +/* harmony export */ "qT": () => (/* binding */ BALANCER_SWAP_TYPE), +/* harmony export */ "r2": () => (/* binding */ BALANCER_MAX_NO_POOLS) +/* harmony export */ }); +/* harmony import */ var bignumber_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(42263); +/* harmony import */ var bignumber_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(bignumber_js__WEBPACK_IMPORTED_MODULE_0__); + +// gasPrice is used by SOR as a factor to determine how many pools to swap against. +// i.e. higher cost means more costly to trade against lots of different pools. +// Can be changed in future using SOR.gasPrice = newPrice +const BALANCER_SOR_GAS_PRICE = new (bignumber_js__WEBPACK_IMPORTED_MODULE_0___default())('1e11'); +// This determines the max no of pools the SOR will use to swap. +const BALANCER_MAX_NO_POOLS = 4; +var BALANCER_SWAP_TYPE; +(function(BALANCER_SWAP_TYPE) { + BALANCER_SWAP_TYPE["EXACT_IN"] = 'swapExactIn'; + BALANCER_SWAP_TYPE["EXACT_OUT"] = 'swapExactOut'; +})(BALANCER_SWAP_TYPE || (BALANCER_SWAP_TYPE = {})); + + +/***/ }), + +/***/ 33274: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "C": () => (/* binding */ DEFIKINGDOMS_CUSTOM_BASES), +/* harmony export */ "b": () => (/* binding */ DEFIKINGDOMS_BASE_AGAINST_TOKENS) +/* harmony export */ }); +/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(74404); +/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(72499); + +/** + * Some tokens can only be swapped via certain pairs, + * so we override the list of bases that are considered for these tokens. + */ const DEFIKINGDOMS_CUSTOM_BASES = {}; +const DEFIKINGDOMS_BASE_AGAINST_TOKENS = { + ..._masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WNATIVE_ONLY */ .HL, + [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Harmony */ .a_.Harmony]: [ + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WNATIVE */ .FX, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .DAI */ .h1, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .USDC */ .gn, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WBTC */ .ML, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .USDT */ .AA, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .JEWEL */ .aV + ].map((x)=>x[_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Harmony */ .a_.Harmony] + ) +}; + + +/***/ }), + +/***/ 7294: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "P": () => (/* binding */ MDEX_CUSTOM_BASES), +/* harmony export */ "R": () => (/* binding */ MDEX_BASE_AGAINST_TOKENS) +/* harmony export */ }); +/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(74404); +/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(72499); + +/** + * Some tokens can only be swapped via certain pairs, + * so we override the list of bases that are considered for these tokens. + */ const MDEX_CUSTOM_BASES = {}; +const MDEX_BASE_AGAINST_TOKENS = { + ..._masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WNATIVE_ONLY */ .HL, + [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Mainnet */ .a_.Mainnet]: [ + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WNATIVE */ .FX, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .DAI */ .h1, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .USDC */ .gn, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .USDT */ .AA + ].map((x)=>x[_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Mainnet */ .a_.Mainnet] + ), + [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.BSC */ .a_.BSC]: [ + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WNATIVE */ .FX, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .DAI */ .h1, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .USDC */ .gn, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .USDT */ .AA + ].map((x)=>x[_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.BSC */ .a_.BSC] + ) +}; + + +/***/ }), + +/***/ 50052: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "F": () => (/* binding */ OPENSWAP_CUSTOM_BASES), +/* harmony export */ "v": () => (/* binding */ OPENSWAP_BASE_AGAINST_TOKENS) +/* harmony export */ }); +/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(74404); +/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(72499); + +/** + * Some tokens can only be swapped via certain pairs, + * so we override the list of bases that are considered for these tokens. + */ const OPENSWAP_CUSTOM_BASES = {}; +const OPENSWAP_BASE_AGAINST_TOKENS = { + ..._masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WNATIVE_ONLY */ .HL, + [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Harmony */ .a_.Harmony]: [ + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WNATIVE */ .FX, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .DAI */ .h1, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .OPENX */ .Rb, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .USDC */ .gn, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WBTC */ .ML, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .USDT */ .AA + ].map((x)=>x[_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Harmony */ .a_.Harmony] + ) +}; + + +/***/ }), + +/***/ 9712: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "D": () => (/* binding */ PANCAKESWAP_BASE_AGAINST_TOKENS), +/* harmony export */ "t": () => (/* binding */ PANCAKESWAP_CUSTOM_BASES) +/* harmony export */ }); +/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(74404); +/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(72499); + +/** + * Some tokens can only be swapped via certain pairs, + * so we override the list of bases that are considered for these tokens. + */ const PANCAKESWAP_CUSTOM_BASES = {}; +const PANCAKESWAP_BASE_AGAINST_TOKENS = { + ..._masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WNATIVE_ONLY */ .HL, + [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.BSC */ .a_.BSC]: [ + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WNATIVE */ .FX, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .DAI */ .h1, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .BUSD */ .lz, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .BTCB */ .nB, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .UST */ .bi, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .ETHER */ .c0 + ].map((x)=>x[_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.BSC */ .a_.BSC] + ) +}; + + +/***/ }), + +/***/ 96728: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "G": () => (/* binding */ PANGOLIN_CUSTOM_BASES), +/* harmony export */ "h": () => (/* binding */ PANGOLIN_BASE_AGAINST_TOKENS) +/* harmony export */ }); +/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(74404); +/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(72499); + +/** + * Some tokens can only be swapped via certain pairs, + * so we override the list of bases that are considered for these tokens. + */ const PANGOLIN_CUSTOM_BASES = {}; +const PANGOLIN_BASE_AGAINST_TOKENS = { + ..._masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WNATIVE_ONLY */ .HL, + [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Avalanche */ .a_.Avalanche]: [ + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WNATIVE */ .FX, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .DAIe */ .Lq, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .PNG */ .yI, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .USDTe */ ._c, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .USDCe */ .tB, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .ETHER */ .c0, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WBTCe */ .MI + ].map((x)=>x[_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Avalanche */ .a_.Avalanche] + ) +}; + + +/***/ }), + +/***/ 7214: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "P": () => (/* binding */ QUICKSWAP_BASE_AGAINST_TOKENS), +/* harmony export */ "j": () => (/* binding */ QUICKSWAP_CUSTOM_BASES) +/* harmony export */ }); +/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(74404); +/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(72499); + +/** + * Some tokens can only be swapped via certain pairs, + * so we override the list of bases that are considered for these tokens. + */ const QUICKSWAP_CUSTOM_BASES = {}; +const QUICKSWAP_BASE_AGAINST_TOKENS = { + ..._masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WNATIVE_ONLY */ .HL, + [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Matic */ .a_.Matic]: [ + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WNATIVE */ .FX, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .DAI */ .h1, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .USDC */ .gn, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .USDT */ .AA, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .QUICK */ .xZ, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .ETHER */ .c0, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WBTC */ .ML, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .maUSDC */ .J6 + ].map((x)=>x[_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Matic */ .a_.Matic] + ) +}; + + +/***/ }), + +/***/ 53331: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "D": () => (/* binding */ SASHIMISWAP_CUSTOM_BASES), +/* harmony export */ "y": () => (/* binding */ SASHIMISWAP_BASE_AGAINST_TOKENS) +/* harmony export */ }); +/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(74404); +/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(72499); + +/** + * Some tokens can only be swapped via certain pairs, + * so we override the list of bases that are considered for these tokens. + */ const SASHIMISWAP_CUSTOM_BASES = {}; +const SASHIMISWAP_BASE_AGAINST_TOKENS = { + ..._masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WNATIVE_ONLY */ .HL, + [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Mainnet */ .a_.Mainnet]: [ + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WNATIVE */ .FX, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .DAI */ .h1, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .USDC */ .gn, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .USDT */ .AA, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .COMP */ .TP, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .MKR */ .Ti + ].map((x)=>x[_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Mainnet */ .a_.Mainnet] + ) +}; + + +/***/ }), + +/***/ 85394: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "S": () => (/* binding */ SUSHISWAP_BASE_AGAINST_TOKENS), +/* harmony export */ "v": () => (/* binding */ SUSHISWAP_CUSTOM_BASES) +/* harmony export */ }); +/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(74404); +/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(72499); + +/** + * Some tokens can only be swapped via certain pairs, + * so we override the list of bases that are considered for these tokens. + */ const SUSHISWAP_CUSTOM_BASES = {}; +const SUSHISWAP_BASE_AGAINST_TOKENS = { + ..._masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WNATIVE_ONLY */ .HL, + [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Mainnet */ .a_.Mainnet]: [ + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WNATIVE */ .FX, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .DAI */ .h1, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .USDC */ .gn, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .USDT */ .AA, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WBTC */ .ML, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .RUNE */ .uj, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .NFTX */ .lK, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .STETH */ ._S + ].map((x)=>x[_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Mainnet */ .a_.Mainnet] + ), + [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Matic */ .a_.Matic]: [ + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WNATIVE */ .FX, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .USDC */ .gn, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WBTC */ .ML, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .DAI */ .h1, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .USDT */ .AA + ].map((x)=>x[_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Matic */ .a_.Matic] + ), + [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.BSC */ .a_.BSC]: [ + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WNATIVE */ .FX, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .DAI */ .h1, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .BUSD */ .lz, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .USDC */ .gn, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .USDT */ .AA, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .BTCB */ .nB + ].map((x)=>x[_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.BSC */ .a_.BSC] + ), + [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.xDai */ .a_.xDai]: [ + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WNATIVE */ .FX, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .USDC */ .gn, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .USDT */ .AA, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WBTC */ .ML + ].map((x)=>x[_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.xDai */ .a_.xDai] + ), + [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Celo */ .a_.Celo]: [ + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WNATIVE */ .FX, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .CUSD */ .PX, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .CEUR */ .Th + ].map((x)=>x[_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Celo */ .a_.Celo] + ), + [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Fantom */ .a_.Fantom]: [ + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WNATIVE */ .FX, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .DAI */ .h1, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .USDC */ .gn, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .fUSDT */ .Hh, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WBTC */ .ML + ].map((x)=>x[_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Fantom */ .a_.Fantom] + ), + [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Avalanche */ .a_.Avalanche]: [ + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WNATIVE */ .FX, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .DAI */ .h1, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .USDC */ .gn, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WBTC */ .ML, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .USDT */ .AA + ].map((x)=>x[_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Avalanche */ .a_.Avalanche] + ), + [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Harmony */ .a_.Harmony]: [ + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WNATIVE */ .FX, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .DAI */ .h1, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .USDC */ .gn, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WBTC */ .ML, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .USDT */ .AA + ].map((x)=>x[_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Harmony */ .a_.Harmony] + ) +}; + + +/***/ }), + +/***/ 58864: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "Bq": () => (/* binding */ SLIPPAGE_MIN), +/* harmony export */ "IS": () => (/* binding */ ONE_BIPS), +/* harmony export */ "Nd": () => (/* binding */ SLIPPAGE_DEFAULT), +/* harmony export */ "PM": () => (/* binding */ BIPS_BASE), +/* harmony export */ "Q9": () => (/* binding */ SLIPPAGE_MAX), +/* harmony export */ "ag": () => (/* binding */ DEFAULT_TRANSACTION_DEADLINE), +/* harmony export */ "rI": () => (/* binding */ MINIMUM_AMOUNT), +/* harmony export */ "rV": () => (/* binding */ L2_TRANSACTION_DEADLINE) +/* harmony export */ }); +/* unused harmony exports PRICE_IMPACT_LOW, PRICE_IMPACT_MEDIUM, PRICE_IMPACT_HIGH, PRICE_IMPACT_WITHOUT_FEE_CONFIRM_MIN, PRICE_IMPACT_NON_EXPERT_BLOCKED */ +/* harmony import */ var _masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(67938); +/* harmony import */ var bignumber_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(42263); +/* harmony import */ var bignumber_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(bignumber_js__WEBPACK_IMPORTED_MODULE_1__); + + +const BIPS_BASE = new (bignumber_js__WEBPACK_IMPORTED_MODULE_1___default())(10000); +const ONE_BIPS = _masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .ONE.dividedBy */ .ry.dividedBy(BIPS_BASE); +const SLIPPAGE_MIN = 10 // bips +; +const SLIPPAGE_DEFAULT = 50 // bips +; +const SLIPPAGE_MAX = 2000 // bips +; +const DEFAULT_TRANSACTION_DEADLINE = 30 /* minutes */ * 60 /* seconds */ ; +const L2_TRANSACTION_DEADLINE = 60 /* minutes */ * 5 /* seconds */ ; +const PRICE_IMPACT_LOW = 100 // 1% +; +const PRICE_IMPACT_MEDIUM = 300 // 3% +; +const PRICE_IMPACT_HIGH = 500 // 5% +; +// if the price slippage exceeds this number, force the user to type 'confirm' to execute +const PRICE_IMPACT_WITHOUT_FEE_CONFIRM_MIN = 1000 // 10% +; +// for non expert mode disable swaps above this +const PRICE_IMPACT_NON_EXPERT_BLOCKED = 1500 // 15% +; +const MINIMUM_AMOUNT = new (bignumber_js__WEBPACK_IMPORTED_MODULE_1___default())('1e-6'); + + +/***/ }), + +/***/ 34103: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "X": () => (/* binding */ TRADERJOE_BASE_AGAINST_TOKENS), +/* harmony export */ "b": () => (/* binding */ TRADERJOE_CUSTOM_BASES) +/* harmony export */ }); +/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(74404); +/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(72499); + +/** + * Some tokens can only be swapped via certain pairs, + * so we override the list of bases that are considered for these tokens. + */ const TRADERJOE_CUSTOM_BASES = {}; +const TRADERJOE_BASE_AGAINST_TOKENS = { + ..._masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WNATIVE_ONLY */ .HL, + [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Avalanche */ .a_.Avalanche]: [ + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WNATIVE */ .FX, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .DAIe */ .Lq, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .USDTe */ ._c, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .USDCe */ .tB, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WBTCe */ .MI + ].map((x)=>x[_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Avalanche */ .a_.Avalanche] + ) +}; + + +/***/ }), + +/***/ 35675: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "c": () => (/* binding */ TRISOLARIS_CUSTOM_BASES), +/* harmony export */ "m": () => (/* binding */ TRISOLARIS_BASE_AGAINST_TOKENS) +/* harmony export */ }); +/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(74404); +/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(72499); + +/** + * Some tokens can only be swapped via certain pairs, + * so we override the list of bases that are considered for these tokens. + */ const TRISOLARIS_CUSTOM_BASES = {}; +const TRISOLARIS_BASE_AGAINST_TOKENS = { + ..._masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WNATIVE_ONLY */ .HL, + [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Matic */ .a_.Matic]: [ + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WNATIVE */ .FX, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .USDC */ .gn, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WBTC */ .ML, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .DAI */ .h1, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .USDT */ .AA + ].map((x)=>x[_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Matic */ .a_.Matic] + ), + [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Aurora */ .a_.Aurora]: [ + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WNATIVE */ .FX, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .DAI */ .h1, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .USDT */ .AA, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .USDC */ .gn, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WBTC */ .ML + ].map((x)=>x[_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Aurora */ .a_.Aurora] + ) +}; + + +/***/ }), + +/***/ 18627: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "QQ": () => (/* binding */ UNISWAP_CUSTOM_BASES), +/* harmony export */ "Ru": () => (/* binding */ BETTER_TRADE_LESS_HOPS_THRESHOLD), +/* harmony export */ "fI": () => (/* binding */ ZERO_PERCENT), +/* harmony export */ "jg": () => (/* binding */ DEFAULT_MULTICALL_GAS_LIMIT), +/* harmony export */ "s9": () => (/* binding */ MAX_HOP), +/* harmony export */ "u7": () => (/* binding */ UNISWAP_BASE_AGAINST_TOKENS), +/* harmony export */ "yC": () => (/* binding */ ONE_HUNDRED_PERCENT) +/* harmony export */ }); +/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(72499); +/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(74404); +/* harmony import */ var _uniswap_sdk_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(59800); +/* harmony import */ var jsbi__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(24994); +/* harmony import */ var jsbi__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(jsbi__WEBPACK_IMPORTED_MODULE_1__); + + + +/** + * Some tokens can only be swapped via certain pairs, + * so we override the list of bases that are considered for these tokens. + */ const UNISWAP_CUSTOM_BASES = { + [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Mainnet */ .a_.Mainnet]: { + [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .AMPL */ .s5[_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Mainnet */ .a_.Mainnet].address]: [ + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .DAI */ .h1, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .WNATIVE */ .FX + ].map((x)=>x[_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Mainnet */ .a_.Mainnet] + ) + }, + [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Matic */ .a_.Matic]: { + [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .AMPL */ .s5[_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Matic */ .a_.Matic].address]: [ + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .DAI */ .h1, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .WNATIVE */ .FX + ].map((x)=>x[_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Matic */ .a_.Matic] + ) + } +}; +const UNISWAP_BASE_AGAINST_TOKENS = { + ..._masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .WNATIVE_ONLY */ .HL, + [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Mainnet */ .a_.Mainnet]: [ + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .WNATIVE */ .FX, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .DAI */ .h1, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .USDC */ .gn, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .USDT */ .AA, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .WBTC */ .ML + ].map((x)=>x[_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Mainnet */ .a_.Mainnet] + ), + [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Matic */ .a_.Matic]: [ + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .WNATIVE */ .FX, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .DAI */ .h1, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .USDC */ .gn, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .USDT */ .AA, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .WBTC */ .ML + ].map((x)=>x[_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Matic */ .a_.Matic] + ) +}; +const MAX_HOP = 3; +const DEFAULT_MULTICALL_GAS_LIMIT = 2_000_000; +// used to ensure the user doesn't send so much ETH so they end up with <.01 +const BETTER_TRADE_LESS_HOPS_THRESHOLD = new _uniswap_sdk_core__WEBPACK_IMPORTED_MODULE_0__.Percent(jsbi__WEBPACK_IMPORTED_MODULE_1___default().BigInt(50), jsbi__WEBPACK_IMPORTED_MODULE_1___default().BigInt(10000)); +const ZERO_PERCENT = new _uniswap_sdk_core__WEBPACK_IMPORTED_MODULE_0__.Percent('0'); +const ONE_HUNDRED_PERCENT = new _uniswap_sdk_core__WEBPACK_IMPORTED_MODULE_0__.Percent('1'); + + +/***/ }), + +/***/ 18188: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "F": () => (/* binding */ VENOMSWAP_CUSTOM_BASES), +/* harmony export */ "j": () => (/* binding */ VENOMSWAP_BASE_AGAINST_TOKENS) +/* harmony export */ }); +/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(74404); +/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(72499); + +/** + * Some tokens can only be swapped via certain pairs, + * so we override the list of bases that are considered for these tokens. + */ const VENOMSWAP_CUSTOM_BASES = {}; +const VENOMSWAP_BASE_AGAINST_TOKENS = { + ..._masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WNATIVE_ONLY */ .HL, + [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Harmony */ .a_.Harmony]: [ + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WNATIVE */ .FX, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .DAI */ .h1, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .VIPER */ .qN, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .USDC */ .gn, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WBTC */ .ML, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .USDT */ .AA + ].map((x)=>x[_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Harmony */ .a_.Harmony] + ) +}; + + +/***/ }), + +/***/ 82487: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "N": () => (/* binding */ WANNASWAP_BASE_AGAINST_TOKENS), +/* harmony export */ "z": () => (/* binding */ WANNASWAP_CUSTOM_BASES) +/* harmony export */ }); +/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(74404); +/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(72499); + +/** + * Some tokens can only be swapped via certain pairs, + * so we override the list of bases that are considered for these tokens. + */ const WANNASWAP_CUSTOM_BASES = {}; +const WANNASWAP_BASE_AGAINST_TOKENS = { + ..._masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WNATIVE_ONLY */ .HL, + [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Aurora */ .a_.Aurora]: [ + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WNATIVE */ .FX, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WANNA */ .lB, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .DAI */ .h1, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .USDC */ .gn, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .USDT */ .AA, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WBTC */ .ML + ].map((x)=>x[_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Aurora */ .a_.Aurora] + ) +}; + + +/***/ }), + +/***/ 58248: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "activateSocialNetworkUIInner": () => (/* binding */ activateSocialNetworkUIInner), +/* harmony export */ "activatedSocialNetworkUI": () => (/* binding */ activatedSocialNetworkUI), +/* harmony export */ "globalUIState": () => (/* binding */ globalUIState), +/* harmony export */ "loadSocialNetworkUI": () => (/* binding */ loadSocialNetworkUI), +/* harmony export */ "loadSocialNetworkUISync": () => (/* binding */ loadSocialNetworkUISync), +/* harmony export */ "loadSocialNetworkUIs": () => (/* binding */ loadSocialNetworkUIs) +/* harmony export */ }); +/* harmony import */ var _utils_debug_general__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(27716); +/* harmony import */ var _extension_service__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(78778); +/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(94670); +/* harmony import */ var _settings_settings__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(5903); +/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(44451); +/* harmony import */ var _dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(88967); +/* harmony import */ var _dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(_dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_13__); +/* harmony import */ var _masknet_plugin_infra_content_script__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(20778); +/* harmony import */ var _social_network_adaptor_utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(1250); +/* harmony import */ var _plugin_infra_host__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(22180); +/* harmony import */ var _define__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(20940); +/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(93455); +/* harmony import */ var _dimensiondev_kit__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(46123); +/* harmony import */ var _masknet_shared__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(77818); +/* harmony import */ var _masknet_encryption__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(66525); + + + + + + + + + + + + + + +const definedSocialNetworkUIsResolved = new Map(); +let activatedSocialNetworkUI = { + automation: {}, + collecting: {}, + customization: {}, + configuration: {}, + init: ()=>{ + throw new Error(); + }, + injection: {}, + encryptionNetwork: _masknet_encryption__WEBPACK_IMPORTED_MODULE_12__/* .SocialNetworkEnum.Unknown */ .Gq.Unknown, + networkIdentifier: _masknet_shared_base__WEBPACK_IMPORTED_MODULE_4__/* .EnhanceableSite.Localhost */ .Jk.Localhost, + shouldActivate: ()=>false + , + utils: { + createPostContext: null + }, + notReadyForProduction: true, + declarativePermissions: { + origins: [] + } +}; +let globalUIState = {}; +async function activateSocialNetworkUIInner(ui_deferred) { + (0,_dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_13__.assertNotEnvironment)(_dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_13__.Environment.ManifestBackground); + console.log('Activating provider', ui_deferred.networkIdentifier); + const ui = activatedSocialNetworkUI = await loadSocialNetworkUI(ui_deferred.networkIdentifier); + _masknet_shared__WEBPACK_IMPORTED_MODULE_11__/* .sharedUINetworkIdentifier.value */ .Xr.value = ui_deferred.networkIdentifier; + if (ui.customization.sharedComponentOverwrite) { + _masknet_shared__WEBPACK_IMPORTED_MODULE_11__/* .sharedUIComponentOverwrite.value */ .vU.value = ui.customization.sharedComponentOverwrite; + } + console.log('Provider activated. You can access it by globalThis.ui', ui); + Object.assign(globalThis, { + ui + }); + const abort1 = new AbortController(); + const { signal: signal1 } = abort1; + if (false) {} + await (0,_dimensiondev_kit__WEBPACK_IMPORTED_MODULE_10__/* .waitDocumentReadyState */ .uL)('interactive'); + i18nOverwrite(); + globalUIState = await ui.init(signal1); + ui.customization.paletteMode?.start(signal1); + startIntermediateSetupGuide(); + $unknownIdentityResolution(); + ui.collecting.postsProvider?.start(signal1); + startPostListener(); + ui.collecting.currentVisitingIdentityProvider?.start(signal1); + ui.injection.pageInspector?.(signal1); + if (_shared__WEBPACK_IMPORTED_MODULE_2__/* .Flags.toolbox_enabled */ .vU.toolbox_enabled) { + ui.injection.toolbox?.(signal1, 'wallet'); + ui.injection.toolbox?.(signal1, 'application'); + } + ui.injection.newPostComposition?.start?.(signal1); + ui.injection.searchResult?.(signal1); + ui.injection.userBadge?.(signal1); + ui.injection.profileTab?.(signal1); + ui.injection.profileTabContent?.(signal1); + ui.injection.userAvatar?.(signal1); + ui.injection.profileAvatar?.(signal1); + ui.injection.profileTip?.(signal1); + ui.injection.enhancedProfileNFTAvatar?.(signal1); + ui.injection.openNFTAvatar?.(signal1); + ui.injection.postAndReplyNFTAvatar?.(signal1); + ui.injection.avatarClipNFT?.(signal1); + // Update user avatar + ui.collecting.currentVisitingIdentityProvider?.recognized.addListener((ref)=>{ + if (!(ref.avatar && ref.identifier)) return; + _extension_service__WEBPACK_IMPORTED_MODULE_1__/* ["default"].Identity.updateProfileInfo */ .ZP.Identity.updateProfileInfo(ref.identifier, { + avatarURL: ref.avatar, + nickname: ref.nickname + }); + const currentProfile = (0,_social_network_adaptor_utils__WEBPACK_IMPORTED_MODULE_6__/* .getCurrentIdentifier */ .T)(); + if (currentProfile?.linkedPersona) { + _extension_service__WEBPACK_IMPORTED_MODULE_1__/* ["default"].Identity.createNewRelation */ .ZP.Identity.createNewRelation(ref.identifier, currentProfile.linkedPersona); + } + }); + (0,_masknet_plugin_infra_content_script__WEBPACK_IMPORTED_MODULE_5__/* .startPluginSNSAdaptor */ .D4)((0,_social_network_adaptor_utils__WEBPACK_IMPORTED_MODULE_6__/* .getCurrentSNSNetwork */ .G)(ui.networkIdentifier), (0,_plugin_infra_host__WEBPACK_IMPORTED_MODULE_7__/* .createPluginHost */ .R)(signal1, (pluginID, signal)=>{ + const empty = new _dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_13__.ValueRef(undefined); + const lastRecognizedSub = (0,_masknet_shared_base__WEBPACK_IMPORTED_MODULE_4__/* .createSubscriptionFromValueRef */ ._H)(ui.collecting.identityProvider?.recognized || empty, signal); + const currentVisitingSub = (0,_masknet_shared_base__WEBPACK_IMPORTED_MODULE_4__/* .createSubscriptionFromValueRef */ ._H)(ui.collecting.currentVisitingIdentityProvider?.recognized || empty, signal); + return { + ...(0,_plugin_infra_host__WEBPACK_IMPORTED_MODULE_7__/* .createSharedContext */ .y)(pluginID, signal), + lastRecognizedProfile: lastRecognizedSub, + currentVisitingProfile: currentVisitingSub + }; + })); + (0,_utils__WEBPACK_IMPORTED_MODULE_9__/* .setupShadowRootPortal */ .Vc)(); + function i18nOverwrite() { + const i18n = ui.customization.i18nOverwrite || {}; + for (const namespace of Object.keys(i18n)){ + const ns = i18n[namespace]; + for (const i18nKey of Object.keys(ns)){ + const pair = i18n[namespace][i18nKey]; + for (const language of Object.keys(pair)){ + const value = pair[language]; + _masknet_shared_base__WEBPACK_IMPORTED_MODULE_4__/* .i18NextInstance.addResource */ .BV.addResource(language, namespace, i18nKey, value); + } + } + } + } + function $unknownIdentityResolution() { + const provider = ui.collecting.identityProvider; + if (!provider) return; + provider.start(signal1); + provider.recognized.addListener((newValue, oldValue)=>{ + if (document.visibilityState === 'hidden') return; + if (newValue.identifier === oldValue.identifier) return; + if (!newValue.identifier) return; + _utils__WEBPACK_IMPORTED_MODULE_9__/* .MaskMessages.events.Native_visibleSNS_currentDetectedProfileUpdated.sendToBackgroundPage */ .ql.events.Native_visibleSNS_currentDetectedProfileUpdated.sendToBackgroundPage(newValue.identifier); + }); + if (provider.hasDeprecatedPlaceholderName) { + provider.recognized.addListener((id)=>{ + if (signal1.aborted) return; + if (!id.identifier) return; + _extension_service__WEBPACK_IMPORTED_MODULE_1__/* ["default"].Identity.resolveUnknownLegacyIdentity */ .ZP.Identity.resolveUnknownLegacyIdentity(id.identifier); + }); + } + } + function startPostListener() { + const posts = ui.collecting.postsProvider?.posts; + if (!posts) return; + const abortSignals = new WeakMap(); + posts.event.on('set', async (key, value)=>{ + await unmount(key); + const abort = new AbortController(); + signal1.addEventListener('abort', ()=>abort.abort() + ); + abortSignals.set(key, abort); + const { signal: postSignal } = abort; + ui.injection.enhancedPostRenderer?.(postSignal, value); + ui.injection.postInspector?.(postSignal, value); + ui.injection.postActions?.(postSignal, value); + ui.injection.commentComposition?.compositionBox(postSignal, value); + ui.injection.commentComposition?.commentInspector(postSignal, value); + }); + posts.event.on('delete', unmount); + function unmount(key) { + if (!abortSignals.has(key)) return; + abortSignals.get(key).abort(); + // AbortSignal need an event loop + // unmount a React root need another one. + // let's guess a number that the React root will unmount. + return (0,_dimensiondev_kit__WEBPACK_IMPORTED_MODULE_10__/* .delay */ .gw)(16 * 3); + } + } + function startIntermediateSetupGuide() { + const network = ui.networkIdentifier; + const id1 = _settings_settings__WEBPACK_IMPORTED_MODULE_3__/* .currentSetupGuideStatus */ .AI[network].value; + let started = false; + const onStatusUpdate = (id)=>{ + const { persona , status } = JSON.parse(id || '{}'); + if (persona && status && !started) { + started = true; + ui.injection.setupWizard?.(signal1, _masknet_shared_base__WEBPACK_IMPORTED_MODULE_4__/* .ECKeyIdentifier.from */ .ob.from(persona).unwrap()); + } + }; + _settings_settings__WEBPACK_IMPORTED_MODULE_3__/* .currentSetupGuideStatus */ .AI[network].addListener(onStatusUpdate); + _settings_settings__WEBPACK_IMPORTED_MODULE_3__/* .currentSetupGuideStatus */ .AI[network].readyPromise.then(onStatusUpdate); + onStatusUpdate(id1); + } +} +async function loadSocialNetworkUIs() { + const defines = [ + ..._define__WEBPACK_IMPORTED_MODULE_8__/* .definedSocialNetworkUIs.values */ .LB.values() + ].map(async (x)=>x.load() + ); + const uis = (await Promise.all(defines)).map((x)=>x.default + ); + if (!defines) throw new Error('SNS adaptor load failed'); + for (const ui of uis){ + definedSocialNetworkUIsResolved.set(ui.networkIdentifier, ui); + } + return uis; +} +async function loadSocialNetworkUI(identifier) { + if (definedSocialNetworkUIsResolved.has(identifier)) return definedSocialNetworkUIsResolved.get(identifier); + const define = _define__WEBPACK_IMPORTED_MODULE_8__/* .definedSocialNetworkUIs.get */ .LB.get(identifier); + if (!define) throw new Error('SNS adaptor not found'); + const ui1 = (await define.load()).default; + definedSocialNetworkUIsResolved.set(identifier, ui1); + if (false) {} + return ui1; +} +function loadSocialNetworkUISync(identifier) { + if (definedSocialNetworkUIsResolved.has(identifier)) return definedSocialNetworkUIsResolved.get(identifier); + return null; +} + + +/***/ }), + +/***/ 97926: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "M": () => (/* binding */ useI18N), +/* harmony export */ "Z": () => (/* binding */ useLanguage) +/* harmony export */ }); +/* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(43133); +/* harmony import */ var _masknet_public_api__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(60718); + + +/** + * Enhanced version of useTranslation + * @param opt Options + */ function useI18N(opt) { + return (0,react_i18next__WEBPACK_IMPORTED_MODULE_1__/* .useTranslation */ .$)('mask', opt); +} +function useLanguage() { + const { i18n } = (0,react_i18next__WEBPACK_IMPORTED_MODULE_1__/* .useTranslation */ .$)(); + const lang = i18n.language; + if (lang in _masknet_public_api__WEBPACK_IMPORTED_MODULE_0__/* .SupportedLanguages */ .iu) return lang; + return _masknet_public_api__WEBPACK_IMPORTED_MODULE_0__/* .SupportedLanguages.enUS */ .iu.enUS; +} + + +/***/ }), + +/***/ 37500: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "I": () => (/* binding */ createPluginMessage) +/* harmony export */ }); +/* harmony import */ var _dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(88967); +/* harmony import */ var _dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_0__); + +/** + * Create a plugin message emitter + * @param pluginID The plugin ID + * + * @example + * export const MyPluginMessage = createPluginMessage(PLUGIN_ID) + */ function createPluginMessage(pluginID, serializer) { + const domain = '@plugin/' + pluginID; + if (cache.has(domain)) return cache.get(domain); + const messageCenter = new _dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_0__.WebExtensionMessage({ + domain + }); + const events = messageCenter.events; + if (serializer) messageCenter.serialization = serializer; + cache.set(domain, events); + return events; +} +const cache = new Map(); + + +/***/ }), + +/***/ 73179: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "S": () => (/* binding */ createPluginRPCGenerator), +/* harmony export */ "V": () => (/* binding */ createPluginRPC) +/* harmony export */ }); +/* harmony import */ var _dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(88967); +/* harmony import */ var _dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var async_call_rpc_full__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(17889); +/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(44451); + + + +const log = { + requestReplay: true, + type: 'pretty' +}; +function createPluginRPC(key, impl, message, /** Please set this to true if your implementation is a Proxy. */ exoticImplementation) { + const isBackground = (0,_dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_2__.isEnvironment)(_dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_2__.Environment.ManifestBackground); + return (0,async_call_rpc_full__WEBPACK_IMPORTED_MODULE_0__/* .AsyncCall */ .LE)((exoticImplementation ? _masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .getLocalImplementationExotic */ .kO : _masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .getLocalImplementation */ .Bb)(isBackground, `Plugin(${key})`, impl, message), { + key, + channel: message.bind(_dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_2__.MessageTarget.Broadcast), + preferLocalImplementation: isBackground, + serializer: _masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .serializer */ .GM, + strict: { + methodNotFound: isBackground, + unknownMessage: true + }, + log, + thenable: false + }); +} +function createPluginRPCGenerator(key, impl, message) { + const isBackground = (0,_dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_2__.isEnvironment)(_dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_2__.Environment.ManifestBackground); + return (0,async_call_rpc_full__WEBPACK_IMPORTED_MODULE_0__/* .AsyncGeneratorCall */ .rc)((0,_masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .getLocalImplementation */ .Bb)(isBackground, `Plugin(${key})`, impl, message), { + channel: message.bind(_dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_2__.MessageTarget.Broadcast), + preferLocalImplementation: isBackground, + serializer: _masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .serializer */ .GM, + strict: { + methodNotFound: isBackground, + unknownMessage: true + }, + log, + thenable: false + }); +} + + +/***/ }), + +/***/ 55437: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "Dv": () => (/* binding */ FALSE), +/* harmony export */ "LZ": () => (/* binding */ EMPTY_ARRAY), +/* harmony export */ "i_": () => (/* binding */ UNDEFINED) +/* harmony export */ }); +/* unused harmony exports ZERO, EMPTY_STRING, EMPTY_OBJECT, TRUE, NULL */ +/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(44451); + +const ZERO = (0,_masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .createConstantSubscription */ .qY)(0); +const UNDEFINED = (0,_masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .createConstantSubscription */ .qY)(undefined); +const EMPTY_STRING = (0,_masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .createConstantSubscription */ .qY)(''); +const EMPTY_ARRAY = (0,_masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .createConstantSubscription */ .qY)([]); +const EMPTY_OBJECT = (0,_masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .createConstantSubscription */ .qY)({}); +const TRUE = (0,_masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .createConstantSubscription */ .qY)(true); +const FALSE = (0,_masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .createConstantSubscription */ .qY)(false); +const NULL = (0,_masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .createConstantSubscription */ .qY)(null); + + +/***/ }), + +/***/ 29075: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* unused harmony export useChainIdSupport */ +/* harmony import */ var _useChainId__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(45087); +/* harmony import */ var _useWeb3State__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12368); + + +function useChainIdSupport(pluginID, expectedChainId, feature) { + const chainId = useChainId(pluginID, expectedChainId); + const { Others } = useWeb3State(pluginID); + return Others?.chainResolver.isSupport?.(chainId, feature) ?? false; +} + + +/***/ }), + +/***/ 68244: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* unused harmony export useTokenSchema */ +/* harmony import */ var _entry_web3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(50719); + + +function useTokenSchema(pluginID, address, options) { + const connection = useWeb3Connection(pluginID, options); + return useAsyncRetry(async ()=>{ + if (!address) return; + return connection?.getTokenSchema?.(address, options); + }, [ + address + ]); +} + + +/***/ }), + +/***/ 10668: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "O": () => (/* binding */ useWallet) +/* harmony export */ }); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(58757); +/* harmony import */ var use_subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(14257); +/* harmony import */ var _utils_subscription__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(55437); +/* harmony import */ var _useAccount__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(72128); +/* harmony import */ var _useWeb3State__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(12368); + + + + + +function useWallet(pluginID) { + const account = (0,_useAccount__WEBPACK_IMPORTED_MODULE_3__/* .useAccount */ .m)(pluginID); + const { Others , Wallet } = (0,_useWeb3State__WEBPACK_IMPORTED_MODULE_4__/* .useWeb3State */ .d)(pluginID); + const wallets = (0,use_subscription__WEBPACK_IMPORTED_MODULE_1__.useSubscription)(Wallet?.wallets ?? _utils_subscription__WEBPACK_IMPORTED_MODULE_2__/* .EMPTY_ARRAY */ .LZ); + return (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(()=>{ + return account ? wallets.find((x)=>Others?.isSameAddress?.(x.address, account) + ) ?? null : null; + }, [ + account, + wallets?.map((x)=>x.address.toLowerCase() + ).join() + ]); +} + + +/***/ }), + +/***/ 50360: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* unused harmony export useWalletPrimary */ +/* harmony import */ var use_subscription__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(14257); +/* harmony import */ var _useWeb3State__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12368); +/* harmony import */ var _utils_subscription__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(55437); + + + +function useWalletPrimary(pluginID) { + const { Wallet } = useWeb3State(pluginID); + return useSubscription(Wallet?.walletPrimary ?? NULL); +} + + +/***/ }), + +/***/ 68033: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "u": () => (/* binding */ base) +/* harmony export */ }); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(24003); +/* harmony import */ var _locales_languages__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(43672); + + +const base = { + ID: _constants__WEBPACK_IMPORTED_MODULE_0__/* .PLUGIN_ID */ .Uu, + name: { + fallback: _constants__WEBPACK_IMPORTED_MODULE_0__/* .PLUGIN_NAME */ .EW + }, + description: { + fallback: _constants__WEBPACK_IMPORTED_MODULE_0__/* .PLUGIN_DESCRIPTION */ .PP + }, + publisher: { + name: { + fallback: 'Mask Network' + }, + link: 'https://mask.io/' + }, + enableRequirement: { + architecture: { + app: true, + web: true + }, + networks: { + type: 'opt-out', + networks: {} + }, + target: 'stable' + }, + i18n: _locales_languages__WEBPACK_IMPORTED_MODULE_1__/* .languages */ .M +}; + + +/***/ }), + +/***/ 15938: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "D9": () => (/* binding */ usePopupCustomSnackbar) +/* harmony export */ }); +/* unused harmony exports PopupSnackbarProvider, PopupSnackbarContent */ +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35667); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(58757); +/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(31490); +/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(21784); +/* harmony import */ var notistack__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(27466); +/* harmony import */ var _UIHelper__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(84432); +/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(83849); +/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_4__); + + + + + + +const useStyles = (0,_UIHelper__WEBPACK_IMPORTED_MODULE_3__/* .makeStyles */ .ZL)()(()=>({ + container: { + width: '100%!important', + maxWidth: '100%!important', + top: '0!important', + [`& .${_mui_material__WEBPACK_IMPORTED_MODULE_5__/* ["default"].wrapper */ .Z.wrapper}`]: { + padding: '0 !important' + } + }, + content: { + width: '100vw', + padding: '8px 0', + display: 'flex', + justifyContent: 'center', + alignItems: 'center', + fontSize: 14, + lineHeight: '18px' + }, + title: { + fontSize: 14, + lineHeight: '18px' + }, + success: { + background: 'rgba(61, 194, 51, 0.5)', + color: '#ffffff' + }, + error: { + background: 'rgba(255, 53, 69, 0.5)', + color: '#ffffff' + }, + default: {}, + warning: {}, + info: {} + }) +); +const PopupSnackbarProvider = /*#__PURE__*/ (/* unused pure expression or super */ null && (memo(({ ...rest })=>{ + const ref = useRef(null); + const { classes } = useStyles(); + return /*#__PURE__*/ _jsx(SnackbarProvider, { + ref: ref, + maxSnack: 1, + disableWindowBlurListener: true, + anchorOrigin: { + vertical: 'top', + horizontal: 'center' + }, + classes: { + containerRoot: classes.container, + variantSuccess: classes.success, + variantError: classes.error + }, + ...rest + }); +}))); +const PopupSnackbarContent = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.forwardRef)((props, ref)=>{ + const { classes } = useStyles(); + return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(notistack__WEBPACK_IMPORTED_MODULE_2__/* .SnackbarContent */ .No, { + className: classnames__WEBPACK_IMPORTED_MODULE_4___default()(classes.content, classes[props.variant]), + ref: ref, + children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, { + className: classes.title, + children: props.title + }) + }, props.id); +}); +function usePopupCustomSnackbar() { + const { enqueueSnackbar , closeSnackbar } = (0,notistack__WEBPACK_IMPORTED_MODULE_2__/* .useSnackbar */ .Ds)(); + const showSnackbar = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)((text, options = { + variant: 'success', + autoHideDuration: 2000 + })=>{ + const { processing , message , variant , ...rest } = options; + return enqueueSnackbar(text, { + variant: options.variant, + content: (key, title)=>{ + return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(PopupSnackbarContent, { + id: key, + title: title, + variant: variant + }); + }, + ...rest + }); + }, [ + enqueueSnackbar + ]); + return { + showSnackbar, + closeSnackbar + }; +} + + +/***/ }), + +/***/ 6405: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "$q": () => (/* reexport safe */ _number__WEBPACK_IMPORTED_MODULE_5__.$q), +/* harmony export */ "BD": () => (/* reexport safe */ _token__WEBPACK_IMPORTED_MODULE_4__.BD), +/* harmony export */ "Ck": () => (/* reexport safe */ _function__WEBPACK_IMPORTED_MODULE_8__.C), +/* harmony export */ "DC": () => (/* reexport safe */ _address__WEBPACK_IMPORTED_MODULE_0__.D), +/* harmony export */ "FG": () => (/* reexport safe */ _resolver__WEBPACK_IMPORTED_MODULE_6__.FG), +/* harmony export */ "FH": () => (/* reexport safe */ _number__WEBPACK_IMPORTED_MODULE_5__.FH), +/* harmony export */ "FI": () => (/* reexport safe */ _number__WEBPACK_IMPORTED_MODULE_5__.FI), +/* harmony export */ "Fr": () => (/* reexport safe */ _number__WEBPACK_IMPORTED_MODULE_5__.Fr), +/* harmony export */ "GN": () => (/* reexport safe */ _token__WEBPACK_IMPORTED_MODULE_4__.GN), +/* harmony export */ "J": () => (/* reexport safe */ _pagination__WEBPACK_IMPORTED_MODULE_7__.T1), +/* harmony export */ "KH": () => (/* reexport safe */ _number__WEBPACK_IMPORTED_MODULE_5__.KH), +/* harmony export */ "Km": () => (/* reexport safe */ _function__WEBPACK_IMPORTED_MODULE_8__.K), +/* harmony export */ "LI": () => (/* reexport safe */ _pagination__WEBPACK_IMPORTED_MODULE_7__.LI), +/* harmony export */ "P$": () => (/* reexport safe */ _number__WEBPACK_IMPORTED_MODULE_5__.P$), +/* harmony export */ "PW": () => (/* reexport safe */ _number__WEBPACK_IMPORTED_MODULE_5__.PW), +/* harmony export */ "Qv": () => (/* reexport safe */ _resolver__WEBPACK_IMPORTED_MODULE_6__.Qv), +/* harmony export */ "RV": () => (/* reexport safe */ _token__WEBPACK_IMPORTED_MODULE_4__.RV), +/* harmony export */ "SI": () => (/* reexport safe */ _number__WEBPACK_IMPORTED_MODULE_5__.SI), +/* harmony export */ "SL": () => (/* reexport safe */ _constant__WEBPACK_IMPORTED_MODULE_2__.SL), +/* harmony export */ "T1": () => (/* reexport safe */ _number__WEBPACK_IMPORTED_MODULE_5__.T1), +/* harmony export */ "Vk": () => (/* reexport safe */ _resolver__WEBPACK_IMPORTED_MODULE_6__.Vk), +/* harmony export */ "Wr": () => (/* reexport safe */ _address__WEBPACK_IMPORTED_MODULE_0__.W), +/* harmony export */ "Xg": () => (/* reexport safe */ _resolver__WEBPACK_IMPORTED_MODULE_6__.Xg), +/* harmony export */ "Xi": () => (/* reexport safe */ _token__WEBPACK_IMPORTED_MODULE_4__.Xi), +/* harmony export */ "az": () => (/* reexport safe */ _balance__WEBPACK_IMPORTED_MODULE_1__.a), +/* harmony export */ "gT": () => (/* reexport safe */ _pagination__WEBPACK_IMPORTED_MODULE_7__.gT), +/* harmony export */ "h9": () => (/* reexport safe */ _number__WEBPACK_IMPORTED_MODULE_5__.h9), +/* harmony export */ "iI": () => (/* reexport safe */ _token__WEBPACK_IMPORTED_MODULE_4__.iI), +/* harmony export */ "iu": () => (/* reexport safe */ _resolver__WEBPACK_IMPORTED_MODULE_6__.iu), +/* harmony export */ "mn": () => (/* reexport safe */ _token__WEBPACK_IMPORTED_MODULE_4__.mn), +/* harmony export */ "pu": () => (/* reexport safe */ _number__WEBPACK_IMPORTED_MODULE_5__.pu), +/* harmony export */ "rm": () => (/* reexport safe */ _constant__WEBPACK_IMPORTED_MODULE_2__.rm), +/* harmony export */ "ry": () => (/* reexport safe */ _number__WEBPACK_IMPORTED_MODULE_5__.ry), +/* harmony export */ "sz": () => (/* reexport safe */ _pagination__WEBPACK_IMPORTED_MODULE_7__.sz), +/* harmony export */ "ti": () => (/* reexport safe */ _resolver__WEBPACK_IMPORTED_MODULE_6__.ti), +/* harmony export */ "ux": () => (/* reexport safe */ _number__WEBPACK_IMPORTED_MODULE_5__.ux), +/* harmony export */ "vs": () => (/* reexport safe */ _constant__WEBPACK_IMPORTED_MODULE_2__.vs), +/* harmony export */ "w5": () => (/* reexport safe */ _number__WEBPACK_IMPORTED_MODULE_5__.w5), +/* harmony export */ "wA": () => (/* reexport safe */ _number__WEBPACK_IMPORTED_MODULE_5__.wA), +/* harmony export */ "xE": () => (/* reexport safe */ _number__WEBPACK_IMPORTED_MODULE_5__.xE), +/* harmony export */ "xG": () => (/* reexport safe */ _currency__WEBPACK_IMPORTED_MODULE_3__.x), +/* harmony export */ "xP": () => (/* reexport safe */ _number__WEBPACK_IMPORTED_MODULE_5__.xP) +/* harmony export */ }); +/* harmony import */ var _address__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(77362); +/* harmony import */ var _balance__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(64469); +/* harmony import */ var _constant__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(78182); +/* harmony import */ var _currency__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(73403); +/* harmony import */ var _token__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(75387); +/* harmony import */ var _number__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(13763); +/* harmony import */ var _resolver__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(31257); +/* harmony import */ var _pagination__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(60668); +/* harmony import */ var _function__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(40485); + + + + + + + + + + + + +/***/ }) + +}]); \ No newline at end of file diff --git a/DevelopmentPod/MaskbookPlugin/maskbook/js/2644.js b/DevelopmentPod/MaskbookPlugin/maskbook/js/2644.js new file mode 100644 index 00000000..74fb20e4 --- /dev/null +++ b/DevelopmentPod/MaskbookPlugin/maskbook/js/2644.js @@ -0,0 +1,3613 @@ +"use strict"; +(globalThis["webpackChunk_masknet_extension"] = globalThis["webpackChunk_masknet_extension"] || []).push([[2644],{ + +/***/ 58757: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + + + +if (true) { + module.exports = __webpack_require__(34028); +} else {} + + +/***/ }), + +/***/ 37508: +/***/ (function(module) { + + + +(function(root) { + const MAX_VALUE = 0x7fffffff; + + // The SHA256 and PBKDF2 implementation are from scrypt-async-js: + // See: https://github.com/dchest/scrypt-async-js + function SHA256(m) { + const K = new Uint32Array([ + 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, + 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, + 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, + 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, + 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152, + 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, + 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, + 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, + 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, + 0xd6990624, 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08, + 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, + 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, + 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2 + ]); + + let h0 = 0x6a09e667, h1 = 0xbb67ae85, h2 = 0x3c6ef372, h3 = 0xa54ff53a; + let h4 = 0x510e527f, h5 = 0x9b05688c, h6 = 0x1f83d9ab, h7 = 0x5be0cd19; + const w = new Uint32Array(64); + + function blocks(p) { + let off = 0, len = p.length; + while (len >= 64) { + let a = h0, b = h1, c = h2, d = h3, e = h4, f = h5, g = h6, h = h7, u, i, j, t1, t2; + + for (i = 0; i < 16; i++) { + j = off + i*4; + w[i] = ((p[j] & 0xff)<<24) | ((p[j+1] & 0xff)<<16) | + ((p[j+2] & 0xff)<<8) | (p[j+3] & 0xff); + } + + for (i = 16; i < 64; i++) { + u = w[i-2]; + t1 = ((u>>>17) | (u<<(32-17))) ^ ((u>>>19) | (u<<(32-19))) ^ (u>>>10); + + u = w[i-15]; + t2 = ((u>>>7) | (u<<(32-7))) ^ ((u>>>18) | (u<<(32-18))) ^ (u>>>3); + + w[i] = (((t1 + w[i-7]) | 0) + ((t2 + w[i-16]) | 0)) | 0; + } + + for (i = 0; i < 64; i++) { + t1 = ((((((e>>>6) | (e<<(32-6))) ^ ((e>>>11) | (e<<(32-11))) ^ + ((e>>>25) | (e<<(32-25)))) + ((e & f) ^ (~e & g))) | 0) + + ((h + ((K[i] + w[i]) | 0)) | 0)) | 0; + + t2 = ((((a>>>2) | (a<<(32-2))) ^ ((a>>>13) | (a<<(32-13))) ^ + ((a>>>22) | (a<<(32-22)))) + ((a & b) ^ (a & c) ^ (b & c))) | 0; + + h = g; + g = f; + f = e; + e = (d + t1) | 0; + d = c; + c = b; + b = a; + a = (t1 + t2) | 0; + } + + h0 = (h0 + a) | 0; + h1 = (h1 + b) | 0; + h2 = (h2 + c) | 0; + h3 = (h3 + d) | 0; + h4 = (h4 + e) | 0; + h5 = (h5 + f) | 0; + h6 = (h6 + g) | 0; + h7 = (h7 + h) | 0; + + off += 64; + len -= 64; + } + } + + blocks(m); + + let i, bytesLeft = m.length % 64, + bitLenHi = (m.length / 0x20000000) | 0, + bitLenLo = m.length << 3, + numZeros = (bytesLeft < 56) ? 56 : 120, + p = m.slice(m.length - bytesLeft, m.length); + + p.push(0x80); + for (i = bytesLeft + 1; i < numZeros; i++) { p.push(0); } + p.push((bitLenHi >>> 24) & 0xff); + p.push((bitLenHi >>> 16) & 0xff); + p.push((bitLenHi >>> 8) & 0xff); + p.push((bitLenHi >>> 0) & 0xff); + p.push((bitLenLo >>> 24) & 0xff); + p.push((bitLenLo >>> 16) & 0xff); + p.push((bitLenLo >>> 8) & 0xff); + p.push((bitLenLo >>> 0) & 0xff); + + blocks(p); + + return [ + (h0 >>> 24) & 0xff, (h0 >>> 16) & 0xff, (h0 >>> 8) & 0xff, (h0 >>> 0) & 0xff, + (h1 >>> 24) & 0xff, (h1 >>> 16) & 0xff, (h1 >>> 8) & 0xff, (h1 >>> 0) & 0xff, + (h2 >>> 24) & 0xff, (h2 >>> 16) & 0xff, (h2 >>> 8) & 0xff, (h2 >>> 0) & 0xff, + (h3 >>> 24) & 0xff, (h3 >>> 16) & 0xff, (h3 >>> 8) & 0xff, (h3 >>> 0) & 0xff, + (h4 >>> 24) & 0xff, (h4 >>> 16) & 0xff, (h4 >>> 8) & 0xff, (h4 >>> 0) & 0xff, + (h5 >>> 24) & 0xff, (h5 >>> 16) & 0xff, (h5 >>> 8) & 0xff, (h5 >>> 0) & 0xff, + (h6 >>> 24) & 0xff, (h6 >>> 16) & 0xff, (h6 >>> 8) & 0xff, (h6 >>> 0) & 0xff, + (h7 >>> 24) & 0xff, (h7 >>> 16) & 0xff, (h7 >>> 8) & 0xff, (h7 >>> 0) & 0xff + ]; + } + + function PBKDF2_HMAC_SHA256_OneIter(password, salt, dkLen) { + // compress password if it's longer than hash block length + password = (password.length <= 64) ? password : SHA256(password); + + const innerLen = 64 + salt.length + 4; + const inner = new Array(innerLen); + const outerKey = new Array(64); + + let i; + let dk = []; + + // inner = (password ^ ipad) || salt || counter + for (i = 0; i < 64; i++) { inner[i] = 0x36; } + for (i = 0; i < password.length; i++) { inner[i] ^= password[i]; } + for (i = 0; i < salt.length; i++) { inner[64 + i] = salt[i]; } + for (i = innerLen - 4; i < innerLen; i++) { inner[i] = 0; } + + // outerKey = password ^ opad + for (i = 0; i < 64; i++) outerKey[i] = 0x5c; + for (i = 0; i < password.length; i++) outerKey[i] ^= password[i]; + + // increments counter inside inner + function incrementCounter() { + for (let i = innerLen - 1; i >= innerLen - 4; i--) { + inner[i]++; + if (inner[i] <= 0xff) return; + inner[i] = 0; + } + } + + // output blocks = SHA256(outerKey || SHA256(inner)) ... + while (dkLen >= 32) { + incrementCounter(); + dk = dk.concat(SHA256(outerKey.concat(SHA256(inner)))); + dkLen -= 32; + } + if (dkLen > 0) { + incrementCounter(); + dk = dk.concat(SHA256(outerKey.concat(SHA256(inner))).slice(0, dkLen)); + } + + return dk; + } + + // The following is an adaptation of scryptsy + // See: https://www.npmjs.com/package/scryptsy + function blockmix_salsa8(BY, Yi, r, x, _X) { + let i; + + arraycopy(BY, (2 * r - 1) * 16, _X, 0, 16); + for (i = 0; i < 2 * r; i++) { + blockxor(BY, i * 16, _X, 16); + salsa20_8(_X, x); + arraycopy(_X, 0, BY, Yi + (i * 16), 16); + } + + for (i = 0; i < r; i++) { + arraycopy(BY, Yi + (i * 2) * 16, BY, (i * 16), 16); + } + + for (i = 0; i < r; i++) { + arraycopy(BY, Yi + (i * 2 + 1) * 16, BY, (i + r) * 16, 16); + } + } + + function R(a, b) { + return (a << b) | (a >>> (32 - b)); + } + + function salsa20_8(B, x) { + arraycopy(B, 0, x, 0, 16); + + for (let i = 8; i > 0; i -= 2) { + x[ 4] ^= R(x[ 0] + x[12], 7); + x[ 8] ^= R(x[ 4] + x[ 0], 9); + x[12] ^= R(x[ 8] + x[ 4], 13); + x[ 0] ^= R(x[12] + x[ 8], 18); + x[ 9] ^= R(x[ 5] + x[ 1], 7); + x[13] ^= R(x[ 9] + x[ 5], 9); + x[ 1] ^= R(x[13] + x[ 9], 13); + x[ 5] ^= R(x[ 1] + x[13], 18); + x[14] ^= R(x[10] + x[ 6], 7); + x[ 2] ^= R(x[14] + x[10], 9); + x[ 6] ^= R(x[ 2] + x[14], 13); + x[10] ^= R(x[ 6] + x[ 2], 18); + x[ 3] ^= R(x[15] + x[11], 7); + x[ 7] ^= R(x[ 3] + x[15], 9); + x[11] ^= R(x[ 7] + x[ 3], 13); + x[15] ^= R(x[11] + x[ 7], 18); + x[ 1] ^= R(x[ 0] + x[ 3], 7); + x[ 2] ^= R(x[ 1] + x[ 0], 9); + x[ 3] ^= R(x[ 2] + x[ 1], 13); + x[ 0] ^= R(x[ 3] + x[ 2], 18); + x[ 6] ^= R(x[ 5] + x[ 4], 7); + x[ 7] ^= R(x[ 6] + x[ 5], 9); + x[ 4] ^= R(x[ 7] + x[ 6], 13); + x[ 5] ^= R(x[ 4] + x[ 7], 18); + x[11] ^= R(x[10] + x[ 9], 7); + x[ 8] ^= R(x[11] + x[10], 9); + x[ 9] ^= R(x[ 8] + x[11], 13); + x[10] ^= R(x[ 9] + x[ 8], 18); + x[12] ^= R(x[15] + x[14], 7); + x[13] ^= R(x[12] + x[15], 9); + x[14] ^= R(x[13] + x[12], 13); + x[15] ^= R(x[14] + x[13], 18); + } + + for (let i = 0; i < 16; ++i) { + B[i] += x[i]; + } + } + + // naive approach... going back to loop unrolling may yield additional performance + function blockxor(S, Si, D, len) { + for (let i = 0; i < len; i++) { + D[i] ^= S[Si + i] + } + } + + function arraycopy(src, srcPos, dest, destPos, length) { + while (length--) { + dest[destPos++] = src[srcPos++]; + } + } + + function checkBufferish(o) { + if (!o || typeof(o.length) !== 'number') { return false; } + + for (let i = 0; i < o.length; i++) { + const v = o[i]; + if (typeof(v) !== 'number' || v % 1 || v < 0 || v >= 256) { + return false; + } + } + + return true; + } + + function ensureInteger(value, name) { + if (typeof(value) !== "number" || (value % 1)) { throw new Error('invalid ' + name); } + return value; + } + + // N = Cpu cost, r = Memory cost, p = parallelization cost + // callback(error, progress, key) + function _scrypt(password, salt, N, r, p, dkLen, callback) { + + N = ensureInteger(N, 'N'); + r = ensureInteger(r, 'r'); + p = ensureInteger(p, 'p'); + + dkLen = ensureInteger(dkLen, 'dkLen'); + + if (N === 0 || (N & (N - 1)) !== 0) { throw new Error('N must be power of 2'); } + + if (N > MAX_VALUE / 128 / r) { throw new Error('N too large'); } + if (r > MAX_VALUE / 128 / p) { throw new Error('r too large'); } + + if (!checkBufferish(password)) { + throw new Error('password must be an array or buffer'); + } + password = Array.prototype.slice.call(password); + + if (!checkBufferish(salt)) { + throw new Error('salt must be an array or buffer'); + } + salt = Array.prototype.slice.call(salt); + + let b = PBKDF2_HMAC_SHA256_OneIter(password, salt, p * 128 * r); + const B = new Uint32Array(p * 32 * r) + for (let i = 0; i < B.length; i++) { + const j = i * 4; + B[i] = ((b[j + 3] & 0xff) << 24) | + ((b[j + 2] & 0xff) << 16) | + ((b[j + 1] & 0xff) << 8) | + ((b[j + 0] & 0xff) << 0); + } + + const XY = new Uint32Array(64 * r); + const V = new Uint32Array(32 * r * N); + + const Yi = 32 * r; + + // scratch space + const x = new Uint32Array(16); // salsa20_8 + const _X = new Uint32Array(16); // blockmix_salsa8 + + const totalOps = p * N * 2; + let currentOp = 0; + let lastPercent10 = null; + + // Set this to true to abandon the scrypt on the next step + let stop = false; + + // State information + let state = 0; + let i0 = 0, i1; + let Bi; + + // How many blockmix_salsa8 can we do per step? + const limit = callback ? parseInt(1000 / r): 0xffffffff; + + // Trick from scrypt-async; if there is a setImmediate shim in place, use it + const nextTick = (typeof(setImmediate) !== 'undefined') ? setImmediate : setTimeout; + + // This is really all I changed; making scryptsy a state machine so we occasionally + // stop and give other evnts on the evnt loop a chance to run. ~RicMoo + const incrementalSMix = function() { + if (stop) { + return callback(new Error('cancelled'), currentOp / totalOps); + } + + let steps; + + switch (state) { + case 0: + // for (var i = 0; i < p; i++)... + Bi = i0 * 32 * r; + + arraycopy(B, Bi, XY, 0, Yi); // ROMix - 1 + + state = 1; // Move to ROMix 2 + i1 = 0; + + // Fall through + + case 1: + + // Run up to 1000 steps of the first inner smix loop + steps = N - i1; + if (steps > limit) { steps = limit; } + for (let i = 0; i < steps; i++) { // ROMix - 2 + arraycopy(XY, 0, V, (i1 + i) * Yi, Yi) // ROMix - 3 + blockmix_salsa8(XY, Yi, r, x, _X); // ROMix - 4 + } + + // for (var i = 0; i < N; i++) + i1 += steps; + currentOp += steps; + + if (callback) { + // Call the callback with the progress (optionally stopping us) + const percent10 = parseInt(1000 * currentOp / totalOps); + if (percent10 !== lastPercent10) { + stop = callback(null, currentOp / totalOps); + if (stop) { break; } + lastPercent10 = percent10; + } + } + + if (i1 < N) { break; } + + i1 = 0; // Move to ROMix 6 + state = 2; + + // Fall through + + case 2: + + // Run up to 1000 steps of the second inner smix loop + steps = N - i1; + if (steps > limit) { steps = limit; } + for (let i = 0; i < steps; i++) { // ROMix - 6 + const offset = (2 * r - 1) * 16; // ROMix - 7 + const j = XY[offset] & (N - 1); + blockxor(V, j * Yi, XY, Yi); // ROMix - 8 (inner) + blockmix_salsa8(XY, Yi, r, x, _X); // ROMix - 9 (outer) + } + + // for (var i = 0; i < N; i++)... + i1 += steps; + currentOp += steps; + + // Call the callback with the progress (optionally stopping us) + if (callback) { + const percent10 = parseInt(1000 * currentOp / totalOps); + if (percent10 !== lastPercent10) { + stop = callback(null, currentOp / totalOps); + if (stop) { break; } + lastPercent10 = percent10; + } + } + + if (i1 < N) { break; } + + arraycopy(XY, 0, B, Bi, Yi); // ROMix - 10 + + // for (var i = 0; i < p; i++)... + i0++; + if (i0 < p) { + state = 0; + break; + } + + b = []; + for (let i = 0; i < B.length; i++) { + b.push((B[i] >> 0) & 0xff); + b.push((B[i] >> 8) & 0xff); + b.push((B[i] >> 16) & 0xff); + b.push((B[i] >> 24) & 0xff); + } + + const derivedKey = PBKDF2_HMAC_SHA256_OneIter(password, b, dkLen); + + // Send the result to the callback + if (callback) { callback(null, 1.0, derivedKey); } + + // Done; don't break (which would reschedule) + return derivedKey; + } + + // Schedule the next steps + if (callback) { nextTick(incrementalSMix); } + } + + // Run the smix state machine until completion + if (!callback) { + while (true) { + const derivedKey = incrementalSMix(); + if (derivedKey != undefined) { return derivedKey; } + } + } + + // Bootstrap the async incremental smix + incrementalSMix(); + } + + const lib = { + scrypt: function(password, salt, N, r, p, dkLen, progressCallback) { + return new Promise(function(resolve, reject) { + let lastProgress = 0; + if (progressCallback) { progressCallback(0); } + _scrypt(password, salt, N, r, p, dkLen, function(error, progress, key) { + if (error) { + reject(error); + } else if (key) { + if (progressCallback && lastProgress !== 1) { + progressCallback(1); + } + resolve(new Uint8Array(key)); + } else if (progressCallback && progress !== lastProgress) { + lastProgress = progress; + return progressCallback(progress); + } + }); + }); + }, + syncScrypt: function(password, salt, N, r, p, dkLen) { + return new Uint8Array(_scrypt(password, salt, N, r, p, dkLen)); + } + }; + + // node.js + if (true) { + module.exports = lib; + + // RequireJS/AMD + // http://www.requirejs.org/docs/api.html + // https://github.com/amdjs/amdjs-api/wiki/AMD + } else {} + +})(this); + + +/***/ }), + +/***/ 1465: +/***/ ((__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) => { + +/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(44451); +/* harmony import */ var _masknet_dashboard__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9221); +/* harmony import */ var _locales_languages__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(59146); +/* harmony import */ var _masknet_shared__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(77818); +/* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(94282); + +// @ts-ignore to prevent TypeScript complains + + + + +react_i18next__WEBPACK_IMPORTED_MODULE_4__/* .initReactI18next.init */ .Db.init(_masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .i18NextInstance */ .BV); +(0,_locales_languages__WEBPACK_IMPORTED_MODULE_2__/* .addMaskI18N */ .U)(_masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .i18NextInstance */ .BV); +(0,_masknet_shared__WEBPACK_IMPORTED_MODULE_3__/* .addSharedI18N */ .zr)(_masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .i18NextInstance */ .BV); +(0,_masknet_dashboard__WEBPACK_IMPORTED_MODULE_1__/* .addDashboardI18N */ .Gp)(_masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .i18NextInstance */ .BV); + + +/***/ }), + +/***/ 42886: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "d": () => (/* binding */ saveFileFromBuffer), +/* harmony export */ "r": () => (/* binding */ saveFileFromUrl) +/* harmony export */ }); +// TODO: maybe fallback to normal HTML save file? +async function saveFileFromUrl(url, fileName) { + await browser.downloads.download({ + url, + filename: fileName, + saveAs: true + }); +} +async function saveFileFromBuffer(options) { + const blob = new Blob([ + options.fileContent + ], { + type: options.mimeType + }); + const url = URL.createObjectURL(blob); + await browser.downloads.download({ + url, + filename: options.fileName, + saveAs: true + }); +} + + +/***/ }), + +/***/ 7197: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "DT": () => (/* binding */ currentMaskWalletChainIdSettings), +/* harmony export */ "Jg": () => (/* binding */ currentMaskWalletLockStatusSettings), +/* harmony export */ "T_": () => (/* binding */ currentMaskWalletAccountSettings), +/* harmony export */ "br": () => (/* binding */ currentMaskWalletNetworkSettings) +/* harmony export */ }); +/* harmony import */ var _settings_createSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(31202); +/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(72499); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(25302); +/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(53856); + + + + +const currentMaskWalletAccountSettings = (0,_settings_createSettings__WEBPACK_IMPORTED_MODULE_0__/* .createGlobalSettings */ .TI)(`${_constants__WEBPACK_IMPORTED_MODULE_1__/* .PLUGIN_ID */ .Uu}+selectedMaskWalletAddress`, ''); +const currentMaskWalletChainIdSettings = (0,_settings_createSettings__WEBPACK_IMPORTED_MODULE_0__/* .createGlobalSettings */ .TI)(`${_constants__WEBPACK_IMPORTED_MODULE_1__/* .PLUGIN_ID */ .Uu}+maskWalletChainId`, _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Mainnet */ .a_.Mainnet); +const currentMaskWalletNetworkSettings = (0,_settings_createSettings__WEBPACK_IMPORTED_MODULE_0__/* .createGlobalSettings */ .TI)(`${_constants__WEBPACK_IMPORTED_MODULE_1__/* .PLUGIN_ID */ .Uu}+selectedMaskWalletNetwork`, _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .NetworkType.Ethereum */ .td.Ethereum); +const currentMaskWalletLockStatusSettings = (0,_settings_createSettings__WEBPACK_IMPORTED_MODULE_0__/* .createGlobalSettings */ .TI)(`${_constants__WEBPACK_IMPORTED_MODULE_1__/* .PLUGIN_ID */ .Uu}+maskWalletLockStatus`, _types__WEBPACK_IMPORTED_MODULE_2__/* .LockStatus.INIT */ .O.INIT); + + +/***/ }), + +/***/ 53856: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "O": () => (/* binding */ LockStatus) +/* harmony export */ }); +var LockStatus; +(function(LockStatus) { + LockStatus[LockStatus["INIT"] = 0] = "INIT"; + LockStatus[LockStatus["UNLOCK"] = 1] = "UNLOCK"; + LockStatus[LockStatus["LOCKED"] = 2] = "LOCKED"; +})(LockStatus || (LockStatus = {})); + + +/***/ }), + +/***/ 9955: +/***/ ((__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) => { + +/* harmony import */ var _shared_kv_storage__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(25683); +/* harmony import */ var _extension_service__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(78778); + + +const memory = { + beforeAutoSync: Promise.resolve(), + getValue (...args) { + return _extension_service__WEBPACK_IMPORTED_MODULE_1__/* ["default"].Settings.__kv_storage_read__ */ .ZP.Settings.__kv_storage_read__('memory', ...args); + }, + async setValue (...args) { + await _extension_service__WEBPACK_IMPORTED_MODULE_1__/* ["default"].Settings.__kv_storage_write__ */ .ZP.Settings.__kv_storage_write__('memory', ...args); + } +}; +const indexedDB = { + beforeAutoSync: Promise.resolve(), + getValue (...args) { + return _extension_service__WEBPACK_IMPORTED_MODULE_1__/* ["default"].Settings.__kv_storage_read__ */ .ZP.Settings.__kv_storage_read__('indexedDB', ...args); + }, + async setValue (...args) { + await _extension_service__WEBPACK_IMPORTED_MODULE_1__/* ["default"].Settings.__kv_storage_write__ */ .ZP.Settings.__kv_storage_write__('indexedDB', ...args); + } +}; +(0,_shared_kv_storage__WEBPACK_IMPORTED_MODULE_0__/* .setupMaskKVStorageBackend */ .$e)(indexedDB, memory); +// Temporary, will be removed when the Mask SDK is ready +Reflect.set(globalThis, 'r2d2Fetch', _extension_service__WEBPACK_IMPORTED_MODULE_1__/* ["default"].Helper.r2d2Fetch */ .ZP.Helper.r2d2Fetch); + + +/***/ }), + +/***/ 20940: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "BE": () => (/* binding */ defineSocialNetworkUI), +/* harmony export */ "LB": () => (/* binding */ definedSocialNetworkUIs), +/* harmony export */ "Ps": () => (/* binding */ activateSocialNetworkUI) +/* harmony export */ }); +const definedSocialNetworkUIsLocal = new Map(); +const definedSocialNetworkUIs = definedSocialNetworkUIsLocal; +function activateSocialNetworkUI() { + const ui_deferred = [ + ...definedSocialNetworkUIs.values() + ].find((x)=>x.shouldActivate(location) + ); + if (!ui_deferred) return Promise.resolve(false); + return Promise.resolve(/* import() */).then(__webpack_require__.bind(__webpack_require__, 58248)).then((x)=>x.activateSocialNetworkUIInner(ui_deferred) + ).then(()=>true + ); +} +function defineSocialNetworkUI(UI) { + if (UI.notReadyForProduction) { + if (true) return UI; + } + definedSocialNetworkUIsLocal.set(UI.networkIdentifier, UI); + return UI; +} + + +/***/ }), + +/***/ 2532: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "C": () => (/* binding */ useCompositionContext), +/* harmony export */ "N": () => (/* binding */ CompositionContext) +/* harmony export */ }); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(58757); + +const CompositionContext = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)({ + attachMetadata () {}, + dropMetadata () {} +}); +const useCompositionContext = ()=>(0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(CompositionContext) +; +/* unsupported import.meta.webpackHot */ undefined && 0; + + +/***/ }), + +/***/ 70226: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "I4": () => (/* reexport safe */ _utils_message__WEBPACK_IMPORTED_MODULE_1__.I), +/* harmony export */ "Sc": () => (/* reexport safe */ _utils_rpc__WEBPACK_IMPORTED_MODULE_2__.S), +/* harmony export */ "V8": () => (/* reexport safe */ _utils_rpc__WEBPACK_IMPORTED_MODULE_2__.V), +/* harmony export */ "fg": () => (/* reexport safe */ _manager_store__WEBPACK_IMPORTED_MODULE_3__.fg), +/* harmony export */ "fo": () => (/* reexport safe */ _manager_store__WEBPACK_IMPORTED_MODULE_3__.fo), +/* harmony export */ "i1": () => (/* reexport safe */ _manager_store__WEBPACK_IMPORTED_MODULE_3__.i1), +/* harmony export */ "je": () => (/* reexport safe */ _types__WEBPACK_IMPORTED_MODULE_0__.j), +/* harmony export */ "mv": () => (/* reexport safe */ _types__WEBPACK_IMPORTED_MODULE_0__.m) +/* harmony export */ }); +/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(31293); +/* harmony import */ var _utils_message__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(37500); +/* harmony import */ var _utils_rpc__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(73179); +/* harmony import */ var _manager_store__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(93996); + + + + + + +/***/ }), + +/***/ 98119: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + + +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "KP": () => (/* reexport */ PluginI18NFieldRender), + "Rc": () => (/* reexport */ useActivatedPlugin/* useActivatedPlugin */.R), + "Ne": () => (/* reexport */ useAllPluginsWeb3State/* useAllPluginsWeb3State */.N), + "yH": () => (/* reexport */ useAvailablePlugins/* useAvailablePlugins */.y), + "eS": () => (/* reexport */ usePluginI18NField), + "fI": () => (/* reexport */ usePluginWrapper/* usePluginWrapper */.fI) +}); + +// UNUSED EXPORTS: useActivatedPluginWeb3State, useActivatedPluginWeb3UI + +// EXTERNAL MODULE: ../plugin-infra/src/hooks/useActivatedPlugin.ts +var useActivatedPlugin = __webpack_require__(42711); +// EXTERNAL MODULE: ../plugin-infra/src/hooks/useActivatedPluginWeb3UI.ts +var useActivatedPluginWeb3UI = __webpack_require__(95219); +// EXTERNAL MODULE: ../plugin-infra/src/hooks/useActivatedPluginWeb3State.ts +var useActivatedPluginWeb3State = __webpack_require__(76859); +// EXTERNAL MODULE: ../plugin-infra/src/hooks/useAllPluginsWeb3State.ts +var useAllPluginsWeb3State = __webpack_require__(17635); +// EXTERNAL MODULE: ../plugin-infra/src/hooks/useAvailablePlugins.ts +var useAvailablePlugins = __webpack_require__(62294); +// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.1.0/node_modules/react/jsx-runtime.js +var jsx_runtime = __webpack_require__(35667); +// EXTERNAL MODULE: ../../node_modules/.pnpm/react-i18next@11.16.9_nlaekqjbpikw4agfyzvj2iejnm/node_modules/react-i18next/dist/es/useTranslation.js +var useTranslation = __webpack_require__(43133); +;// CONCATENATED MODULE: ../plugin-infra/src/hooks/useI18N.tsx + + +function PluginI18NFieldRender({ pluginID , field }) { + const [t] = (0,useTranslation/* useTranslation */.$)(); + if (!field) return null; + if (typeof field === 'object' && 'fallback' in field) { + if (field.i18nKey) { + const translate = t(field.i18nKey, { + ns: pluginID, + nsSeparator: '%%%', + defaultValue: field.fallback + }); + return /*#__PURE__*/ (0,jsx_runtime.jsx)(jsx_runtime.Fragment, { + children: translate + }); + } + return /*#__PURE__*/ (0,jsx_runtime.jsx)(jsx_runtime.Fragment, { + children: field.fallback + }); + } + return /*#__PURE__*/ (0,jsx_runtime.jsx)(jsx_runtime.Fragment, { + children: field + }); +} +function usePluginI18NField() { + const [t] = (0,useTranslation/* useTranslation */.$)(); + return function(pluginID, field) { + if (!field.i18nKey) return field.fallback; + if (!field.i18nKey.startsWith('__')) { + /** + * This field is used in the definition of a plugin in form of + * { fallback: "Text", i18nKey: "name" } + * + * Which is highly not likely to be analyzed by the type system. + * Enforce those key to starts with __, we can exclude those keys + * from the unused key result to keep the functionality of the analyzer. + */ console.warn(`[@masknet/plugin-infra] Plugin ${pluginID} uses i18n key ${field.i18nKey}. Please change it to __${field.i18nKey}.`); + return field.fallback; + } + return t(field.i18nKey, { + ns: pluginID, + nsSeparator: '%%%', + defaultValue: field.fallback + }); + }; +} + +// EXTERNAL MODULE: ../plugin-infra/src/hooks/usePluginWrapper.tsx +var usePluginWrapper = __webpack_require__(82479); +;// CONCATENATED MODULE: ../plugin-infra/src/hooks/index.ts + + + + + + + + + +/***/ }), + +/***/ 82479: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "fI": () => (/* binding */ usePluginWrapper), +/* harmony export */ "yd": () => (/* binding */ PluginWrapperMethodsContext) +/* harmony export */ }); +/* unused harmony export emptyPluginWrapperMethods */ +/* harmony import */ var lodash_unified__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(21122); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(58757); + + +/** @internal */ const emptyPluginWrapperMethods = { + setWrap: lodash_unified__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z, + setWrapperName: lodash_unified__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z, + setWidth: lodash_unified__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z +}; +/** @internal */ const PluginWrapperMethodsContext = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)(emptyPluginWrapperMethods); +function usePluginWrapper(open, options) { + const { setWidth , setWrap , setWrapperName } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(PluginWrapperMethodsContext); + const { width , name } = options || {}; + (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>{ + setWrap(open); + return ()=>setWrap(open) + ; + }, [ + open, + setWrap + ]); + (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>setWidth(width) + , [ + width, + setWidth + ]); + (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>setWrapperName(name) + , [ + name, + setWrapperName + ]); +} + + +/***/ }), + +/***/ 87434: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "CB": () => (/* binding */ startPluginDashboard), +/* harmony export */ "eE": () => (/* binding */ useActivatedPluginsDashboard), +/* harmony export */ "yf": () => (/* binding */ useActivatedPluginDashboard) +/* harmony export */ }); +/* harmony import */ var _servie_events__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(69260); +/* harmony import */ var use_subscription__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(14257); +/* harmony import */ var _manage__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(32670); + + + +const { activated , startDaemon , events } = (0,_manage__WEBPACK_IMPORTED_MODULE_1__/* .createManager */ .m)((def)=>def.Dashboard +); +const subscription = { + getCurrentValue: ()=>[ + ...activated.plugins + ] + , + subscribe: (f)=>events.on(_servie_events__WEBPACK_IMPORTED_MODULE_2__/* .ALL_EVENTS */ .Ko, f) +}; +function useActivatedPluginsDashboard() { + return (0,use_subscription__WEBPACK_IMPORTED_MODULE_0__.useSubscription)(subscription); +} +function useActivatedPluginDashboard(pluginID) { + const plugins = (0,use_subscription__WEBPACK_IMPORTED_MODULE_0__.useSubscription)(subscription); + return plugins.find((x)=>x.ID === pluginID + ); +} +function startPluginDashboard(host) { + startDaemon(host); +} + + +/***/ }), + +/***/ 77319: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "E": () => (/* binding */ createInjectHooksRenderer) +/* harmony export */ }); +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35667); +/* harmony import */ var _masknet_shared_base_ui__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(80226); +/* harmony import */ var _masknet_theme__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(31939); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(58757); +/* harmony import */ var _hooks__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(98119); +/* harmony import */ var _hooks_usePluginWrapper__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(82479); + + + + + + +const PropsContext = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_3__.createContext)(null); +function createInjectHooksRenderer(usePlugins, pickInjectorHook, PluginWrapperComponent) { + function usePluginWrapperProvider(element, plugin) { + const [ref, setRef] = (0,react__WEBPACK_IMPORTED_MODULE_3__.useState)(null); + if (PluginWrapperComponent) { + return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(PluginWrapperComponent, { + definition: plugin, + ref: (methods)=>{ + if (methods) setRef(methods); + }, + children: ref ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_hooks_usePluginWrapper__WEBPACK_IMPORTED_MODULE_5__/* .PluginWrapperMethodsContext.Provider */ .yd.Provider, { + value: ref, + children: element + }) : null + }); + } + return element; + } + function SinglePluginWithinErrorBoundary({ plugin }) { + const t = (0,_hooks__WEBPACK_IMPORTED_MODULE_4__/* .usePluginI18NField */ .eS)(); + const props = (0,react__WEBPACK_IMPORTED_MODULE_3__.useContext)(PropsContext); + const ui = pickInjectorHook(plugin); + return usePluginWrapperProvider(ui ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_masknet_shared_base_ui__WEBPACK_IMPORTED_MODULE_1__/* .ErrorBoundary */ .SV, { + subject: 'Plugin ' + t(plugin.ID, plugin.name), + children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Main, { + UI: ui, + data: props + }) + }) : null, plugin); + } + function PluginsInjectionHookRender(props) { + const allPlugins = usePlugins(); + const availablePlugins = (0,_hooks__WEBPACK_IMPORTED_MODULE_4__/* .useAvailablePlugins */ .yH)(allPlugins); + const all = availablePlugins.filter(pickInjectorHook).map((plugin)=>/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(PropsContext.Provider, { + value: props, + children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_masknet_theme__WEBPACK_IMPORTED_MODULE_2__/* .ShadowRootIsolation */ .Q, { + "data-plugin": plugin.ID, + children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(SinglePluginWithinErrorBoundary, { + plugin: plugin + }) + }) + }, plugin.ID) + ); + return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, { + children: all + }); + } + return /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_3__.memo)(function PluginsInjectionHookRenderErrorBoundary(props) { + return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("span", { + "data-plugin-render": "", + children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_masknet_shared_base_ui__WEBPACK_IMPORTED_MODULE_1__/* .ErrorBoundary */ .SV, { + children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(PluginsInjectionHookRender, { + ...props + }) + }) + }); + }); +} +function Main(props) { + const { data , UI } = props; + if (isRawInjectHook(UI)) return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(RawHookRender, { + UI: UI, + data: data + }); + return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(UI, { + ...data + }); +} +function RawHookRender({ UI , data }) { + const [ref, setRef] = (0,react__WEBPACK_IMPORTED_MODULE_3__.useState)(); + const [f, setF] = (0,react__WEBPACK_IMPORTED_MODULE_3__.useState)(); + const cancel = (0,react__WEBPACK_IMPORTED_MODULE_3__.useRef)(); + (0,react__WEBPACK_IMPORTED_MODULE_3__.useEffect)(()=>{ + if (!ref) return; + const sig = cancel.current = new AbortController(); + setF(UI.init(sig.signal, ref)); + return ()=>sig.abort() + ; + }, [ + ref, + UI.init + ]); + (0,react__WEBPACK_IMPORTED_MODULE_3__.useEffect)(()=>void f?.(data) + , [ + f, + data + ]); + return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", { + ref: setRef + }); +} +function isRawInjectHook(x) { + return 'type' in x && x.type === 'raw'; +} + + +/***/ }), + +/***/ 91202: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "h": () => (/* binding */ useLookupAddress) +/* harmony export */ }); +/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(58500); +/* harmony import */ var _useChainId__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(45087); +/* harmony import */ var _useWeb3State__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12368); + + + +function useLookupAddress(pluginId, domain) { + const chainId = (0,_useChainId__WEBPACK_IMPORTED_MODULE_0__/* .useChainId */ .x)(pluginId); + const { NameService , Others } = (0,_useWeb3State__WEBPACK_IMPORTED_MODULE_1__/* .useWeb3State */ .d)(pluginId); + return (0,react_use__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z)(async ()=>{ + if (!chainId || !domain || !Others?.isValidDomain?.(domain) || !NameService) return; + return NameService.lookup?.(chainId, domain); + }, [ + chainId, + domain, + NameService, + Others + ]); +} + + +/***/ }), + +/***/ 16394: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "n": () => (/* binding */ useTransactions) +/* harmony export */ }); +/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(58500); +/* harmony import */ var _entry_web3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(50719); + + +function useTransactions(pluginID, options) { + const account = (0,_entry_web3__WEBPACK_IMPORTED_MODULE_0__/* .useAccount */ .mA)(pluginID); + const chainId = (0,_entry_web3__WEBPACK_IMPORTED_MODULE_0__/* .useChainId */ .xx)(pluginID); + const hub = (0,_entry_web3__WEBPACK_IMPORTED_MODULE_0__/* .useWeb3Hub */ .hh)(pluginID, options); + return (0,react_use__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)(async ()=>{ + return hub?.getTransactions(options?.chainId ?? chainId, options?.account ?? account); + }, [ + account, + chainId, + hub + ]); +} + + +/***/ }), + +/***/ 34849: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "R": () => (/* binding */ WalletMessages) +/* harmony export */ }); +/* harmony import */ var _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(70226); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(24003); + + +if (false) {} +const WalletMessages = { + events: (0,_masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__/* .createPluginMessage */ .I4)(_constants__WEBPACK_IMPORTED_MODULE_1__/* .PLUGIN_ID */ .Uu) +}; + + +/***/ }), + +/***/ 30807: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "r": () => (/* binding */ createGlobalState) +/* harmony export */ }); +/* harmony import */ var use_subscription__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(14257); +/* harmony import */ var ts_results__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(48160); + + +/** + * Create a new global state. + * + * @param f The async function that return the data needed. + * @param subscribe + * The subscribe function that call the callback when the data changed. + * It will call the f again to revalidate the data. + * + * @returns + * It returns a tuple. + * + * The first item is the react hooks for this resource. + * The hooks receive a argument "checked". + * If checked is true, it will return a status object so you can handle the error by yourself. + * + * The second item is the revalidation function. It can be called anywhere and returns a Promise. + * It will resolves regardless the f itself fulfilled or rejected. + */ function createGlobalState(f1, subscribe) { + const listeners = new Set(); + let currentValue = ts_results__WEBPACK_IMPORTED_MODULE_1__/* .None */ .Hq; + let pending; + const sub = { + getCurrentValue () { + if (currentValue.none) { + subscribe(revalidate); + throw pending ||= revalidate(); + } + if (currentValue.val.err) throw currentValue.val.val; + return currentValue.val.val; + }, + subscribe (f) { + listeners.add(f); + return ()=>listeners.delete(f) + ; + } + }; + function useData() { + return (0,use_subscription__WEBPACK_IMPORTED_MODULE_0__.useSubscription)(sub); + } + function revalidate() { + return f1().then((val)=>currentValue = (0,ts_results__WEBPACK_IMPORTED_MODULE_1__/* .Some */ .bD)((0,ts_results__WEBPACK_IMPORTED_MODULE_1__.Ok)(val)) + , (err)=>currentValue = (0,ts_results__WEBPACK_IMPORTED_MODULE_1__/* .Some */ .bD)((0,ts_results__WEBPACK_IMPORTED_MODULE_1__/* .Err */ .UG)(err)) + ).then(()=>undefined + ).finally(()=>listeners.forEach((f)=>f() + ) + ); + } + return [ + useData, + revalidate + ]; +} + + +/***/ }), + +/***/ 80226: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "E": () => (/* reexport safe */ _hooks__WEBPACK_IMPORTED_MODULE_2__.E), +/* harmony export */ "F$": () => (/* reexport safe */ _hooks__WEBPACK_IMPORTED_MODULE_2__.F$), +/* harmony export */ "N3": () => (/* reexport safe */ _components__WEBPACK_IMPORTED_MODULE_1__.N3), +/* harmony export */ "S8": () => (/* reexport safe */ _hooks__WEBPACK_IMPORTED_MODULE_2__.S8), +/* harmony export */ "SV": () => (/* reexport safe */ _components__WEBPACK_IMPORTED_MODULE_1__.SV), +/* harmony export */ "pv": () => (/* reexport safe */ _hooks__WEBPACK_IMPORTED_MODULE_2__.pv), +/* harmony export */ "r8": () => (/* reexport safe */ _hooks__WEBPACK_IMPORTED_MODULE_2__.r8), +/* harmony export */ "xw": () => (/* reexport safe */ _bom__WEBPACK_IMPORTED_MODULE_0__.x) +/* harmony export */ }); +/* harmony import */ var _bom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(74762); +/* harmony import */ var _components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(58044); +/* harmony import */ var _hooks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(95169); + + + + + +/***/ }), + +/***/ 98981: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "N": () => (/* binding */ EMPTY_OBJECT), +/* harmony export */ "r": () => (/* binding */ EMPTY_LIST) +/* harmony export */ }); +const EMPTY_LIST = Object.freeze([]); +const EMPTY_OBJECT = Object.freeze({}); + + +/***/ }), + +/***/ 44451: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + + +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "Ko": () => (/* reexport */ collections/* ALL_EVENTS */.Ko), + "iD": () => (/* reexport */ Results/* CheckedError */.iD), + "WF": () => (/* reexport */ Shared/* CrossIsolationMessages */.W), + "vq": () => (/* reexport */ Routes/* DashboardRoutes */.vq), + "ob": () => (/* reexport */ Identifier/* ECKeyIdentifier */.ob), + "CH": () => (/* reexport */ src_crypto/* ECKeyIdentifierFromJsonWebKey */.CH), + "rP": () => (/* reexport */ Pure/* EMPTY_LIST */.r), + "Nu": () => (/* reexport */ Pure/* EMPTY_OBJECT */.N), + "J4": () => (/* reexport */ Mask/* EncryptionTargetType */.J), + "Jk": () => (/* reexport */ Site/* EnhanceableSite */.Jk), + "v_": () => (/* reexport */ Site/* ExtensionSite */.v_), + "LM": () => (/* reexport */ personas/* MAX_PERSONA_LIMIT */.LM), + "VS": () => (/* reexport */ MimeTypes), + "BU": () => (/* reexport */ type/* NextIDAction */.B), + "Vd": () => (/* reexport */ type/* NextIDPlatform */.V), + "vP": () => (/* reexport */ collections/* ObservableMap */.vP), + "n7": () => (/* reexport */ collections/* ObservableSet */.n7), + "$f": () => (/* reexport */ collections/* ObservableWeakMap */.$f), + "G1": () => (/* reexport */ onDemandWorker/* OnDemandWorker */.G), + "E": () => (/* reexport */ Results/* OptionalResult */.E), + "mZ": () => (/* reexport */ Routes/* PopupRoutes */.mZ), + "bb": () => (/* reexport */ Identifier/* PostIVIdentifier */.bb), + "_P": () => (/* reexport */ Identifier/* PostIdentifier */._P), + "WO": () => (/* reexport */ Identifier/* ProfileIdentifier */.WO), + "Kn": () => (/* reexport */ Persona_type/* RelationFavor */.K), + "Hd": () => (/* reexport */ sessionStorageCache/* SessionStorageCache */.H), + "Y_": () => (/* reexport */ SubscriptionDebug), + "ps": () => (/* reexport */ Results/* andThenAsync */.ps), + "mQ": () => (/* reexport */ src_crypto/* assertEC_Private_JsonWebKey */.mQ), + "SR": () => (/* reexport */ asyncIterator/* asyncIteratorToArray */.S), + "f1": () => (/* reexport */ src_crypto/* compressSecp256k1KeyRaw */.xb), + "SH": () => (/* reexport */ src_crypto/* compressSecp256k1Point */.SH), + "Ap": () => (/* reexport */ Identifier/* convertIdentifierMapToRawMap */.Ap), + "J5": () => (/* reexport */ Identifier/* convertRawMapToIdentifierMap */.J5), + "qY": () => (/* reexport */ createConstantSubscription), + "C9": () => (/* reexport */ i18n/* createI18NBundle */.C9), + "q0": () => (/* reexport */ kv_storage/* createInMemoryKVStorageBackend */.q0), + "Ic": () => (/* reexport */ kv_storage/* createIndexedDB_KVStorageBackend */.Ic), + "rc": () => (/* reexport */ kv_storage/* createKVStorageHost */.rc), + "X2": () => (/* reexport */ kv_storage/* createProxyKVStorageBackend */.X2), + "Fd": () => (/* reexport */ createSubscriptionFromAsync), + "WS": () => (/* reexport */ createSubscriptionFromAsyncSuspense), + "_H": () => (/* reexport */ createSubscriptionFromValueRef), + "a": () => (/* reexport */ createValueRefWithReady/* createValueRefWithReady */.a), + "qX": () => (/* reexport */ src_crypto/* decompressSecp256k1Key */.qX), + "Yj": () => (/* reexport */ src_crypto/* decompressSecp256k1KeyRaw */.Yj), + "pf": () => (/* reexport */ src_crypto/* decompressSecp256k1Point */.pf), + "DA": () => (/* reexport */ asyncIterator/* flattenAsyncIterator */.D), + "Nb": () => (/* reexport */ personas/* formatPersonaFingerprint */.Nb), + "rY": () => (/* reexport */ personas/* formatPersonaName */.rY), + "lK": () => (/* reexport */ personas/* formatPersonaPublicKey */.lK), + "mz": () => (/* reexport */ convert/* fromBase64URL */.mz), + "H_": () => (/* reexport */ convert/* fromHex */.H_), + "eP": () => (/* reexport */ color/* generateContactAvatarColor */.e), + "$I": () => (/* reexport */ getAssetAsBlobURL/* getAssetAsBlobURL */.$), + "Bb": () => (/* reexport */ getLocalImplementation/* getLocalImplementation */.B), + "kO": () => (/* reexport */ getLocalImplementation/* getLocalImplementationExotic */.k), + "sv": () => (/* reexport */ Site/* getSiteType */.sv), + "SF": () => (/* reexport */ getSubscriptionCurrentValue), + "BV": () => (/* reexport */ i18n/* i18NextInstance */.BV), + "bG": () => (/* reexport */ src_crypto/* isAESJsonWebKey */.bG), + "K2": () => (/* reexport */ detect/* isDashboardPage */.K), + "PQ": () => (/* reexport */ src_crypto/* isEC_Private_JsonWebKey */.PQ), + "d8": () => (/* reexport */ src_crypto/* isEC_Public_JsonWebKey */.d8), + "zQ": () => (/* reexport */ Site/* isEnhanceableSiteType */.zQ), + "Po": () => (/* reexport */ Site/* isExtensionSiteType */.Po), + "N6": () => (/* reexport */ detect/* isPopupPage */.N), + "dK": () => (/* reexport */ src_crypto/* isSecp256k1Point */.dK), + "Rx": () => (/* reexport */ src_crypto/* isSecp256k1PrivateKey */.Rx), + "S3": () => (/* reexport */ mapSubscription), + "EB": () => (/* reexport */ mergeSubscription), + "Lk": () => (/* reexport */ parseURL/* parseURL */.L), + "tr": () => (/* reexport */ serializer/* registerSerializableClass */.tr), + "zD": () => (/* reexport */ Routes/* relativeRouteOf */.Y_), + "GM": () => (/* reexport */ serializer/* serializer */.GM), + "s3": () => (/* reexport */ convert/* toBase64 */.s3), + "wi": () => (/* reexport */ convert/* toBase64URL */.wi), + "NC": () => (/* reexport */ convert/* toHex */.NC), + "BF": () => (/* reexport */ i18n/* updateLanguage */.BF) +}); + +// UNUSED EXPORTS: Identifier, MAX_PERSONA_NAME_LENGTH, PersonaIdentifier, __DEBUG__ONLY__enableCryptoKeySerialization, assertAESJsonWebKey, assertEC_Public_JsonWebKey, pollingTask, removed + +// EXTERNAL MODULE: ../shared-base/src/collections/index.ts +var collections = __webpack_require__(716); +// EXTERNAL MODULE: ../shared-base/src/color/index.ts + 1 modules +var color = __webpack_require__(43477); +// EXTERNAL MODULE: ../shared-base/src/convert/index.ts +var convert = __webpack_require__(18615); +// EXTERNAL MODULE: ../shared-base/src/crypto/index.ts + 1 modules +var src_crypto = __webpack_require__(16819); +// EXTERNAL MODULE: ../shared-base/src/i18n/index.ts + 1 modules +var i18n = __webpack_require__(45816); +// EXTERNAL MODULE: ../shared-base/src/Identifier/index.ts + 7 modules +var Identifier = __webpack_require__(57041); +// EXTERNAL MODULE: ../shared-base/src/kv-storage/index.ts + 1 modules +var kv_storage = __webpack_require__(34523); +// EXTERNAL MODULE: ../shared-base/src/Messages/Mask.ts +var Mask = __webpack_require__(69395); +// EXTERNAL MODULE: ../shared-base/src/Messages/Shared.ts +var Shared = __webpack_require__(52881); +// EXTERNAL MODULE: ../shared-base/src/NextID/type.ts +var type = __webpack_require__(84831); +// EXTERNAL MODULE: ../shared-base/src/Persona/type.ts +var Persona_type = __webpack_require__(71521); +// EXTERNAL MODULE: ../shared-base/src/Pure/index.ts +var Pure = __webpack_require__(98981); +// EXTERNAL MODULE: ../shared-base/src/Results/index.ts + 2 modules +var Results = __webpack_require__(30375); +// EXTERNAL MODULE: ../shared-base/src/Routes/index.ts +var Routes = __webpack_require__(99594); +// EXTERNAL MODULE: ../shared-base/src/serializer/index.ts +var serializer = __webpack_require__(13339); +// EXTERNAL MODULE: ../shared-base/src/Site/index.ts +var Site = __webpack_require__(41385); +// EXTERNAL MODULE: ../shared-base/src/utils/asyncIterator.ts +var asyncIterator = __webpack_require__(98508); +// EXTERNAL MODULE: ../shared-base/src/utils/detect.ts +var detect = __webpack_require__(5646); +// EXTERNAL MODULE: ../shared-base/src/utils/getLocalImplementation.tsx +var getLocalImplementation = __webpack_require__(68043); +// EXTERNAL MODULE: ../shared-base/src/utils/parseURL.ts +var parseURL = __webpack_require__(31600); +// EXTERNAL MODULE: ../shared-base/src/utils/sessionStorageCache.ts +var sessionStorageCache = __webpack_require__(67149); +// EXTERNAL MODULE: ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/noop.js +var noop = __webpack_require__(21122); +// EXTERNAL MODULE: ../../node_modules/.pnpm/ts-results@3.3.0/node_modules/ts-results/esm/index.js + 3 modules +var esm = __webpack_require__(48160); +;// CONCATENATED MODULE: ../shared-base/src/utils/subscription.ts + + +async function getSubscriptionCurrentValue(getSubscription, retries = 3) { + const getValue = ()=>{ + return getSubscription()?.getCurrentValue(); + }; + const createReader = async ()=>{ + try { + return getValue(); + } catch (error) { + if (!(error instanceof Promise)) return; + await error; + return getValue(); + } + }; + const createReaders = Array.from({ + length: retries + }).fill(()=>createReader() + ); + for (const createReader1 of createReaders){ + try { + return await createReader1(); + } catch { + continue; + } + } + return; +} +function createConstantSubscription(value) { + return { + getCurrentValue: ()=>value + , + subscribe: ()=>noop/* default */.Z + }; +} +function createSubscriptionFromAsync(f, defaultValue, onChange, signal) { + const { getCurrentValue , subscribe } = createSubscriptionFromAsyncSuspense(f, onChange, signal); + return { + subscribe, + getCurrentValue: ()=>{ + try { + return getCurrentValue(); + } catch { + return defaultValue; + } + } + }; +} +function createSubscriptionFromAsyncSuspense(f, onChange, signal) { + const { subscribe , trigger } = getEventTarget(); + let value = esm/* None */.Hq; + const setter = (v)=>{ + value = (0,esm/* Some */.bD)(v); + trigger(); + }; + // initial request + const promise = f().then(setter); + // follow-up updating + const listen = onChange(()=>f().then(setter) + ); + signal?.addEventListener('abort', listen, { + once: true + }); + return { + getCurrentValue: ()=>{ + if (value.none) throw promise; + return value.val; + }, + subscribe: (sub)=>{ + if (signal?.aborted) return noop/* default */.Z; + const undo = subscribe(sub); + signal?.addEventListener('abort', undo, { + once: true + }); + return ()=>void undo() + ; + } + }; +} +function getEventTarget() { + const event = new EventTarget(); + const EVENT = 'event'; + let timer; + function trigger() { + clearTimeout(timer); + // delay to update state to ensure that all data to be synced globally + timer = setTimeout(()=>event.dispatchEvent(new Event(EVENT)) + , 500); + } + function subscribe(f) { + event.addEventListener(EVENT, f); + return ()=>event.removeEventListener(EVENT, f) + ; + } + return { + trigger, + subscribe + }; +} +function mapSubscription(sub, mapper) { + return { + getCurrentValue () { + return mapper(sub.getCurrentValue()); + }, + subscribe: sub.subscribe + }; +} +function mergeSubscription(...subscriptions) { + return { + getCurrentValue () { + return subscriptions.map((x)=>x.getCurrentValue() + ); + }, + subscribe: (callback)=>{ + const removeListeners = subscriptions.map((x)=>x.subscribe(callback) + ); + return ()=>removeListeners.forEach((x)=>x() + ) + ; + } + }; +} +function createSubscriptionFromValueRef(ref, signal) { + return SubscriptionDebug({ + getCurrentValue: ()=>ref.value + , + subscribe: (sub)=>{ + if (signal?.aborted) return noop/* default */.Z; + const f = ref.addListener(sub); + signal?.addEventListener('abort', f, { + once: true + }); + return f; + } + }); +} +function SubscriptionDebug(x) { + Object.defineProperty(x, '_value', { + configurable: true, + get: ()=>x.getCurrentValue() + }); + return x; +} + +// EXTERNAL MODULE: ../shared-base/src/utils/getAssetAsBlobURL.ts +var getAssetAsBlobURL = __webpack_require__(77489); +// EXTERNAL MODULE: ../shared-base/src/utils/personas.ts +var personas = __webpack_require__(53734); +// EXTERNAL MODULE: ../shared-base/src/utils/createValueRefWithReady.ts +var createValueRefWithReady = __webpack_require__(12395); +;// CONCATENATED MODULE: ../shared-base/src/utils/index.ts + + + + + + + + + + +var MimeTypes; +(function(MimeTypes) { + MimeTypes["JSON"] = 'application/json'; + MimeTypes["Binary"] = 'application/octet-stream'; +})(MimeTypes || (MimeTypes = {})); + +// EXTERNAL MODULE: ../shared-base/src/onDemandWorker/index.ts +var onDemandWorker = __webpack_require__(34953); +;// CONCATENATED MODULE: ../shared-base/src/index.ts + + + + + + + + + + + + + + + + + + + + + +/***/ }), + +/***/ 53734: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "LM": () => (/* binding */ MAX_PERSONA_LIMIT), +/* harmony export */ "Nb": () => (/* binding */ formatPersonaFingerprint), +/* harmony export */ "lK": () => (/* binding */ formatPersonaPublicKey), +/* harmony export */ "rY": () => (/* binding */ formatPersonaName) +/* harmony export */ }); +/* unused harmony export MAX_PERSONA_NAME_LENGTH */ +function formatPersonaFingerprint(fingerprint, size = 0) { + if (size === 0) return fingerprint; + return `${fingerprint.slice(0, Math.max(0, 2 + size))}...${fingerprint.slice(-size)}`; +} +const MAX_PERSONA_LIMIT = 10; +const MAX_PERSONA_NAME_LENGTH = 12; +const formatPersonaName = (nickname)=>{ + if (!nickname) return ''; + if (nickname.length < MAX_PERSONA_NAME_LENGTH) return nickname; + return `${nickname.slice(0, 12)}...`; +}; +function formatPersonaPublicKey(address, size = 0) { + if (size === 0 || size >= 20) return address; + return `${address.slice(0, Math.max(0, 2 + size))}...${address.slice(-size)}`; +} + + +/***/ }), + +/***/ 51878: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "f": () => (/* binding */ ChainIcon) +/* harmony export */ }); +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35667); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(58757); +/* harmony import */ var _masknet_theme__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(31939); + + + +const useStyles = (0,_masknet_theme__WEBPACK_IMPORTED_MODULE_2__/* .makeStyles */ .ZL)()((theme)=>({ + point: { + width: 12.5, + height: 12.5, + borderRadius: 6.25, + margin: 3.75 + }, + border: { + border: `1px solid ${theme.palette.background.paper}` + } + }) +); +const ChainIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.memo)(({ color , size =12.5 , ...props })=>{ + const classes = (0,_masknet_theme__WEBPACK_IMPORTED_MODULE_2__/* .useStylesExtends */ .Bc)(useStyles(), props); + return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", { + className: classes.point, + style: { + width: size, + height: size, + backgroundColor: color + } + }); +}); + + +/***/ }), + +/***/ 10262: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "S": () => (/* binding */ ConcealableTabs) +/* harmony export */ }); +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35667); +/* harmony import */ var _masknet_icons__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(55031); +/* harmony import */ var _masknet_icons__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(64947); +/* harmony import */ var _masknet_theme__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(31939); +/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(85792); +/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(83849); +/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var lodash_unified__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(23417); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(58757); + + + + + + + +const TAB_WIDTH = 126; +const useStyles = (0,_masknet_theme__WEBPACK_IMPORTED_MODULE_1__/* .makeStyles */ .ZL)()((theme)=>({ + container: { + display: 'flex', + position: 'relative', + backgroundColor: theme.palette.background.default, + '&::after': { + content: '""', + position: 'absolute', + left: 0, + right: 0, + bottom: 0, + height: 1, + backgroundColor: theme.palette.divider, + zIndex: 0 + } + }, + track: { + flexGrow: 1, + display: 'flex', + overflow: 'auto', + 'scrollbar-width': 'none', + '&::-webkit-scrollbar': { + display: 'none' + } + }, + button: { + height: 35, + minWidth: TAB_WIDTH, + padding: theme.spacing(0, 2.5), + borderRadius: 0, + flexShrink: 0, + border: '1px solid transparent' + }, + normal: { + boxSizing: 'border-box', + color: `${theme.palette.text.secondary} !important`, + backgroundColor: theme.palette.background.default, + border: '1px solid transparent', + '&:hover': { + color: `${theme.palette.text.primary} !important`, + backgroundColor: theme.palette.background.default + } + }, + selected: { + color: `${theme.palette.text.primary} !important`, + backgroundColor: theme.palette.background.paper, + border: '1px solid', + borderColor: theme.palette.background.paper, + borderBottomColor: theme.palette.background.paper, + '&:hover': { + borderBottomColor: theme.palette.background.paper, + backgroundColor: theme.palette.background.paper + }, + position: 'relative', + zIndex: 10, + '&::after': { + content: '""', + position: 'absolute', + left: 0, + right: 0, + bottom: 0, + height: 1, + backgroundColor: theme.palette.background.paper + } + }, + controllers: { + display: 'flex', + flexGrow: 0, + alignItems: 'center', + borderLeft: `1px solid ${theme.palette.divider}` + }, + controller: { + display: 'flex', + minWidth: 35, + color: theme.palette.text.primary, + border: 'none', + width: 35, + height: 35, + borderRadius: 0, + boxSizing: 'border-box', + alignItems: 'center', + justifyContent: 'center', + '&:hover': { + border: 'none !important', + borderBottomColor: theme.palette.divider, + color: `${theme.palette.text.primary} !important`, + backgroundColor: theme.palette.background.paper + }, + '&[disabled]': { + backgroundColor: theme.palette.background.default + } + } + }) +); +function ConcealableTabs({ className , tabs , selectedId , tail , onChange , ...rest }) { + const { classes } = useStyles(); + const [overflow, setOverflow] = (0,react__WEBPACK_IMPORTED_MODULE_3__.useState)(false); + const trackRef = (0,react__WEBPACK_IMPORTED_MODULE_3__.useRef)(null); + const [reachedLeftEdge, setReachedLeftEdge] = (0,react__WEBPACK_IMPORTED_MODULE_3__.useState)(false); + const [reachedRightEdge, setReachedRightEdge] = (0,react__WEBPACK_IMPORTED_MODULE_3__.useState)(false); + (0,react__WEBPACK_IMPORTED_MODULE_3__.useLayoutEffect)(()=>{ + const tabList = trackRef.current; + if (!tabList) return; + const isWider = tabList.scrollWidth > tabList.offsetWidth; + setOverflow(isWider); + if (!isWider) return; + const detectScrollStatus = (0,lodash_unified__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z)(()=>{ + const reachedRight = tabList.scrollWidth - tabList.offsetWidth <= tabList.scrollLeft; + const reachedLeft = tabList.scrollLeft === 0; + setReachedRightEdge(reachedRight); + setReachedLeftEdge(reachedLeft); + }, 100); + detectScrollStatus(); + tabList.addEventListener('scroll', detectScrollStatus); + return ()=>{ + tabList.removeEventListener('scroll', detectScrollStatus); + }; + }, []); + (0,react__WEBPACK_IMPORTED_MODULE_3__.useEffect)(()=>{ + if (selectedId === undefined && tabs.length) { + onChange?.(tabs[0].id); + } + }, [ + selectedId, + tabs.map((x)=>x.id + ).join(), + onChange + ]); + const slide = (0,react__WEBPACK_IMPORTED_MODULE_3__.useCallback)((toLeft)=>{ + const tabList = trackRef.current; + if (!tabList) return; + const scrolled = Math.round(tabList.scrollLeft / TAB_WIDTH); + tabList.scrollTo({ + left: TAB_WIDTH * (scrolled + (toLeft ? 1 : -1)), + behavior: 'smooth' + }); + }, []); + return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", { + className: classnames__WEBPACK_IMPORTED_MODULE_2___default()(className, classes.container), + ...rest, + children: [ + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", { + className: classes.track, + ref: trackRef, + children: tabs.map((tab)=>/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z, { + disableRipple: true, + className: classnames__WEBPACK_IMPORTED_MODULE_2___default()(classes.button, selectedId === tab.id ? classes.selected : classes.normal), + role: "button", + onClick: ()=>{ + onChange?.(tab.id); + }, + children: tab.label + }, tab.id) + ) + }), + overflow || tail ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", { + className: classes.controllers, + children: [ + overflow ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, { + children: [ + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z, { + disableRipple: true, + className: classnames__WEBPACK_IMPORTED_MODULE_2___default()(classes.normal, classes.controller), + disabled: reachedLeftEdge, + onClick: ()=>{ + slide(false); + }, + children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_masknet_icons__WEBPACK_IMPORTED_MODULE_6__/* .LeftArrowIcon */ .q, { + color: "inherit" + }) + }), + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z, { + disableRipple: true, + disabled: reachedRightEdge, + className: classnames__WEBPACK_IMPORTED_MODULE_2___default()(classes.normal, classes.controller), + onClick: ()=>{ + slide(true); + }, + children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_masknet_icons__WEBPACK_IMPORTED_MODULE_7__/* .RightArrowIcon */ .A, { + color: "inherit" + }) + }) + ] + }) : null, + tail + ] + }) : null + ] + }); +} + + +/***/ }), + +/***/ 36579: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "e": () => (/* binding */ ElementAnchor) +/* harmony export */ }); +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35667); +/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(73932); +/* harmony import */ var _react_hookz_web__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(81540); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(58757); + + + + +const ElementAnchor = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.memo)(({ callback , children })=>{ + const elementRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null); + const intersection = (0,_react_hookz_web__WEBPACK_IMPORTED_MODULE_2__/* .useIntersectionObserver */ .S)(elementRef, { + rootMargin: '200px' + }); + (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{ + if (!intersection?.isIntersecting) return; + callback(intersection); + }, [ + intersection + ]); + return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, { + pt: 1, + ref: elementRef, + justifyContent: "center", + direction: "row", + children: children + }); +}); + + +/***/ }), + +/***/ 99341: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "X": () => (/* binding */ ImageIcon) +/* harmony export */ }); +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35667); +/* harmony import */ var _masknet_theme__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(31939); + + +const useStyles = (0,_masknet_theme__WEBPACK_IMPORTED_MODULE_1__/* .makeStyles */ .ZL)()((theme)=>{ + return { + icon: {} + }; +}); +function ImageIcon(props) { + const { size =48 , icon } = props; + const classes = (0,_masknet_theme__WEBPACK_IMPORTED_MODULE_1__/* .useStylesExtends */ .Bc)(useStyles(), props); + return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("img", { + height: size, + width: size, + src: icon?.toString(), + className: classes.icon + }); +} + + +/***/ }), + +/***/ 28586: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "u": () => (/* binding */ RetryHint) +/* harmony export */ }); +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35667); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(58757); +/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(73932); +/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(21784); +/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(85792); +/* harmony import */ var _locales__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(18261); + + + + +const RetryHint = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.memo)(({ retry , hint =true })=>{ + const t = (0,_locales__WEBPACK_IMPORTED_MODULE_2__/* .useSharedI18N */ .B)(); + return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, { + justifyContent: "center", + direction: "row", + alignItems: "center", + height: hint ? '100%' : '100px', + children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_mui_material__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, { + gap: 2.75, + children: [ + hint && /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z, { + textAlign: "center", + fontSize: 12, + fontWeight: 700, + children: t.load_failed() + }), + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z, { + size: "small", + style: { + borderRadius: 16 + }, + onClick: retry, + children: t.load_retry() + }) + ] + }) + }); +}); + + +/***/ }), + +/***/ 25593: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "j": () => (/* binding */ MiniNetworkSelector) +/* harmony export */ }); +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35667); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(58757); +/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(35878); +/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(85792); +/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(73932); +/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(96436); +/* harmony import */ var _masknet_theme__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(31939); +/* harmony import */ var _ChainIcon__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(51878); +/* harmony import */ var _WalletIcon__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(58437); + + + + + + +const AllNetworkButton = (0,_mui_material__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .ZP)(_mui_material__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z)(({ theme })=>({ + display: 'inline-block', + marginRight: theme.spacing(1), + padding: 0, + borderRadius: '50%', + fontSize: 12, + '&:hover': { + boxShadow: 'none' + }, + opacity: 0.5 + }) +); +const useStyles = (0,_masknet_theme__WEBPACK_IMPORTED_MODULE_2__/* .makeStyles */ .ZL)()((theme, props)=>({ + networkSelected: { + opacity: 1, + '&:after': { + content: '""', + position: 'absolute', + bottom: -8, + right: (props.size - 4) / 2, + display: 'inline-block', + width: 4, + height: 4, + background: _masknet_theme__WEBPACK_IMPORTED_MODULE_2__/* .MaskColorVar.primary */ .ZN.primary, + borderRadius: '50%' + } + }, + networkDisabled: { + cursor: 'not-allowed', + '&:hover': { + opacity: 0.6 + } + } + }) +); +const MiniNetworkSelector = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.memo)(({ hideAllNetworkButton =false , onSelect , networks =[] , selectedNetwork , disabledNonCurrentNetwork =false , size =30 , })=>{ + const { classes } = useStyles({ + size + }); + return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_mui_material__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z, { + direction: "row", + children: [ + !hideAllNetworkButton && /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(AllNetworkButton, { + className: !selectedNetwork ? classes.networkSelected : '', + sx: { + width: size, + height: size, + minWidth: size, + lineHeight: `${size}px` + }, + onClick: ()=>onSelect(null) + , + children: "ALL" + }), + networks.filter((x)=>x.isMainnet + ).map((network)=>{ + return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, { + position: "relative", + mr: 1, + height: size, + onClick: ()=>!disabledNonCurrentNetwork && onSelect(network) + , + sx: { + cursor: 'pointer', + opacity: '0.6', + ':hover': { + opacity: 1 + }, + userSelect: 'none', + lineHeight: `${size}px` + }, + className: selectedNetwork?.ID === network.ID ? classes.networkSelected : disabledNonCurrentNetwork ? classes.networkDisabled : '', + children: network.isMainnet ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_WalletIcon__WEBPACK_IMPORTED_MODULE_4__/* .WalletIcon */ .o, { + mainIcon: network.icon, + size: size + }) : /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_ChainIcon__WEBPACK_IMPORTED_MODULE_3__/* .ChainIcon */ .f, { + color: network.iconColor, + size: size + }) + }, network.ID); + }) + ] + }); +}); + + +/***/ }), + +/***/ 94323: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "y": () => (/* binding */ NFTCardStyledAssetPlayer) +/* harmony export */ }); +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35667); +/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(83849); +/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(76618); +/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(69314); +/* harmony import */ var _masknet_theme__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(31939); +/* harmony import */ var _AssetPlayer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(60879); +/* harmony import */ var _masknet_plugin_infra_web3__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(50719); +/* harmony import */ var _masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(67938); +/* harmony import */ var _hooks__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(91295); + + + + + + + + +const useStyles = (0,_masknet_theme__WEBPACK_IMPORTED_MODULE_2__/* .makeStyles */ .ZL)()((theme)=>({ + wrapper: { + display: 'flex', + justifyContent: 'center', + alignItems: 'center', + height: 160, + width: 120, + overflow: 'hidden' + }, + loadingPlaceholder: { + height: 160, + width: 120 + }, + loadingIcon: { + width: 36, + height: 52 + }, + imgWrapper: { + width: '100%', + height: '100%', + display: 'flex', + justifyContent: 'center', + alignItems: 'center' + } + }) +); +const assetPlayerFallbackImageDark = new URL(/* asset import */ __webpack_require__(39952), __webpack_require__.b); +const assetPlayerFallbackImageLight = new URL(/* asset import */ __webpack_require__(39872), __webpack_require__.b); +function NFTCardStyledAssetPlayer(props) { + const { chainId , contractAddress ='' , tokenId ='' , isNative =false , fallbackImage , fallbackResourceLoader , url , setERC721TokenName , renderOrder , setSourceType , } = props; + const classes = (0,_masknet_theme__WEBPACK_IMPORTED_MODULE_2__/* .useStylesExtends */ .Bc)(useStyles(), props); + const theme = (0,_mui_material__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z)(); + const { value: tokenDetailed } = (0,_masknet_plugin_infra_web3__WEBPACK_IMPORTED_MODULE_4__/* .useNonFungibleToken */ .bs)(_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_5__/* .NetworkPluginID.PLUGIN_EVM */ .FF.PLUGIN_EVM, contractAddress, url ? undefined : tokenId, undefined, { + chainId + }); + const { value: isImageToken } = (0,_hooks__WEBPACK_IMPORTED_MODULE_6__/* .useImageChecker */ .vI)(url || tokenDetailed?.metadata?.imageURL || tokenDetailed?.metadata?.mediaURL); + const fallbackImageURL = theme.palette.mode === 'dark' ? assetPlayerFallbackImageDark : assetPlayerFallbackImageLight; + return isImageToken || isNative ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", { + className: classes.imgWrapper, + children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("img", { + width: "100%", + style: { + objectFit: 'cover' + }, + src: url || tokenDetailed?.metadata?.imageURL || tokenDetailed?.metadata?.mediaURL, + onError: (event)=>{ + const target = event.currentTarget; + target.src = fallbackImageURL.toString(); + target.classList.add(classes.loadingFailImage ?? ''); + } + }) + }) : /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_AssetPlayer__WEBPACK_IMPORTED_MODULE_3__/* .AssetPlayer */ .I, { + showIframeFromInit: true, + erc721Token: { + chainId, + contractAddress, + tokenId + }, + url: url, + options: { + autoPlay: true, + controls: false, + playsInline: true + }, + setERC721TokenName: setERC721TokenName, + setSourceType: setSourceType, + // It would fail to render as loading too many(>200) iframe at once. + renderTimeout: renderOrder ? 20000 * Math.floor(renderOrder / 100) : undefined, + fallbackImage: fallbackImage ?? fallbackImageURL, + loadingIcon: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, { + size: 20 + }), + classes: { + iframe: classnames__WEBPACK_IMPORTED_MODULE_1___default()(classes.wrapper, classes.iframe), + errorPlaceholder: classes.wrapper, + loadingPlaceholder: classes.wrapper, + loadingFailImage: classes.loadingFailImage, + loadingIcon: classes.loadingIcon + }, + fallbackResourceLoader: fallbackResourceLoader + }); +} + + +/***/ }), + +/***/ 61933: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "i": () => (/* binding */ ReversedAddress) +/* harmony export */ }); +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35667); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(58757); +/* harmony import */ var _masknet_plugin_infra_web3__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(50719); + + + +const ReversedAddress = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.memo)(({ address , pluginId , domainSize , size =5 })=>{ + const { value: domain } = (0,_masknet_plugin_infra_web3__WEBPACK_IMPORTED_MODULE_2__/* .useReverseAddress */ .$q)(pluginId, address); + const { Others } = (0,_masknet_plugin_infra_web3__WEBPACK_IMPORTED_MODULE_2__/* .useWeb3State */ .dM)(pluginId); + if (!domain || !Others?.formatDomainName) return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, { + children: Others?.formatAddress?.(address, size) ?? address + }); + return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, { + children: Others.formatDomainName(domain, domainSize) + }); +}); + + +/***/ }), + +/***/ 43894: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "L": () => (/* binding */ useShowConfirm), +/* harmony export */ "W": () => (/* binding */ ConfirmProvider) +/* harmony export */ }); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(58757); +/* harmony import */ var _UITaskManager__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(30613); +/* harmony import */ var _Dialog__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(80670); + + + +const { TaskManagerContext , TaskManagerProvider: ConfirmProvider } = (0,_UITaskManager__WEBPACK_IMPORTED_MODULE_1__/* .createUITaskManager */ .R)(_Dialog__WEBPACK_IMPORTED_MODULE_2__/* .ConfirmDialog */ .Q); +const useShowConfirm = ()=>{ + return (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(TaskManagerContext).show; +}; + + + +/***/ }), + +/***/ 18572: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + + +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "F": () => (/* reexport */ InjectedDialog) +}); + +// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.1.0/node_modules/react/jsx-runtime.js +var jsx_runtime = __webpack_require__(35667); +// EXTERNAL MODULE: ../shared-base/src/index.ts + 2 modules +var src = __webpack_require__(44451); +// EXTERNAL MODULE: ../shared-base-ui/src/index.ts +var shared_base_ui_src = __webpack_require__(80226); +// EXTERNAL MODULE: ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/omit.js + 3 modules +var omit = __webpack_require__(96596); +// EXTERNAL MODULE: ../theme/src/entry.ts +var entry = __webpack_require__(31939); +// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.8.0_4xriuibr7qayay6mzcpq5f43me/node_modules/@mui/material/useMediaQuery/useMediaQuery.js +var useMediaQuery = __webpack_require__(52775); +// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.8.0_4xriuibr7qayay6mzcpq5f43me/node_modules/@mui/material/styles/useTheme.js +var useTheme = __webpack_require__(76618); +// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.8.0_4xriuibr7qayay6mzcpq5f43me/node_modules/@mui/material/DialogActions/DialogActions.js + 1 modules +var DialogActions = __webpack_require__(21948); +// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.8.0_4xriuibr7qayay6mzcpq5f43me/node_modules/@mui/material/DialogContent/DialogContent.js + 1 modules +var DialogContent = __webpack_require__(46715); +// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.8.0_4xriuibr7qayay6mzcpq5f43me/node_modules/@mui/material/Dialog/Dialog.js + 1 modules +var Dialog = __webpack_require__(71246); +// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.8.0_4xriuibr7qayay6mzcpq5f43me/node_modules/@mui/material/DialogTitle/DialogTitle.js +var DialogTitle = __webpack_require__(13305); +// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.8.0_4xriuibr7qayay6mzcpq5f43me/node_modules/@mui/material/IconButton/IconButton.js + 1 modules +var IconButton = __webpack_require__(48941); +// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.8.0_4xriuibr7qayay6mzcpq5f43me/node_modules/@mui/material/Typography/Typography.js + 1 modules +var Typography = __webpack_require__(21784); +// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.8.0_4xriuibr7qayay6mzcpq5f43me/node_modules/@mui/material/Stack/Stack.js +var Stack = __webpack_require__(73932); +// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.1.0/node_modules/react/index.js +var react = __webpack_require__(58757); +// EXTERNAL MODULE: ../shared/src/locales/index.ts + 1 modules +var locales = __webpack_require__(18261); +// EXTERNAL MODULE: ../shared/src/contexts/base/index.ts + 1 modules +var base = __webpack_require__(22017); +// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+icons-material@5.8.0_ar3vczqpton7uep5462l6mtgi4/node_modules/@mui/icons-material/Close.js +var Close = __webpack_require__(7708); +// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+icons-material@5.8.0_ar3vczqpton7uep5462l6mtgi4/node_modules/@mui/icons-material/ArrowBackRounded.js +var ArrowBackRounded = __webpack_require__(86392); +;// CONCATENATED MODULE: ../shared/src/contexts/components/DialogDismissIcon.tsx + + + + +function DialogDismissIcon(props) { + const close = /*#__PURE__*/ (0,jsx_runtime.jsx)(Close/* default */.Z, { + color: "inherit" + }); + const back = /*#__PURE__*/ (0,jsx_runtime.jsx)(ArrowBackRounded/* default */.Z, {}); + const auto = (0,useMediaQuery/* default */.Z)(`(min-width: ${(0,useTheme/* default */.Z)().breakpoints.values.sm}px)`); + if (!props.style || props.style === 'auto') return auto ? close : back; + if (props.style === 'back') return back; + return close; +} + +;// CONCATENATED MODULE: ../shared/src/contexts/components/InjectedDialog.tsx + + + + + + + + + + +const useStyles = (0,entry/* makeStyles */.ZL)()((theme, { clean })=>({ + dialogTitle: { + whiteSpace: 'nowrap', + display: 'flex', + gridTemplateColumns: '50px auto 50px' + }, + dialogTitleEndingContent: { + display: 'flex', + justifyContent: 'center', + alignItems: 'flex-end' + }, + dialogContent: { + overscrollBehavior: 'contain' + }, + dialogTitleTypography: { + flex: 1, + textAlign: 'center', + verticalAlign: 'middle', + fontSize: 18, + lineHeight: '22px', + fontWeight: 700 + }, + dialogCloseButton: { + color: theme.palette.text.primary, + padding: 0, + width: 24, + height: 24, + '& > svg': { + fontSize: 24 + } + }, + paper: clean ? { + width: 'auto', + backgroundImage: 'none' + } : {} + }) +); +function InjectedDialog(props) { + const snsId = (0,shared_base_ui_src/* useValueRef */.E)(base/* sharedUINetworkIdentifier */.Xr); + const overwrite = (0,shared_base_ui_src/* useValueRef */.E)(base/* sharedUIComponentOverwrite */.vU); + props = overwrite.InjectedDialog?.props?.(props) ?? props; + const clean = snsId === src/* EnhanceableSite.Minds */.Jk.Minds || snsId === src/* EnhanceableSite.Facebook */.Jk.Facebook; + const { dialogActions , dialogCloseButton , dialogContent , dialogTitle , dialogTitleEndingContent , dialogTitleTypography , dialogBackdropRoot , container: container1 , ...dialogClasses } = (0,entry/* useStylesExtends */.Bc)(useStyles({ + clean + }), props, overwrite.InjectedDialog?.classes); + const t = (0,locales/* useSharedI18N */.B)(); + const fullScreen = (0,useMediaQuery/* default */.Z)((0,useTheme/* default */.Z)().breakpoints.down('xs')); + const isDashboard = (0,src/* isDashboardPage */.K2)(); + const { children , open , disableBackdropClick , titleBarIconStyle , onClose , title , titleTail =null , disableTitleBorder , isOpenFromApplicationBoard , ...rest } = props; + const actions = CopyElementWithNewProps(children, DialogActions/* default */.Z, { + root: dialogActions + }); + const content = CopyElementWithNewProps(children, DialogContent/* default */.Z, { + root: dialogContent + }); + const { extraProps , shouldReplaceExitWithBack , IncreaseStack } = (0,entry/* useDialogStackActor */.tE)(open); + const closeBothCompositionDialog = (0,react.useCallback)(()=>{ + if (isOpenFromApplicationBoard) { + src/* CrossIsolationMessages.events.requestComposition.sendToLocal */.WF.events.requestComposition.sendToLocal({ + open: false, + reason: 'timeline' + }); + } + onClose?.(); + }, [ + isOpenFromApplicationBoard + ]); + return (0,entry/* usePortalShadowRoot */.ad)((container)=>/*#__PURE__*/ (0,jsx_runtime.jsx)(IncreaseStack, { + children: /*#__PURE__*/ (0,jsx_runtime.jsx)(Dialog/* default */.Z, { + container: container, + fullScreen: fullScreen, + classes: dialogClasses, + scroll: "paper", + fullWidth: true, + maxWidth: "sm", + disableAutoFocus: true, + disableEnforceFocus: true, + onClose: (event, reason)=>{ + if (reason === 'backdropClick' && disableBackdropClick) return; + onClose?.(); + }, + onBackdropClick: disableBackdropClick ? void 0 : onClose, + BackdropProps: { + classes: { + root: dialogBackdropRoot + } + }, + ...(0,omit/* default */.Z)(rest, 'isOnBack'), + ...extraProps, + children: /*#__PURE__*/ (0,jsx_runtime.jsxs)(shared_base_ui_src/* ErrorBoundary */.SV, { + children: [ + title ? /*#__PURE__*/ (0,jsx_runtime.jsxs)(DialogTitle/* default */.Z, { + className: "dashboard-dialog-title-hook", + classes: { + root: dialogTitle + }, + style: { + border: isDashboard || disableTitleBorder ? 'none' : undefined, + fontSize: isDashboard ? 24 : undefined + }, + children: [ + /*#__PURE__*/ (0,jsx_runtime.jsx)(IconButton/* default */.Z, { + size: "large", + disableRipple: true, + classes: { + root: dialogCloseButton + }, + "aria-label": t.dialog_dismiss(), + onClick: !props.isOnBack ? closeBothCompositionDialog : onClose, + children: /*#__PURE__*/ (0,jsx_runtime.jsx)(DialogDismissIcon, { + style: titleBarIconStyle !== 'close' && shouldReplaceExitWithBack && !isDashboard ? 'back' : titleBarIconStyle + }) + }), + /*#__PURE__*/ (0,jsx_runtime.jsx)(Typography/* default */.Z, { + className: dialogTitleTypography, + display: "inline", + variant: "inherit", + children: title + }), + /*#__PURE__*/ (0,jsx_runtime.jsx)(Stack/* default */.Z, { + className: dialogTitleEndingContent, + children: titleTail + }) + ] + }) : null, + /*#__PURE__*/ (0,jsx_runtime.jsx)("span", {}), + content, + actions + ] + }) + }) + }) + ); +} +function CopyElementWithNewProps(children, Target, // @ts-ignore +extraClasses) { + return (react.Children.map(children, (child)=>child?.type === Target ? /*#__PURE__*/ (0,react.cloneElement)(child, { + classes: (0,entry/* mergeClasses */.ze)(extraClasses, child.props.classes) + }) : null + ) || []).filter(Boolean); +} + +;// CONCATENATED MODULE: ../shared/src/contexts/components/index.ts + + + +/***/ }), + +/***/ 53661: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "i": () => (/* binding */ useSnackbarCallback) +/* harmony export */ }); +/* unused harmony export usePopupSnackbarCallback */ +/* harmony import */ var _masknet_theme__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(31939); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(58757); +/* harmony import */ var _locales__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(18261); + + + +function useSnackbarCallback(opts, deps, onSuccess, onError, key, successText) { + const t = (0,_locales__WEBPACK_IMPORTED_MODULE_2__/* .useSharedI18N */ .B)(); + const { showSnackbar } = (0,_masknet_theme__WEBPACK_IMPORTED_MODULE_0__/* .useCustomSnackbar */ .Ii)(); + const executor = typeof opts === 'function' ? opts : opts.executor; + if (typeof opts === 'object') { + [deps, onSuccess, onError, key, successText] = [ + opts.deps, + opts.onSuccess, + opts.onError, + opts.key, + opts.successText, + ]; + } + return (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)((...args)=>executor(...args).then((res)=>{ + showSnackbar(successText ?? t.snackbar_done(), { + key, + variant: 'success', + preventDuplicate: true + }); + onSuccess?.(res); + return res; + }, (error)=>{ + showSnackbar(`Error: ${error.message || error}`, { + key, + preventDuplicate: true, + variant: 'error' + }); + onError?.(error); + throw error; + }) + , [ + ...deps, + showSnackbar, + executor, + onError, + onSuccess, + key, + successText + ]); +} +function usePopupSnackbarCallback(opts, deps, onSuccess, onError, key, successText) { + const t = useSharedI18N(); + const { showSnackbar } = usePopupCustomSnackbar(); + const executor = typeof opts === 'function' ? opts : opts.executor; + if (typeof opts === 'object') { + [deps, onSuccess, onError, key, successText] = [ + opts.deps, + opts.onSuccess, + opts.onError, + opts.key, + opts.successText, + ]; + } + return useCallback((...args)=>executor(...args).then((res)=>{ + showSnackbar(successText ?? t.snackbar_done(), { + key, + variant: 'success', + preventDuplicate: true + }); + onSuccess?.(res); + return res; + }, (error)=>{ + showSnackbar(error.message, { + key, + preventDuplicate: true, + variant: 'error' + }); + onError?.(error); + throw error; + }) + , [ + ...deps, + showSnackbar, + executor, + onError, + onSuccess, + key, + successText + ]); +} + + +/***/ }), + +/***/ 59478: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "z": () => (/* binding */ addSharedI18N) +/* harmony export */ }); +/* unused harmony export languages */ +/* harmony import */ var _en_US_json__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(75961); +/* harmony import */ var _ja_JP_json__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(45558); +/* harmony import */ var _ko_KR_json__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(93495); +/* harmony import */ var _qya_AA_json__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(88807); +/* harmony import */ var _zh_CN_json__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(83055); +/* harmony import */ var _zh_TW_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(47359); +/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(44451); +// This file is auto generated. DO NOT EDIT +// Run `npx gulp sync-languages` to regenerate. +// Default fallback language in a family of languages are chosen by the alphabet order +// To overwrite this, please overwrite packages/scripts/src/locale-kit-next/index.ts + + + + + + +const languages = { + en: _en_US_json__WEBPACK_IMPORTED_MODULE_0__, + ja: _ja_JP_json__WEBPACK_IMPORTED_MODULE_1__, + ko: _ko_KR_json__WEBPACK_IMPORTED_MODULE_2__, + qy: _qya_AA_json__WEBPACK_IMPORTED_MODULE_3__, + 'zh-CN': _zh_CN_json__WEBPACK_IMPORTED_MODULE_4__, + zh: _zh_TW_json__WEBPACK_IMPORTED_MODULE_5__ +}; + +const addSharedI18N = (0,_masknet_shared_base__WEBPACK_IMPORTED_MODULE_6__/* .createI18NBundle */ .C9)('shared', languages); +// @ts-ignore +if (false) {} + + +/***/ }), + +/***/ 31180: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "D": () => (/* binding */ applyMaskColorVars), +/* harmony export */ "P": () => (/* binding */ CSSVariableInjectorCSS) +/* harmony export */ }); +/* harmony import */ var lodash_unified__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(34936); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(46768); +/* harmony import */ var tinycolor2__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(32086); +/* harmony import */ var tinycolor2__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(tinycolor2__WEBPACK_IMPORTED_MODULE_1__); + + + +// Fragment are in the form of "1, 2, 3" +// which is used for rgba(var(--x), alpha) +function getRGBFragment(x, key) { + const { r , g , b } = tinycolor2__WEBPACK_IMPORTED_MODULE_1___default()(x[key]).toRgb(); + return [ + r, + g, + b + ].join(', '); +} +function CSSVariableInjectorCSS(scheme) { + const ns = scheme === 'light' ? _constants__WEBPACK_IMPORTED_MODULE_0__/* .LightColor */ .C : _constants__WEBPACK_IMPORTED_MODULE_0__/* .DarkColor */ .I; + const result = {}; + for (const key of Object.keys(ns)){ + // --mask-name: val; + result[`--mask-${(0,lodash_unified__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z)(key)}`] = ns[key]; + result[`--mask-${(0,lodash_unified__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z)(key)}-fragment`] = getRGBFragment(ns, key); + } + return { + ':root, :host': result + }; +} +function applyMaskColorVars(node, scheme) { + const ns = scheme === 'light' ? _constants__WEBPACK_IMPORTED_MODULE_0__/* .LightColor */ .C : _constants__WEBPACK_IMPORTED_MODULE_0__/* .DarkColor */ .I; + if (node === document.body) { + const id = '#mask-style-var'; + if (!document.getElementById(id)) { + const style = document.createElement('style'); + style.id = id; + document.head.appendChild(style); + } + applyMaskColorVars(document.getElementById(id), scheme); + return; + } else if (node instanceof HTMLStyleElement) { + let rule = ':root, :host {\n'; + for (const key of Object.keys(ns)){ + // --mask-name: val; + rule += ` --mask-${(0,lodash_unified__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z)(key)}: ${ns[key]};\n`; + rule += ` --mask-${(0,lodash_unified__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z)(key)}-fragment: ${getRGBFragment(ns, key)};\n`; + } + node.textContent = rule + '}'; + } else { + for (const key of Object.keys(ns)){ + node.style.setProperty('--mask-' + (0,lodash_unified__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z)(key), ns[key]); + node.style.setProperty('--mask-' + (0,lodash_unified__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z)(key) + '-fragment', getRGBFragment(ns, key)); + } + } +} + + +/***/ }), + +/***/ 7848: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + + +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "E": () => (/* reexport */ ButtonGroupTabList) +}); + +// UNUSED EXPORTS: ButtonTab + +// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.1.0/node_modules/react/jsx-runtime.js +var jsx_runtime = __webpack_require__(35667); +// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.8.0_4xriuibr7qayay6mzcpq5f43me/node_modules/@mui/material/styles/styled.js +var styled = __webpack_require__(35878); +// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.8.0_4xriuibr7qayay6mzcpq5f43me/node_modules/@mui/material/Button/Button.js +var Button = __webpack_require__(85792); +// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.1.0/node_modules/react/index.js +var react = __webpack_require__(58757); +;// CONCATENATED MODULE: ../theme/src/Components/ButtonGroupTab/ButtonGroupTab.tsx + + + +const TabButtonWrap = (0,styled/* default */.ZP)(Button/* default */.Z)(({ theme })=>({ + paddingLeft: theme.spacing(2), + paddingRight: theme.spacing(2), + flex: 1 + }) +); +/** + * This is an alternative implementation of Tab component, to use with . + */ const ButtonTab = /*#__PURE__*/ (0,react.forwardRef)((props, ref)=>{ + const activated = !!props.selected; + const { onChange , onClick , value } = props; + const handleClick = (event)=>{ + if (!activated && onChange) onChange(event, String(value)); + if (onClick) onClick(event); + }; + // TODO: replace secondary to correct theme color + return /*#__PURE__*/ (0,jsx_runtime.jsx)(TabButtonWrap, { + ref: ref, + role: "tab", + ...props, + disableElevation: true, + variant: "contained", + color: activated ? 'primary' : 'secondary', + "aria-selected": activated, + onClick: handleClick, + onChange: undefined + }); +}); + +// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.8.0_4xriuibr7qayay6mzcpq5f43me/node_modules/@mui/material/Tab/Tab.js +var Tab = __webpack_require__(65845); +// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.8.0_4xriuibr7qayay6mzcpq5f43me/node_modules/@mui/material/ButtonGroup/ButtonGroup.js + 1 modules +var ButtonGroup = __webpack_require__(34574); +// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+lab@5.0.0-alpha.82_ygk7qgdlnpugkmqdrmzyce476m/node_modules/@mui/lab/TabContext/TabContext.js +var TabContext = __webpack_require__(92916); +;// CONCATENATED MODULE: ../theme/src/Components/ButtonGroupTab/ButtonGroupTabList.tsx + + + + + +/** + * This component is like TabList + Tabs in the @mui/material. + * It should be used with . + * + * Warning: Only a few "value" and "label" props on the @mui/material component will work. + * + * @example + * const [currentTab, onChange, tabs, setTab] = useTab('tab1', 'tab2', 'tab3') + * return ( + * + * + * + * + * + * + * Item One + * Item Two + * Item Three + * + * ) + */ const ButtonGroupTabList = /*#__PURE__*/ (0,react.forwardRef)((props, ref)=>{ + const context = (0,TabContext/* useTabContext */._i)(); + if (context === null) throw new TypeError('No TabContext provided'); + const children = react.Children.map(props.children, (child)=>{ + if (!/*#__PURE__*/ (0,react.isValidElement)(child)) return child; + const extra = { + 'aria-controls': (0,TabContext/* getPanelId */.uU)(context, child.props.value), + id: (0,TabContext/* getTabId */.pQ)(context, child.props.value), + selected: child.props.value === context.value, + onChange: props.onChange + }; + if (child.type === Tab/* default */.Z) { + return /*#__PURE__*/ (0,jsx_runtime.jsx)(ButtonTab, { + value: child.props.value, + ...extra, + children: child.props.label + }); + } + return /*#__PURE__*/ (0,react.cloneElement)(child, extra); + }); + const { onChange , ...rest } = props; + return /*#__PURE__*/ (0,jsx_runtime.jsx)(ButtonGroup/* default */.Z, { + ...rest, + ref: ref, + role: "tablist", + children: children + }); +}); + +;// CONCATENATED MODULE: ../theme/src/Components/ButtonGroupTab/index.ts + + + + +/***/ }), + +/***/ 75168: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "q": () => (/* binding */ CountdownButton) +/* harmony export */ }); +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35667); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(58757); +/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(85792); + + + +const CountdownButton = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.forwardRef)((props, ref)=>{ + const { duration =60 , children , repeatContent ='Resend' , onClick , disabled , ...others } = props; + const [countdown, setCountdown] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(undefined); + const handleClick = (event)=>{ + setCountdown(duration); + onClick?.(event); + }; + const content = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>{ + if (countdown) { + return `${children} (${countdown})`; + } else if (countdown === 0) { + return repeatContent; + } else { + return children; + } + }, [ + countdown + ]); + (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{ + if (countdown) { + const timer = setTimeout(()=>{ + setCountdown(countdown - 1); + }, 1000); + return ()=>{ + clearTimeout(timer); + }; + } + return ()=>{}; + }, [ + countdown + ]); + return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z, { + ref: ref, + ...others, + onClick: handleClick, + disabled: !!countdown || disabled, + children: content + }); +}); + + +/***/ }), + +/***/ 54650: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "g": () => (/* binding */ PhoneNumberField) +/* harmony export */ }); +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35667); +/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(96436); +/* harmony import */ var _UIHelper_makeStyles__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(75322); +/* harmony import */ var _TextField__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(32876); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(58757); + + + + + +const useStyles = (0,_UIHelper_makeStyles__WEBPACK_IMPORTED_MODULE_1__/* .makeStyles */ .Z)()({ + country: { + width: '120px', + marginRight: '10px' + }, + phone: { + width: '100%' + } +}); +const PhoneNumberField = ({ label , value , error , onBlur , countryPlaceholder ='+1' , onChange })=>{ + const { classes } = useStyles(); + const [phone, setPhone] = (0,react__WEBPACK_IMPORTED_MODULE_3__.useState)(value.phone); + const [countryCode, setCountryCode] = (0,react__WEBPACK_IMPORTED_MODULE_3__.useState)(value.country); + const handleCountryCodeChange = (event)=>{ + const inputValue = event.target.value; + const prefix = inputValue.startsWith('+') ? '' : '+'; + setCountryCode(prefix + inputValue); + onChange?.({ + country: inputValue, + phone + }); + }; + const handlePhoneChange = (event)=>{ + const inputValue = event.target.value; + setPhone(inputValue); + onChange?.({ + country: countryCode, + phone: inputValue + }); + }; + return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", { + children: [ + label, + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_mui_material__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z, { + sx: { + display: 'flex', + alignItems: 'flex-start' + }, + children: [ + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", { + className: classes.country, + children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_TextField__WEBPACK_IMPORTED_MODULE_2__/* .MaskTextField */ .F, { + value: countryCode, + onChange: handleCountryCodeChange, + placeholder: countryPlaceholder + }) + }), + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", { + className: classes.phone, + children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_TextField__WEBPACK_IMPORTED_MODULE_2__/* .MaskTextField */ .F, { + fullWidth: true, + value: phone, + onChange: handlePhoneChange, + onBlur: onBlur, + type: "text", + error: !!error, + helperText: error + }) + }) + ] + }) + ] + }); +}; + + +/***/ }), + +/***/ 13643: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "o": () => (/* binding */ SendingCodeField) +/* harmony export */ }); +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35667); +/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(96436); +/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(73932); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(58757); +/* harmony import */ var _TextField__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(32876); +/* harmony import */ var _CountdownButton__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(75168); + + + + + +const SendingCodeField = ({ onSend , sendButtonText ='Send' , label , errorMessage , onBlur , disabled =false , autoSend =false , onChange })=>{ + const [code, setCode] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(''); + const sendButton = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null); + (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{ + onChange?.(code); + }, [ + code + ]); + (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{ + if (autoSend) sendButton.current?.click(); + }, [ + autoSend + ]); + return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_mui_material__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z, { + children: [ + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z, { + children: label + }), + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z, { + children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_mui_material__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z, { + alignItems: "flex-start", + direction: "row", + spacing: 1, + children: [ + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z, { + flex: 1, + children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_TextField__WEBPACK_IMPORTED_MODULE_2__/* .MaskTextField */ .F, { + size: "small", + value: code, + onChange: (event)=>setCode(event.target.value) + , + error: !!errorMessage, + helperText: errorMessage, + onBlur: ()=>onBlur?.(code) + , + disabled: disabled + }) + }), + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_CountdownButton__WEBPACK_IMPORTED_MODULE_3__/* .CountdownButton */ .q, { + ref: sendButton, + size: "medium", + sx: { + height: '40px', + width: '100px' + }, + onClick: onSend, + disabled: disabled, + children: sendButtonText + }) + ] + }) + }) + ] + }); +}; + + +/***/ }), + +/***/ 94708: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + + +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "um": () => (/* reexport */ Appearance), + "Hr": () => (/* reexport */ theme/* MaskDarkTheme */.H), + "Cp": () => (/* reexport */ theme/* MaskLightTheme */.C), + "R_": () => (/* reexport */ Provider/* MaskThemeProvider */.R) +}); + +;// CONCATENATED MODULE: ../theme/src/Theme/types.ts +var Appearance; +(function(Appearance) { + Appearance["default"] = "default"; + Appearance["light"] = "light"; + Appearance["dark"] = "dark"; +})(Appearance || (Appearance = {})); + +// EXTERNAL MODULE: ../theme/src/Theme/Provider.tsx +var Provider = __webpack_require__(32920); +// EXTERNAL MODULE: ../theme/src/Theme/theme.ts +var theme = __webpack_require__(8647); +;// CONCATENATED MODULE: ../theme/src/Theme/index.ts + + + + + +/***/ }), + +/***/ 8647: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "C": () => (/* binding */ MaskLightTheme), +/* harmony export */ "H": () => (/* binding */ MaskDarkTheme) +/* harmony export */ }); +/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(98109); +/* harmony import */ var _changes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2241); +/* harmony import */ var _component_changes__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(53931); +/* harmony import */ var lodash_unified__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(9084); +/* harmony import */ var _CSSVariables__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(88762); + + + + + +const color = (mode, color1)=>({ + mode, + primary: { + main: color1.primary, + contrastText: color1.primaryContrastText + }, + secondary: { + main: color1.primary, + contrastText: color1.primaryContrastText + }, + background: { + paper: color1.primaryBackground, + default: color1.secondaryBackground + }, + error: { + main: color1.redMain, + contrastText: color1.redContrastText + }, + success: { + main: color1.greenMain + }, + warning: { + main: color1.orangeMain + }, + divider: color1.divider, + text: { + primary: color1.textPrimary, + secondary: color1.textSecondary + } + }) +; +function MaskTheme(mode) { + const colors = mode === 'dark' ? _CSSVariables__WEBPACK_IMPORTED_MODULE_2__/* .DarkColor */ .I3 : _CSSVariables__WEBPACK_IMPORTED_MODULE_2__/* .LightColor */ .Ci; + const theme = (0,lodash_unified__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z)({ + palette: color(mode, colors) + }, ...Object.values(_changes__WEBPACK_IMPORTED_MODULE_0__).map(applyColors), ...Object.values(_component_changes__WEBPACK_IMPORTED_MODULE_1__).map(applyColors)); + return (0,_mui_material__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z)(theme); + function applyColors(x) { + if (typeof x === 'function') return x(mode, colors); + return x; + } +} +const MaskLightTheme = MaskTheme('light'); +const MaskDarkTheme = MaskTheme('dark'); + + +/***/ }), + +/***/ 21933: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "Q": () => (/* binding */ useSystemPreferencePalette) +/* harmony export */ }); +/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(52775); + +function useSystemPreferencePalette() { + return (0,_mui_material__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)('(prefers-color-scheme: dark)') ? 'dark' : 'light'; +} + + +/***/ }), + +/***/ 72499: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "Ej": () => (/* binding */ DebankTransactionDirection), +/* harmony export */ "W8": () => (/* binding */ EthereumMethodType), +/* harmony export */ "XQ": () => (/* binding */ SchemaType), +/* harmony export */ "a_": () => (/* binding */ ChainId), +/* harmony export */ "iE": () => (/* binding */ TransactionEventType), +/* harmony export */ "iU": () => (/* binding */ TransactionType), +/* harmony export */ "lP": () => (/* binding */ ProviderType), +/* harmony export */ "n$": () => (/* binding */ TransactionStateType), +/* harmony export */ "sl": () => (/* binding */ FilterTransactionType), +/* harmony export */ "so": () => (/* binding */ ZerionTransactionDirection), +/* harmony export */ "td": () => (/* binding */ NetworkType) +/* harmony export */ }); +/* unused harmony exports DomainProvider, FungibleAssetProvider, NonFungibleAssetProvider */ +var ChainId; +(function(ChainId) { + ChainId[ChainId[// Mainnet + "Mainnet"] = 1] = "Mainnet"; + ChainId[ChainId["Ropsten"] = 3] = "Ropsten"; + ChainId[ChainId["Rinkeby"] = 4] = "Rinkeby"; + ChainId[ChainId["Gorli"] = 5] = "Gorli"; + ChainId[ChainId["Kovan"] = 42] = "Kovan"; + ChainId[ChainId[// BSC + "BSC"] = 56] = "BSC"; + ChainId[ChainId["BSCT"] = 97] = "BSCT"; + ChainId[ChainId[// Matic + "Matic"] = 137] = "Matic"; + ChainId[ChainId["Mumbai"] = 80001] = "Mumbai"; + ChainId[ChainId[// Arbitrum + "Arbitrum"] = 42161] = "Arbitrum"; + ChainId[ChainId["Arbitrum_Rinkeby"] = 421611] = "Arbitrum_Rinkeby"; + ChainId[ChainId[// xDai + "xDai"] = 100] = "xDai"; + ChainId[ChainId[// Avalanche + "Avalanche"] = 43114] = "Avalanche"; + ChainId[ChainId["Avalanche_Fuji"] = 43113] = "Avalanche_Fuji"; + ChainId[ChainId[// Celo + "Celo"] = 42220] = "Celo"; + ChainId[ChainId[// Fantom + "Fantom"] = 250] = "Fantom"; + ChainId[ChainId[// Aurora + "Aurora"] = 1313161554] = "Aurora"; + ChainId[ChainId["Aurora_Testnet"] = 1313161555] = "Aurora_Testnet"; + ChainId[ChainId[// Fuse + "Fuse"] = 122] = "Fuse"; + ChainId[ChainId[// Boba + "Boba"] = 288] = "Boba"; + ChainId[ChainId[// Metis + "Metis"] = 1088] = "Metis"; + ChainId[ChainId[// Optimistic + "Optimistic"] = 10] = "Optimistic"; + ChainId[ChainId[// Harmony + "Harmony"] = 1666600000] = "Harmony"; + ChainId[ChainId["Harmony_Test"] = 1666700000] = "Harmony_Test"; + ChainId[ChainId[// Conflux + "Conflux"] = 1030] = "Conflux"; +})(ChainId || (ChainId = {})); +var SchemaType; +(function(SchemaType) { + SchemaType[SchemaType["Native"] = 1] = "Native"; + SchemaType[SchemaType["ERC20"] = 2] = "ERC20"; + SchemaType[SchemaType["ERC721"] = 3] = "ERC721"; + SchemaType[SchemaType["ERC1155"] = 4] = "ERC1155"; +})(SchemaType || (SchemaType = {})); +var EthereumMethodType; +(function(EthereumMethodType) { + EthereumMethodType["WATCH_ASSET"] = 'wallet_watchAsset'; + EthereumMethodType["WATCH_ASSET_LEGACY"] = 'metamask_watchAsset'; + EthereumMethodType["PERSONAL_SIGN"] = 'personal_sign'; + EthereumMethodType[// https://eips.ethereum.org/EIPS/eip-3085 + "WALLET_ADD_ETHEREUM_CHAIN"] = 'wallet_addEthereumChain'; + EthereumMethodType[// https://eips.ethereum.org/EIPS/eip-3326 + "WALLET_SWITCH_ETHEREUM_CHAIN"] = 'wallet_switchEthereumChain'; + EthereumMethodType["ETH_CHAIN_ID"] = 'eth_chainId'; + EthereumMethodType["ETH_ACCOUNTS"] = 'eth_accounts'; + EthereumMethodType["ETH_REQUEST_ACCOUNTS"] = 'eth_requestAccounts'; + EthereumMethodType["ETH_SEND_TRANSACTION"] = 'eth_sendTransaction'; + EthereumMethodType["ETH_SEND_RAW_TRANSACTION"] = 'eth_sendRawTransaction'; + EthereumMethodType["ETH_GET_CODE"] = 'eth_getCode'; + EthereumMethodType["ETH_GAS_PRICE"] = 'eth_gasPrice'; + EthereumMethodType["ETH_GET_BLOCK_BY_NUMBER"] = 'eth_getBlockByNumber'; + EthereumMethodType["ETH_GET_BLOCK_BY_HASH"] = 'eth_getBlockByHash'; + EthereumMethodType["ETH_BLOCK_NUMBER"] = 'eth_blockNumber'; + EthereumMethodType["ETH_GET_BALANCE"] = 'eth_getBalance'; + EthereumMethodType["ETH_GET_TRANSACTION_BY_HASH"] = 'eth_getTransactionByHash'; + EthereumMethodType["ETH_GET_TRANSACTION_RECEIPT"] = 'eth_getTransactionReceipt'; + EthereumMethodType["ETH_GET_TRANSACTION_COUNT"] = 'eth_getTransactionCount'; + EthereumMethodType["ETH_GET_FILTER_CHANGES"] = 'eth_getFilterChanges'; + EthereumMethodType["ETH_NEW_PENDING_TRANSACTION_FILTER"] = 'eth_newPendingTransactionFilter'; + EthereumMethodType["ETH_ESTIMATE_GAS"] = 'eth_estimateGas'; + EthereumMethodType["ETH_CALL"] = 'eth_call'; + EthereumMethodType["ETH_SIGN"] = 'eth_sign'; + EthereumMethodType["ETH_DECRYPT"] = 'eth_decrypt'; + EthereumMethodType["ETH_SIGN_TYPED_DATA"] = 'eth_signTypedData_v4'; + EthereumMethodType["ETH_SIGN_TRANSACTION"] = 'eth_signTransaction'; + EthereumMethodType["ETH_GET_LOGS"] = 'eth_getLogs'; + EthereumMethodType["ETH_GET_ENCRYPTION_PUBLIC_KEY"] = 'eth_getEncryptionPublicKey'; + EthereumMethodType[// only for mask + "MASK_LOGIN"] = "MASK_LOGIN"; + EthereumMethodType["MASK_LOGOUT"] = "MASK_LOGOUT"; + EthereumMethodType["MASK_REPLACE_TRANSACTION"] = 'mask_replaceTransaction'; +})(EthereumMethodType || (EthereumMethodType = {})); +var TransactionEventType; +(function(TransactionEventType) { + TransactionEventType["TRANSACTION_HASH"] = 'transactionHash'; + TransactionEventType["RECEIPT"] = 'receipt'; + TransactionEventType["CONFIRMATION"] = 'confirmation'; + TransactionEventType["ERROR"] = 'error'; +})(TransactionEventType || (TransactionEventType = {})); +var DomainProvider; +(function(DomainProvider) { + DomainProvider["ENS"] = "ENS"; + DomainProvider["UNS"] = "UNS"; +})(DomainProvider || (DomainProvider = {})); +var FilterTransactionType; +(function(FilterTransactionType) { + FilterTransactionType["ALL"] = 'all'; + FilterTransactionType["SEND"] = 'send'; + FilterTransactionType["RECEIVE"] = 'receive'; + FilterTransactionType["CREATE_LUCKY_DROP"] = 'create_lucky_drop'; + FilterTransactionType["FILL_POOL"] = 'fill_pool'; +})(FilterTransactionType || (FilterTransactionType = {})); +var TransactionType; +(function(TransactionType) { + TransactionType["SEND"] = 'Send'; + TransactionType["SWAP"] = 'swap'; + TransactionType["RECEIVE"] = 'Receive'; + TransactionType["TRANSFER"] = 'transfer'; + TransactionType["CREATE_LUCKY_DROP"] = 'create_lucky_drop'; + TransactionType["CREATE_RED_PACKET"] = 'create_red_packet'; + TransactionType["FILL_POOL"] = 'fill_pool'; + TransactionType["CLAIM"] = 'claim'; + TransactionType["REFUND"] = 'refund'; +})(TransactionType || (TransactionType = {})); +var DebankTransactionDirection; +(function(DebankTransactionDirection) { + DebankTransactionDirection["SEND"] = 'send'; + DebankTransactionDirection["RECEIVE"] = 'receive'; +})(DebankTransactionDirection || (DebankTransactionDirection = {})); +var ZerionTransactionDirection; +(function(ZerionTransactionDirection) { + ZerionTransactionDirection["IN"] = 'in'; + ZerionTransactionDirection["OUT"] = 'out'; + ZerionTransactionDirection["SELF"] = 'self'; +})(ZerionTransactionDirection || (ZerionTransactionDirection = {})); +var TransactionStateType; +(function(TransactionStateType) { + TransactionStateType[TransactionStateType["UNKNOWN"] = 0] = "UNKNOWN"; + TransactionStateType[TransactionStateType[/** Wait for external provider */ "WAIT_FOR_CONFIRMING"] = 1] = "WAIT_FOR_CONFIRMING"; + TransactionStateType[TransactionStateType[/** Hash is available */ "HASH"] = 2] = "HASH"; + TransactionStateType[TransactionStateType[/** Receipt is available */ "RECEIPT"] = 3] = "RECEIPT"; + TransactionStateType[TransactionStateType[/** Confirmed or Reverted */ "CONFIRMED"] = 4] = "CONFIRMED"; + TransactionStateType[TransactionStateType[/** Fail to send */ "FAILED"] = 5] = "FAILED"; +})(TransactionStateType || (TransactionStateType = {})); +var NetworkType; +(function(NetworkType) { + NetworkType["Ethereum"] = "Ethereum"; + NetworkType["Binance"] = "Binance"; + NetworkType["Polygon"] = "Polygon"; + NetworkType["Arbitrum"] = "Arbitrum"; + NetworkType["xDai"] = "xDai"; + NetworkType["Celo"] = "Celo"; + NetworkType["Fantom"] = "Fantom"; + NetworkType["Aurora"] = "Aurora"; + NetworkType["Avalanche"] = "Avalanche"; + NetworkType["Boba"] = "Boba"; + NetworkType["Fuse"] = "Fuse"; + NetworkType["Metis"] = "Metis"; + NetworkType["Optimistic"] = "Optimistic"; + NetworkType["Harmony"] = "Harmony"; + NetworkType["Conflux"] = "Conflux"; +})(NetworkType || (NetworkType = {})); +var ProviderType; +(function(ProviderType) { + ProviderType["None"] = "None"; + ProviderType["MaskWallet"] = 'Maskbook'; + ProviderType["MetaMask"] = "MetaMask"; + ProviderType["WalletConnect"] = "WalletConnect"; + ProviderType["Fortmatic"] = "Fortmatic"; + ProviderType["Torus"] = "Torus"; + ProviderType["Coin98"] = "Coin98"; + ProviderType["MathWallet"] = "MathWallet"; + ProviderType["WalletLink"] = "WalletLink"; + ProviderType["CustomNetwork"] = "CustomNetwork"; +})(ProviderType || (ProviderType = {})); +var FungibleAssetProvider; +(function(FungibleAssetProvider) { + FungibleAssetProvider["ZERION"] = 'Zerion'; + FungibleAssetProvider["DEBANK"] = 'Debank'; +})(FungibleAssetProvider || (FungibleAssetProvider = {})); +var NonFungibleAssetProvider; +(function(NonFungibleAssetProvider) { + NonFungibleAssetProvider["OPENSEA"] = 'OpenSea'; + NonFungibleAssetProvider["RARIBLE"] = 'Rarible'; + NonFungibleAssetProvider["NFTSCAN"] = 'NFTScan'; + NonFungibleAssetProvider["ZORA"] = 'Zora'; +})(NonFungibleAssetProvider || (NonFungibleAssetProvider = {})); + + +/***/ }), + +/***/ 62846: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "Q_": () => (/* binding */ CHAIN_DESCRIPTORS), +/* harmony export */ "qQ": () => (/* binding */ NETWORK_DESCRIPTORS), +/* harmony export */ "zM": () => (/* binding */ PROVIDER_DESCRIPTORS) +/* harmony export */ }); +/* harmony import */ var _dimensiondev_kit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(46123); +/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(44451); +/* harmony import */ var _masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(67938); +/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(56874); + + + + +const PLUGIN_ID = _masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_2__/* .NetworkPluginID.PLUGIN_FLOW */ .FF.PLUGIN_FLOW; +const CHAIN_DESCRIPTORS = [ + { + type: _types__WEBPACK_IMPORTED_MODULE_3__/* .NetworkType.Flow */ .td.Flow, + chainId: _types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Mainnet */ .a_.Mainnet, + coinMarketCapChainId: '', + coinGeckoChainId: '', + coinGeckoPlatformId: '', + name: 'Flow', + color: '#16ff99', + fullName: 'Flow', + shortName: 'Flow', + network: 'mainnet', + nativeCurrency: (0,_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_2__/* .createFungibleToken */ .mn)(_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Mainnet */ .a_.Mainnet, _types__WEBPACK_IMPORTED_MODULE_3__/* .SchemaType.Fungible */ .XQ.Fungible, '0x1654653399040a61', 'Flow', 'FLOW', 8, 'https://static.flowscan.org/mainnet/icons/A.1654653399040a61.FlowToken.png'), + explorerURL: { + url: 'https://flowscan.org/' + } + }, + { + type: _types__WEBPACK_IMPORTED_MODULE_3__/* .NetworkType.Flow */ .td.Flow, + chainId: _types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Testnet */ .a_.Testnet, + coinMarketCapChainId: '', + coinGeckoChainId: '', + coinGeckoPlatformId: '', + name: 'Flow', + color: '#16ff99', + fullName: 'Flow', + shortName: 'Flow', + network: 'testnet', + nativeCurrency: (0,_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_2__/* .createFungibleToken */ .mn)(_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Mainnet */ .a_.Mainnet, _types__WEBPACK_IMPORTED_MODULE_3__/* .SchemaType.Fungible */ .XQ.Fungible, '0x7e60df042a9c0868', 'Flow', 'FLOW', 8, 'https://static.flowscan.org/mainnet/icons/A.1654653399040a61.FlowToken.png'), + explorerURL: { + url: 'https://testnet.flowscan.org/' + } + }, +]; +const NETWORK_DESCRIPTORS = [ + { + ID: `${PLUGIN_ID}_flow`, + networkSupporterPluginID: PLUGIN_ID, + chainId: _types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Mainnet */ .a_.Mainnet, + type: _types__WEBPACK_IMPORTED_MODULE_3__/* .NetworkType.Flow */ .td.Flow, + name: 'Flow', + icon: new URL(/* asset import */ __webpack_require__(85206), __webpack_require__.b), + iconColor: 'rgb(54, 173, 104)', + isMainnet: true + }, + { + ID: `${PLUGIN_ID}_flow_testnet`, + networkSupporterPluginID: PLUGIN_ID, + chainId: _types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Testnet */ .a_.Testnet, + type: _types__WEBPACK_IMPORTED_MODULE_3__/* .NetworkType.Flow */ .td.Flow, + name: 'Flow Testnet', + icon: new URL(/* asset import */ __webpack_require__(85206), __webpack_require__.b), + iconColor: 'rgb(54, 173, 104)', + isMainnet: false + }, +]; +const PROVIDER_DESCRIPTORS = [ + { + ID: `${PLUGIN_ID}_blocto`, + providerAdaptorPluginID: PLUGIN_ID, + type: _types__WEBPACK_IMPORTED_MODULE_3__/* .ProviderType.Blocto */ .lP.Blocto, + name: 'Blocto', + icon: new URL(/* asset import */ __webpack_require__(31116), __webpack_require__.b), + iconFilterColor: 'rgba(52, 133, 196, 0.2)', + backgroundGradient: 'linear-gradient(90deg, rgba(52, 133, 196, 0.2) 0%, rgba(0, 239, 139, 0.2) 100%), linear-gradient(0deg, #FFFFFF, #FFFFFF)', + homeLink: 'https://portto.com/', + shortenLink: 'portto.com', + enableRequirements: { + supportedChainIds: (0,_dimensiondev_kit__WEBPACK_IMPORTED_MODULE_0__/* .getEnumAsArray */ .Yl)(_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId */ .a_).map((x)=>x.value + ), + supportedEnhanceableSites: (0,_dimensiondev_kit__WEBPACK_IMPORTED_MODULE_0__/* .getEnumAsArray */ .Yl)(_masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .EnhanceableSite */ .Jk).map((x)=>x.value + ), + supportedExtensionSites: (0,_dimensiondev_kit__WEBPACK_IMPORTED_MODULE_0__/* .getEnumAsArray */ .Yl)(_masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .ExtensionSite */ .v_).map((x)=>x.value + ) + } + }, +]; + + +/***/ }), + +/***/ 4688: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "Q_": () => (/* binding */ CHAIN_DESCRIPTORS), +/* harmony export */ "qQ": () => (/* binding */ NETWORK_DESCRIPTORS), +/* harmony export */ "zM": () => (/* binding */ PROVIDER_DESCRIPTORS) +/* harmony export */ }); +/* harmony import */ var _dimensiondev_kit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(46123); +/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(44451); +/* harmony import */ var _masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(67938); +/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(50236); +/* harmony import */ var _primitives__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(62212); + + + + + +const PLUGIN_ID = _masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_2__/* .NetworkPluginID.PLUGIN_SOLANA */ .FF.PLUGIN_SOLANA; +const CHAIN_DESCRIPTORS = [ + { + type: _types__WEBPACK_IMPORTED_MODULE_3__/* .NetworkType.Solana */ .td.Solana, + chainId: _types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Mainnet */ .a_.Mainnet, + coinMarketCapChainId: '', + coinGeckoChainId: '', + coinGeckoPlatformId: '', + name: 'Solana', + color: '#17ac7c', + fullName: 'Solana', + shortName: 'Solana', + network: 'mainnet', + nativeCurrency: (0,_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_2__/* .createFungibleToken */ .mn)(_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Mainnet */ .a_.Mainnet, _types__WEBPACK_IMPORTED_MODULE_3__/* .SchemaType.Fungible */ .XQ.Fungible, _primitives__WEBPACK_IMPORTED_MODULE_4__/* .ZERO_ADDRESS */ .r, 'Solana', 'SOL', 9, 'https://assets.coingecko.com/coins/images/4128/small/solana.png'), + explorerURL: { + url: 'https://explorer.solana.com/' + } + }, + { + type: _types__WEBPACK_IMPORTED_MODULE_3__/* .NetworkType.Solana */ .td.Solana, + chainId: _types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Devnet */ .a_.Devnet, + coinMarketCapChainId: '', + coinGeckoChainId: '', + coinGeckoPlatformId: '', + name: 'Solana', + color: '#17ac7c', + fullName: 'Solana', + shortName: 'Solana', + network: 'devnet', + nativeCurrency: (0,_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_2__/* .createFungibleToken */ .mn)(_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Devnet */ .a_.Devnet, _types__WEBPACK_IMPORTED_MODULE_3__/* .SchemaType.Fungible */ .XQ.Fungible, _primitives__WEBPACK_IMPORTED_MODULE_4__/* .ZERO_ADDRESS */ .r, 'Solana', 'SOL', 9, 'https://assets.coingecko.com/coins/images/4128/small/solana.png'), + explorerURL: { + url: 'https://explorer.solana.com/', + parameters: { + cluster: 'devnet' + } + } + }, + { + type: _types__WEBPACK_IMPORTED_MODULE_3__/* .NetworkType.Solana */ .td.Solana, + chainId: _types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Testnet */ .a_.Testnet, + coinMarketCapChainId: '', + coinGeckoChainId: '', + coinGeckoPlatformId: '', + name: 'Solana', + color: '#17ac7c', + fullName: 'Solana', + shortName: 'Solana', + network: 'testnet', + nativeCurrency: (0,_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_2__/* .createFungibleToken */ .mn)(_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Testnet */ .a_.Testnet, _types__WEBPACK_IMPORTED_MODULE_3__/* .SchemaType.Fungible */ .XQ.Fungible, _primitives__WEBPACK_IMPORTED_MODULE_4__/* .ZERO_ADDRESS */ .r, 'Solana', 'SOL', 9, 'https://assets.coingecko.com/coins/images/4128/small/solana.png'), + explorerURL: { + url: 'https://explorer.solana.com/', + parameters: { + cluster: 'testnet' + } + } + }, +]; +const NETWORK_DESCRIPTORS = [ + { + ID: `${PLUGIN_ID}_solana`, + networkSupporterPluginID: PLUGIN_ID, + chainId: _types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Mainnet */ .a_.Mainnet, + type: _types__WEBPACK_IMPORTED_MODULE_3__/* .NetworkType.Solana */ .td.Solana, + name: 'Solana', + icon: new URL(/* asset import */ __webpack_require__(76645), __webpack_require__.b), + iconColor: '#5d6fc0', + isMainnet: true + }, + { + ID: `${PLUGIN_ID}_solana_testnet`, + networkSupporterPluginID: PLUGIN_ID, + chainId: _types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Testnet */ .a_.Testnet, + type: _types__WEBPACK_IMPORTED_MODULE_3__/* .NetworkType.Solana */ .td.Solana, + name: 'Solana Testnet', + icon: new URL(/* asset import */ __webpack_require__(76645), __webpack_require__.b), + iconColor: '#5d6fc0', + isMainnet: false + }, +]; +const PROVIDER_DESCRIPTORS = [ + { + ID: `${PLUGIN_ID}_phantom`, + providerAdaptorPluginID: PLUGIN_ID, + type: _types__WEBPACK_IMPORTED_MODULE_3__/* .ProviderType.Phantom */ .lP.Phantom, + name: 'Phantom', + icon: new URL(/* asset import */ __webpack_require__(59785), __webpack_require__.b), + homeLink: 'https://phantom.app/', + shortenLink: 'phantom.app', + downloadLink: 'https://phantom.app/download', + enableRequirements: { + supportedChainIds: (0,_dimensiondev_kit__WEBPACK_IMPORTED_MODULE_0__/* .getEnumAsArray */ .Yl)(_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId */ .a_).map((x)=>x.value + ), + supportedEnhanceableSites: (0,_dimensiondev_kit__WEBPACK_IMPORTED_MODULE_0__/* .getEnumAsArray */ .Yl)(_masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .EnhanceableSite */ .Jk).map((x)=>x.value + ), + supportedExtensionSites: [] + }, + iconFilterColor: 'rgba(85, 27, 249, 0.2)', + backgroundGradient: 'linear-gradient(90deg, rgba(84, 63, 196, 0.2) 0%, rgba(98, 126, 234, 0.2) 100%), linear-gradient(0deg, #FFFFFF, #FFFFFF)' + }, + { + ID: `${PLUGIN_ID}_solflare`, + providerAdaptorPluginID: PLUGIN_ID, + type: _types__WEBPACK_IMPORTED_MODULE_3__/* .ProviderType.Solflare */ .lP.Solflare, + name: 'Solflare', + icon: new URL(/* asset import */ __webpack_require__(42131), __webpack_require__.b), + homeLink: 'https://solflare.com/', + shortenLink: 'solflare.com', + downloadLink: 'https://solflare.com/download', + enableRequirements: { + supportedChainIds: (0,_dimensiondev_kit__WEBPACK_IMPORTED_MODULE_0__/* .getEnumAsArray */ .Yl)(_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId */ .a_).map((x)=>x.value + ), + supportedEnhanceableSites: [], + supportedExtensionSites: [] + } + }, + { + ID: `${PLUGIN_ID}_coin98`, + providerAdaptorPluginID: PLUGIN_ID, + type: _types__WEBPACK_IMPORTED_MODULE_3__/* .ProviderType.Coin98 */ .lP.Coin98, + name: 'Coin98', + icon: new URL(/* asset import */ __webpack_require__(4492), __webpack_require__.b), + homeLink: 'https://coin98.com/', + shortenLink: 'solflare.com', + downloadLink: 'https://coin98.com/wallet', + enableRequirements: { + supportedChainIds: (0,_dimensiondev_kit__WEBPACK_IMPORTED_MODULE_0__/* .getEnumAsArray */ .Yl)(_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId */ .a_).map((x)=>x.value + ), + supportedEnhanceableSites: [], + supportedExtensionSites: [] + } + }, + { + ID: `${PLUGIN_ID}_sollet`, + providerAdaptorPluginID: PLUGIN_ID, + type: _types__WEBPACK_IMPORTED_MODULE_3__/* .ProviderType.Sollet */ .lP.Sollet, + name: 'Sollet', + icon: new URL(/* asset import */ __webpack_require__(65280), __webpack_require__.b), + homeLink: 'https://www.sollet.io/', + shortenLink: 'sollet.io', + downloadLink: 'https://www.sollet.io/', + enableRequirements: { + supportedChainIds: (0,_dimensiondev_kit__WEBPACK_IMPORTED_MODULE_0__/* .getEnumAsArray */ .Yl)(_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId */ .a_).map((x)=>x.value + ), + supportedEnhanceableSites: [], + supportedExtensionSites: (0,_dimensiondev_kit__WEBPACK_IMPORTED_MODULE_0__/* .getEnumAsArray */ .Yl)(_masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .ExtensionSite */ .v_).map((x)=>x.value + ) + } + }, +]; + + +/***/ }), + +/***/ 46123: +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "Cq": () => (/* reexport safe */ _typescript_index_js__WEBPACK_IMPORTED_MODULE_2__.Cq), +/* harmony export */ "GT": () => (/* reexport safe */ _typescript_index_js__WEBPACK_IMPORTED_MODULE_2__.GT), +/* harmony export */ "Gx": () => (/* reexport safe */ _web_index_js__WEBPACK_IMPORTED_MODULE_3__.Gx), +/* harmony export */ "J3": () => (/* reexport safe */ _ecmascript_index_js__WEBPACK_IMPORTED_MODULE_0__.J3), +/* harmony export */ "P": () => (/* reexport safe */ _typescript_index_js__WEBPACK_IMPORTED_MODULE_2__.P), +/* harmony export */ "PQ": () => (/* reexport safe */ _ecmascript_index_js__WEBPACK_IMPORTED_MODULE_0__.PQ), +/* harmony export */ "VJ": () => (/* reexport safe */ _web_index_js__WEBPACK_IMPORTED_MODULE_3__.VJ), +/* harmony export */ "Vs": () => (/* reexport safe */ _web_index_js__WEBPACK_IMPORTED_MODULE_3__.Vs), +/* harmony export */ "YT": () => (/* reexport safe */ _web_index_js__WEBPACK_IMPORTED_MODULE_3__.YT), +/* harmony export */ "Yl": () => (/* reexport safe */ _typescript_index_js__WEBPACK_IMPORTED_MODULE_2__.Yl), +/* harmony export */ "dq": () => (/* reexport safe */ _web_index_js__WEBPACK_IMPORTED_MODULE_3__.dq), +/* harmony export */ "gw": () => (/* reexport safe */ _web_index_js__WEBPACK_IMPORTED_MODULE_3__.gw), +/* harmony export */ "ll": () => (/* reexport safe */ _web_index_js__WEBPACK_IMPORTED_MODULE_3__.ll), +/* harmony export */ "n5": () => (/* reexport safe */ _web_index_js__WEBPACK_IMPORTED_MODULE_3__.n5), +/* harmony export */ "rj": () => (/* reexport safe */ _web_index_js__WEBPACK_IMPORTED_MODULE_3__.rj), +/* harmony export */ "sS": () => (/* reexport safe */ _media_index_js__WEBPACK_IMPORTED_MODULE_1__.sS), +/* harmony export */ "t1": () => (/* reexport safe */ _typescript_index_js__WEBPACK_IMPORTED_MODULE_2__.t1), +/* harmony export */ "uL": () => (/* reexport safe */ _web_index_js__WEBPACK_IMPORTED_MODULE_3__.uL), +/* harmony export */ "v_": () => (/* reexport safe */ _ecmascript_index_js__WEBPACK_IMPORTED_MODULE_0__.v_), +/* harmony export */ "xe": () => (/* reexport safe */ _web_index_js__WEBPACK_IMPORTED_MODULE_3__.xe) +/* harmony export */ }); +/* harmony import */ var _ecmascript_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9074); +/* harmony import */ var _media_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16684); +/* harmony import */ var _typescript_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(91339); +/* harmony import */ var _web_index_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(27554); + + + + +//# sourceMappingURL=index.js.map + +/***/ }), + +/***/ 8297: +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "G": () => (/* binding */ blobToText), +/* harmony export */ "n": () => (/* binding */ blobToDataURL) +/* harmony export */ }); +const blobToDataURL = factory('DataURL'); +const blobToText = factory('Text'); +function factory(method) { + return (blob) => { + return new Promise((resolve, reject) => { + const reader = new FileReader(); + reader.addEventListener('error', () => { + reject(reader.error); + }); + reader.addEventListener('load', () => { + resolve(reader.result); + }); + reader[`readAs${method}`](blob); + }); + }; +} +//# sourceMappingURL=blob.js.map + +/***/ }), + +/***/ 62012: +/***/ ((module) => { + +module.exports = JSON.parse('{"about":"About","wallets":"Wallets","personas":"Personas","persona":"Persona","refresh":"Refresh","next":"Next","cancel":"Cancel","back":"Back","agree":"Agree","confirm":"Confirm","verify":"Verify","go_back":"Go back","connect":"Connect","searching":"Searching","restore":"Restore","save":"Save","manage":"Manage","recovery":"Recovery","successful":"Successful","close":"Close","send":"Send","resend":"Resend","print":"Print","download":"Download","print_preview":"Print Preview","download_preview":"Download Preview","confirm_password":"Confirm Password","about_dialog_license":"License: ","footer_bounty_list":"Bounty List","about_dialog_source_code":"Source Code: ","about_dialog_feedback":"Feedback: ","about_dialog_touch":"Get in touch","about_dialog_description":"Mask Network is the portal to the new, open internet. Mask allows you to send encrypted posts on social networks. We provide more functions such as sending encrypted lucky drops, purchasing cryptocurrencies, file service, etc.","setup_page_title":"Welcome to Mask Network","setup_page_description":"Encrypt your posts & chats on social networks, allow only your friends to decrypt.","setup_page_create_account_title":"Create an Identity","setup_page_create_account_subtitle":"Create your digital identity system, explore Web 3.0","setup_page_create_account_button":"Create","setup_page_create_restore_title":"Restoring from Identity or Backups","setup_page_create_restore_subtitle":"Restoring from identity & historical backups.","setup_page_create_restore_button":"Recovery or Sign In","create_account_mask_id":"MASK ID","create_account_private_key":"Private Key","create_account_identity_id":"Identity ID","create_account_identity_title":"Create an Identity for Mask Network","create_account_sign_in_button":"Recovery","create_account_persona_exists":"Persona already exists.","create_account_mnemonic_download_or_print":"I have kept my identity code safely.","create_account_preview_tip":"This QR code contains your identity code, please keep it safely. You can scan QR code to login your persona in Mask App.","create_account_mnemonic_confirm_failed":"Incorrect identity code","create_account_connect_social_media_button":"Create","create_account_connect_social_media":"Connect to {{type}}","create_account_persona_title":"Welcome to Mask Network","create_account_persona_subtitle":"You can create personas and connect social accounts","create_account_persona_successfully":"Create persona successfully","create_account_connect_social_media_title":"Connect Social Media","create_account_failed":"Create Account Failed","sign_in_account_identity_title":"Recover your persona","sign_in_account_tab_identity":"Identity","sign_in_account_sign_up_button":"Sign Up","sign_in_account_identity_warning":"The digital identity code can only recover your digital identity. It can encrypt and decrypt the social information signed and sent by this digital identity.","sign_in_account_private_key_placeholder":"Input your Private Key","sign_in_account_private_key_error":"Incorrect Private Key","sign_in_account_private_key_persona_not_found":"Can\'t find persona","sign_in_account_private_key_warning":"The private key of your identity code can only recover your persona. It can encrypt and decrypt the social information signed and sent by your persona.","sign_in_account_mnemonic_confirm_failed":"Incorrect identity","sign_in_account_cloud_backup_send_email_success":"Verification code was sent to your {{type}}. Please check your {{type}}.","sign_in_account_local_backup_warning":"Local backup can recover all the data that has been stored locally.","sign_in_account_local_backup_payment_password":"Payment Password","sign_in_account_local_backup_file_drag":"Please click or drag the file here","sign_in_account_cloud_backup_warning":"The cloud backup hosts and encrypts your data.","sign_in_account_cloud_backup_not_support":"Unsupported data backup","sign_in_account_cloud_send_verification_code_tip":"Send verification code to","sign_in_account_cloud_backup_failed":"Restore backup failed, Please try again.","sign_in_account_cloud_backup_email_or_phone_number":"E-mail or phone number","sign_in_account_cloud_backup_password":"Backup password","sign_in_account_cloud_restore_failed":"Restore failed","sign_in_account_cloud_backup_download_failed":"Download backup failed","sign_in_account_cloud_backup_decrypt_failed":"Decrypt failed, please check password","sign_in_account_cloud_backup_email_format_error":"The email is incorrect.","sign_in_account_cloud_backup_phone_format_error":"The phone number is incorrect.","sign_in_account_cloud_backup_synchronize_password_tip":"You have successfully verified your cloud password and recovered your backup. To unify backup passwords, do you want to synchronize your cloud password as local backup password?","cloud_backup":"Cloud Backups","wallets_transfer":"Transfer","wallets_assets":"Assets","wallets_transfer_memo":"Memo","wallets_transfer_amount":"Amount","wallets_transfer_to_address":"To Address","wallets_transfer_error_amount_absence":"Enter an amount","wallets_transfer_error_address_absence":"Enter recipient address","wallets_transfer_error_contract":"Select NFT contract","wallets_transfer_error_nft":"Select one NFT","wallets_transfer_error_invalid_address":"Invalid recipient address","wallet_transfer_error_no_address_has_been_set_name":"The address of the receiver is invalid.","wallet_transfer_error_no_ens_support":"Network does not support ENS.","wallets_transfer_error_insufficient_balance":"Insufficient {{symbol}} balance","wallets_transfer_error_same_address_with_current_account":"This receiving address is the same as the sending address. Please check again.","wallets_transfer_error_is_contract_address":"The receiving address is contract address. Please check again.","wallets_transfer_send":"Send","wallets_transfer_memo_placeholder":"Optional message","wallets_transfer_contract":"Contract","wallets_transfer_contract_placeholder":"Select an NFT Contract","wallets_swap":"Swap","wallets_red_packet":"Lucky drop","wallets_sell":"Sell","wallets_history":"History","settings":"Settings","gas_fee":"Transaction fee","transfer_cost":"Cost {{gasFee}} {{symbol}} ≈ ${{usd}}","done":"Done","labs":"D.Market","wallet_transactions_pending":"Pending","wallet_gas_fee_settings_low":"Low","wallet_gas_fee_settings_medium":"Medium","wallet_gas_fee_settings_high":"High","wallets_startup_create":"Create A New Wallet","wallets_startup_create_desc":"Mask wallet supports ETH、 BSC and Polygon/Matic networks.","wallets_startup_create_action":"Create","wallets_startup_import":"Import Wallet","wallets_startup_import_desc":"Mask wallet supports Private Key, JSON.File and Mnemonic words.","wallets_startup_import_action":"Import","wallets_startup_connect":"Connect Wallet","wallets_startup_connect_desc":"Supports Mask Wallet, MetaMask and WalletConnect.","wallets_startup_connect_action":"Connect","wallets_connect_wallet_metamask":"MetaMask","wallets_connect_wallet_connect":"Connect Wallet","wallets_connect_wallet_polka":"PolkaDot Wallet","wallets_create_wallet_input_placeholder":"Wallet Name","wallets_create_successfully_title":"Success","wallets_create_successfully_tips":"You have created your wallet successfully","wallets_create_successfully_unlock":"Unlock Wallet","wallets_create_wallet_alert":"Mask Network is a free, open-source, client-side interface. Mask Network allows you to interact directly with the blockchain, while you remain in full control of your keys and funds.Please think about this carefully. YOU are the one who is in control. Mask Network is not a bank or exchange. We don\'t hold your keys, your funds, or your information. This means we can\'t access accounts, recover keys, reset passwords, or reverse transactions.","wallets_wallet_connect_title":"Scan QR code with WalletConnect-compatible wallet","wallets_wallet_mnemonic":"Mnemonic","wallets_wallet_json_file":"Local Backup","wallets_wallet_private_key":"Private Key","wallets_import_wallet_tabs":"Import Wallet Tabs","wallets_import_wallet_password_placeholder":"Wallet Password","wallets_import_wallet_cancel":"Cancel","wallets_import_wallet_import":"Import","wallets_create_wallet_tabs":"Create Wallet Tabs","wallets_create_wallet_refresh":"Refresh","wallets_create_wallet_remember_later":"Remember that later","wallets_create_wallet_verification":"Verification","wallets_collectible_address":"Collectible Address","wallets_collectible_token_id":"Token ID","wallets_collectible_field_contract_require":"The collectible address is required","wallets_collectible_field_token_id_require":"The token id is required","wallets_collectible_load_end":"Load end","wallets_balance":"Balance on","wallets_balance_all_chain":"all chains","wallets_balance_Send":"Send","wallets_balance_Buy":"Buy","wallets_balance_Swap":"Swap","wallets_balance_Receive":"Receive","wallets_assets_token":"Token","wallets_assets_token_sent_not_connect_tip":"Not connected to {{chainName}}.","wallets_assets_token_sent_switch_network_tip":"Click to switch.","wallets_assets_investment":"Investment","wallets_assets_collectibles":"Collectibles","wallets_assets_custom_token":"Custom Token","wallets_assets_custom_collectible":"Custom Collectible","wallets_assets_asset":"Asset","wallets_assets_balance":"Balance","wallets_assets_price":"Price","wallets_assets_value":"Value","wallets_assets_operation":"Operation","wallets_address":"Wallet Address","wallets_receive_tips":"Scan the QR code and transfer {{chainName}} assets to it","wallets_add_collectible":"Add Collectible","wallets_incorrect_address":"Incorrect contract address.","wallets_collectible_been_added":"The Collectible has already been added.","wallets_collectible_error_not_exist":"The collectible does not exist or belong to you.","wallets_collectible_contract_is_empty":"Please select contract","wallets_collectible_token_id_is_empty":"Please select collectible","wallets_collectible_add":"Add","wallets_add_token":"Add Token","wallets_token_been_added":"Token has already been added.","wallets_token_symbol_tips":"Symbol must be 11 characters or fewer.","wallets_token_decimals_tips":"Decimals must be at least 0, and not over 18.","wallets_add_token_contract_address":"Token Contract Address","wallets_add_token_symbol":"Token Symbol","wallets_add_token_decimals":"Decimals of Precision","wallets_add_token_cancel":"Cancel","wallets_add_token_next":"Next","wallets_empty_tokens_tip":"No assets were found. Please add tokens.","wallets_empty_collectible_tip":"No collectibles were found. Please add Collectibles.","wallets_reload":"Reload","wallets_address_copied":"Address successfully copied","public_key_copied":"Public key successfully copied","wallets_address_copy":"Copy","wallets_history_types":"Types","wallets_history_value":"Value","wallets_history_time":"Time","wallets_history_receiver":"Interacted with (to)","wallets_empty_history_tips":"No transaction history","wallets_loading_token":"Loading Token","personas_setup_connect_tips":"Please connect to your {{type}} account.","personas_setup_tip":"Please to create/restore persona.","personas_setup_connect":"Connect","personas_name_maximum_tips":"Maximum length is {{length}} characters long.","personas_name_existed":"The persona name already exists","personas_rename_placeholder":"Persona Name","personas_confirm":"Confirm","personas_cancel":"Cancel","personas_export_persona":"Export Persona","personas_export_persona_copy":"Copy","personas_export_persona_copy_success":"Copied","personas_export_persona_copy_failed":"Copy failed","personas_export_persona_confirm_password_tip":"You haven’t set up your password. To export your persona, you must set up backup password first.","personas_export_private":"Export Private Key","personas_export_private_key_tip":"This export is only for exporting private key. We do not export any other data. If you need more data, please go to Settings:","personas_delete_confirm_tips":"Please confirm that you have deleted persona {{nickname}} and entered your password.","personas_delete_dialog_title":"Delete Persona","personas_edit_dialog_title":"Edit Persona","personas_edit":"Edit","personas_delete":"Delete","personas_logout":"Log out","personas_logout_confirm_password_tip":"You haven’t set up your password. To logout persona, you must set up backup password first.","personas_add_persona":"Add Persona","personas_back_up":"Back Up","personas_connect_to":"Connect to {{internalName}}","personas_disconnect":"Delete Persona Verification","personas_disconnect_raw":"Disconnect","personas_disconnect_warning":"Are you sure you want to delete persona verification? Your mask friends can no longer send decrypted message to you by this persona or check your Web 3 products related with this persona.","personas_logout_warning":"After logging out, your associated social accounts can no longer decrypt past encrypted messages. If you need to reuse your account, you can use your private key for recovery.","personas_add":"Add","personas_upload_avatar":"Upload an avatar","personas_rename":"Rename","personas_invite_post":"@{{identifier}} Hi, would you please download Mask so that we can share our posts with encryption? #mask_io install http://mask.io","personas_empty_contact_tips":"You don’t have any contacts with Mask Network installed yet. Invite your friends to download {{name}}.","personas_contacts_name":"Name","personas_contacts_operation":"Operation","personas_contacts_invite":"Invite","personas_post_is_empty":"You haven\'t created any post yet.","personas_post_create":"Create Post","settings_general":"General","settings_backup_recovery":"Backup & Recovery","settings_local_backup":"Local Backup","settings_cloud_backup":"Cloud Backup","settings_appearance_default":"Follow system settings","settings_appearance_light":"Light","settings_appearance_dark":"Dark","settings_backup_preview_account":"Account","settings_backup_preview_personas":"Personas","settings_backup_preview_associated_account":"Associated Account","settings_backup_preview_posts":"Encrypted Post","settings_backup_preview_contacts":"Contacts","settings_backup_preview_file":"File","settings_backup_preview_wallets":"Mask Wallet","settings_backup_preview_created_at":"Backup Time","settings_language_title":"Language","settings_language_desc":"Select the language you would like to use","settings_language_auto":"Follow system","settings_appearance_title":"Appearance","settings_appearance_desc":"Select the theme you would like to use","settings_data_source_title":"Data Source","settings_data_source_desc":"Fetch trending data from different platforms","settings_sync_with_mobile_title":"Sync With Mobile","settings_sync_with_mobile_desc":"You can sync your accounts and information with your mobile device. Open the Mask Network mobile app, go to Settings and tap on Sync With Plug-ins","settings_global_backup_title":"Global Backup","settings_global_backup_desc":"Provide both local backup and cloud backup","settings_global_backup_last":"The most recent backup was made on {{backupAt}}. Backup method: {{backupMethod}}.","settings_restore_database_title":"Restore Database","settings_restore_database_desc":"Restore from a previous database backup","settings_email_title":"Email","settings_email_desc":"Please bind your email","settings_change_password_title":"Backup Password","settings_change_password_desc":"Change your backup password","settings_change_password_not_set":"You haven\'t set up a backup password","settings_phone_number_title":"Phone Number","settings_phone_number_desc":"Please bind your phone number","settings_password_rule":"Backup password must be between 8 and 20 characters and contain at least a number, a uppercase letter, a lowercase letter and a special character.","settings_button_cancel":"Cancel","settings_button_confirm":"Confirm","settings_button_sync":"Sync","settings_button_backup":"Backup","settings_button_recovery":"Recovery","settings_button_setup":"Setup","settings_button_change":"Change","settings_dialogs_bind_email_or_phone":"Please bind your email or phone number.","settings_dialogs_verify_backup_password":"Verify Backup Password","settings_dialogs_setting_backup_password":"Setting Backup Password","settings_dialogs_change_backup_password":"Change Backup Password","settings_dialogs_setting_email":"Setting Email","settings_dialogs_change_email":"Change Email","settings_dialogs_setting_phone_number":"Setting Phone Number","settings_dialogs_change_phone_number":"Change Phone Number","settings_dialogs_incorrect_code":"The verification code is incorrect.","settings_dialogs_incorrect_email":"The email address is incorrect.","settings_dialogs_incorrect_phone":"The phone number is incorrect.","settings_dialogs_incorrect_password":"Incorrect password.","settings_dialogs_inconsistency_password":"Password inconsistency.","settings_dialogs_current_email_validation":"The current email for verification is","settings_dialogs_change_email_validation":"To change the Email, you need to verify your current Email address:","settings_dialogs_current_phone_validation":"The current phone number for verification is","settings_dialogs_change_phone_validation":"To change the phone number, you need to verify your current phone number:","settings_dialogs_backup_to_cloud":"Backup to cloud","settings_dialogs_merge_to_local_data":"Merge Cloud backup to local and back up to cloud","settings_dialogs_backup_action_desc":"There is already a cloud backup, please merge the cloud backup to local before you back up, or back up directly.","settings_dialogs_backup_to_cloud_action":"This option overwrites the existing cloud backup with the local data.","settings_dialogs_backup_merge_cloud":"This option requires you to enter the password of the existing cloud backup for decryption. The existing cloud backup and local data are combined and then encrypted and uploaded to cloud.","settings_dialogs_backup_merged_tip":"You already obtained the cloud backup to your local. If you want to complete your back up, please click on the backup button to update all your data to cloud.","settings_label_backup_password":"Backup Password","settings_label_new_backup_password":"New Backup Password","settings_label_backup_password_cloud":"Backup passwords for files in the cloud","settings_label_payment_password":"Payment Password","settings_label_re_enter":"Re-enter","settings_alert_password_set":"Backup password set up successfully.","settings_alert_password_updated":"Backup password updated","settings_alert_email_set":"Email set","settings_alert_email_updated":"Email updated","settings_alert_phone_number_set":"Phone number set","settings_alert_phone_number_updated":"Phone number updated","settings_alert_backup_fail":"Backup Failed","settings_alert_backup_success":"You have successfully backed up your data.","settings_alert_validation_code_sent":"Verification code sent","settings_alert_merge_success":"You have successfully merged your cloud backup to the local data.","labs_file_service":"File Service","labs_file_service_desc":"Decentralized file storage, permanently. Upload and share files to your Mask friends on top of Arweave Network.","labs_markets":"ITO","labs_markets_desc":"Launch decentralized asset freely and participate in token launch directly on Twitter.","labs_red_packet":"Lucky Drop","labs_red_packet_desc":"Gift crypto or NFTs to any users, first come, first served.","labs_swap":"Swap","labs_swap_desc":"Pop-up trading widget that allows you to instantly view prices of the hottest Crypto/Stock and trade. Can also invest in the best performing managers.","labs_transak":"Fiat On-Ramp","labs_transak_desc":"Fiat On-Ramp Aggregator on Twitter. Buy crypto in 60+ countries with Transak support.","labs_savings":"Savings","labs_savings_desc":"Deploy your crypto into various savings protocols and watch your savings grow.","labs_snapshot":"Snapshot","labs_snapshot_desc":"Display and vote for proposals directly on social media.","labs_market_trend":"Market Trend","labs_market_trend_desc":"Display token information, price charts and exchange information directly on social media.","labs_collectibles":"Collectibles","labs_collectibles_desc":"Display specific information of collectibles in OpenSea and Rarible, make an offer directly on social media.","labs_gitcoin":"Gitcoin","labs_gitcoin_desc":"Display specific information of Gitcoin projects, donate to a project directly on social media.","labs_valuables":"Valuables","labs_valuables_desc":"Buy & sell tweets autographed by their original creators.","labs_dhedge":"dHEDGE","labs_dhedge_desc":"Decentralized hedge funds on Ethereum and Polygon (Matic).","labs_mask_box":"MaskBox","labs_mask_box_desc":"Professional multi-chain decentralized platform for launching NFT mystery boxes.","labs_loot_man":"LootMan by NonFFriend","labs_loot_man_desc":"Explore the endless possibilities of NFTs. Link and display your NFTs on social media in a revolutionized way.","labs_good_ghosting":"GoodGhosting","labs_good_ghosting_desc":"Cultivate a weekly saving habit on Twitter.","labs_pool_together":"PoolTogether","labs_pool_together_desc":"Participate in lossless lottery on Twitter.","labs_settings_market_trend":"Market Trend Settings","labs_settings_market_trend_source":"Default Trending Source","labs_settings_swap":"Swap Settings","labs_settings_swap_network":"{{network}} Network Default Trading Source","labs_pets":"Non-Fungible Friends by Mint Team","labs_pets_desc":"Explore the endless possibilities of NFTs.","labs_cyber_connect":"CyberConnect","labs_cyber_connect_desc":"Decentralized social graph protocol for user-centric Web3","labs_setup_tutorial":"Setup Tutorial","labs_do_not_show_again":"Don\'t show again.","labs_cryptoartai":"CRYPTOART.AI","labs_cryptoartai_desc":"Connect CryptoArt Digital Artworks. The Internationale is a classic anthem that has been a shared memory for generations.","labs_art_blocks":"Artblocks","labs_art_blocks_desc":"Artblocks allow you to pick a style that you like, pay for the work, and a randomly generated version of the content is created by an algorithm and sent to your Ethereum account.","dashboard_mobile_test":"Join Tests for Mobile","dashboard_source_code":"Source Code","privacy_policy":"Privacy Policy","version_of_stable":"Version {{version}}","version_of_unstable":"Version {{version}}-{{build}}-{{hash}}","register_restore_backups":"Restore Backups","register_restore_backups_cancel":"Cancel","register_restore_backups_confirm":"Restore","register_restore_backups_hint":"Please click or drag the file here","register_restore_backups_file":"File","register_restore_backups_text":"Text","register_restore_backups_tabs":"Restore Backup Tabs","create_wallet_mnemonic_tip":"Do not forget to save your mnemonic phrase. You will need this to access your wallet.","create_wallet_password_uppercase_tip":"Must contain an uppercase character","create_wallet_password_lowercase_tip":"Must contain a lowercase character","create_wallet_password_number_tip":"Must contain a number","create_wallet_password_special_tip":"Must contain a special character","create_wallet_password_satisfied_requirement":"The password is not satisfied the requirement.","create_wallet_password_match_tip":"The password does not match.","create_wallet_password_length_error":"The password length is incorrect.","create_wallet_name_placeholder":"Enter 1-12 characters","create_wallet_form_title":"Create a wallet","create_wallet_wallet_name":"Wallet Name","create_wallet_payment_password":"Payment Password","create_wallet_re_enter_payment_password":"Re-enter the payment password","create_wallet_payment_password_tip":"Payment Password must be a combination of 2 categories out of numbers, letters and special characters with a length of 8-20 characters.","create_wallet_your_wallet_address":"Your wallet address","create_wallet_done":"Done","create_wallet_verify_words":"Verify mnemonic words","create_wallet_mnemonic_word_not_match":"The mnemonic word is incorrect"}'); + +/***/ }), + +/***/ 97979: +/***/ ((module) => { + +module.exports = JSON.parse('{"about":"About","wallets":"ウォレット","personas":"ペルソナ","persona":"ペルソナ","refresh":"更新","next":"Next","cancel":"Cancel","back":"Back","agree":"同意","confirm":"確認","verify":"認証","go_back":"戻る","connect":"接続","searching":"検索中…","restore":"復元","save":"保存","manage":"管理","recovery":"復旧","successful":"成功","close":"終了","send":"送信","resend":"再送信","confirm_password":"パスワード確認","about_dialog_license":"ライセンス: ","footer_bounty_list":"報奨金リスト","about_dialog_source_code":"ソースコード: ","about_dialog_feedback":"フィードバック: ","about_dialog_touch":"お問い合わせ","about_dialog_description":"Mask Networkは、新しいオープンなインターネットへのポータルです。Maskは、ソーシャルネットワーク上で暗号化された投稿を送ることができます。暗号化されたRedPacketの送信、暗号通貨の購入、ファイルサービスなど、より多くの機能を提供しています。","setup_page_title":"Mask Networkへようこそ","setup_page_description":"SNS上の投稿とチャットを暗号化し、友達のみが復号化できます。","setup_page_create_account_title":"イベントを作成","setup_page_create_account_subtitle":"アカウントとデータのローカルストレージ","setup_page_create_account_button":"作成","setup_page_create_restore_title":"アイデンティティやバックアップから復元する","setup_page_create_restore_subtitle":"IDと履歴のバックアップからの復元","setup_page_create_restore_button":"復元またはサインイン","create_account_identity_title":"Mask Networkのアイデンティティを作成","create_account_sign_in_button":"復元またはサインイン","create_account_mnemonic_confirm_failed":"IDコードが間違っています","create_account_connect_social_media_button":"作成","create_account_connect_social_media":"{{type}} に接続","create_account_persona_title":"Mask Networkへようこそ","create_account_persona_subtitle":"ペルソナを作成し、ソーシャルアカウントを接続することができます","create_account_persona_successfully":"正常にペルソナを作成しました","create_account_connect_social_media_title":"ソーシャルメディアに接続","create_account_failed":"アカウント作成が失敗しました","sign_in_account_identity_title":"復元またはサインイン","sign_in_account_sign_up_button":"サインアップ","sign_in_account_identity_warning":"デジタルIDコードは、あなたのデジタルIDのみを復元できます。このデジタルIDによって署名され送信されたソーシャル情報を暗号化して復号することができます。","sign_in_account_private_key_placeholder":"秘密鍵を入力してください","sign_in_account_private_key_error":"IDコードが間違っています","sign_in_account_private_key_persona_not_found":"ペルソナが見つかりません","sign_in_account_private_key_warning":"デジタルIDコードは、あなたのデジタルIDのみを復元できます。このデジタルIDによって署名され送信されたソーシャル情報を暗号化して復号することができます。","sign_in_account_mnemonic_confirm_failed":"IDが間違っています","sign_in_account_cloud_backup_send_email_success":"{{type}}に認証コードが送信されました。 {{type}} を確認してください。","sign_in_account_local_backup_warning":"ローカルバックアップは、ローカルに保存されているすべてのデータを回復できます。","sign_in_account_local_backup_payment_password":"支払いパスワードの設定","sign_in_account_local_backup_file_drag":"ここでファイルをクリックまたはドラッグしてください","sign_in_account_cloud_backup_warning":"クラウドバックアップは、データをホストおよび暗号化します。","sign_in_account_cloud_backup_not_support":"サポートされていないバックアップ","sign_in_account_cloud_send_verification_code_tip":"検証コードを送信","sign_in_account_cloud_backup_failed":"バックアップの復元に失敗しました。もう一度やり直してください。","sign_in_account_cloud_backup_email_or_phone_number":"メールアドレスまたは電話番号","sign_in_account_cloud_backup_password":"バックアップパスワード","sign_in_account_cloud_restore_failed":"復元に失敗しました","sign_in_account_cloud_backup_download_failed":"バックアップのダウンロードに失敗しました","sign_in_account_cloud_backup_decrypt_failed":"復号に失敗しました。パスワードを確認してください。","sign_in_account_cloud_backup_email_format_error":"メールアドレスが間違っています","sign_in_account_cloud_backup_phone_format_error":"電話番号が正しくありません","sign_in_account_cloud_backup_synchronize_password_tip":"クラウドパスワードの認証が完了し、バックアップがアップロードされています。バックアップパスワードを統一するために、クラウドのパスワードをローカルのバックアップのパスワードとして同期するかどうかを確認してください。","cloud_backup":"クラウドバックアップ","wallets_transfer":"転送","wallets_assets":"資産","wallets_transfer_memo":"メモ","wallets_transfer_amount":"金額","wallets_transfer_to_address":"宛先アドレス","wallets_transfer_error_amount_absence":"金額を入力","wallets_transfer_error_address_absence":"受信者のアドレス","wallets_transfer_error_contract":"NFT のコントラクトを選択","wallets_transfer_error_nft":"NFT を1つ選択してください","wallets_transfer_error_invalid_address":"無効な受け手のアドレス","wallets_transfer_error_insufficient_balance":"{{symbol}} の残高が足りません","wallets_transfer_send":"送信","wallets_transfer_memo_placeholder":"任意のメッセージ","wallets_transfer_contract":"コントラクト","wallets_transfer_contract_placeholder":"NFT コントラクトを選択してください","wallets_swap":"スワップ","wallets_red_packet":"レッドパケット","wallets_sell":"売る","wallets_history":"履歴","settings":"設定","gas_fee":"取引手数料","transfer_cost":"費用 {{gasFee}} {{symbol}} ${{usd}}","done":"完了!","labs":"Mask Labs","wallet_transactions_pending":"承認待ち","wallet_gas_fee_settings_low":"低い","wallet_gas_fee_settings_medium":"中間","wallet_gas_fee_settings_high":"高い","wallets_startup_create":"新規ウォレット作成","wallets_startup_create_desc":"MaskウォレットはETH、BSC、Polygon/Maticのネットワークをサポートしています。","wallets_startup_create_action":"作成","wallets_startup_import":"ウォレットをインポート","wallets_startup_import_desc":"Mask networkはPrivate KeyとMnemonic wordsをサポートしています。","wallets_startup_import_action":"インポート","wallets_startup_connect":"プラグインウォレットに接続","wallets_startup_connect_desc":"Mask networkはMetamask、WalletConnectをサポートしています。","wallets_startup_connect_action":"接続","wallets_connect_wallet_metamask":"Metamask","wallets_connect_wallet_connect":"ウォレットを接続","wallets_connect_wallet_polka":"Polkadot ウォレット","wallets_create_wallet_input_placeholder":"ウォレット名","wallets_create_successfully_title":"成功","wallets_create_successfully_tips":"ウォレットを正常に作成しました","wallets_create_successfully_unlock":"ウォレットをアンロック","wallets_create_wallet_alert":"Mask Networkは、フリーでオープンソースの、クライアントサイドのインターフェースです。Mask Networkは、あなたが自分の鍵と資金を完全にコントロールしたまま、ブロックチェーンと直接やりとりすることを可能にします。コントロールするのはあなた自身です。Mask Networkは銀行や取引所ではありません。お客様の鍵や資金、情報を預かることはありません。つまり、アカウントへのアクセス、鍵の回収、パスワードのリセット、取引の取り消しなどはできません。","wallets_wallet_connect_title":"WalletConnect対応ウォレットでQRコードスキャン","wallets_wallet_mnemonic":"ニーモニック","wallets_wallet_json_file":"ローカルバックアップ","wallets_wallet_private_key":"秘密鍵","wallets_import_wallet_tabs":"ウォレットタブのインポート","wallets_import_wallet_password_placeholder":"ウォレットのパスワード","wallets_import_wallet_cancel":"キャンセル","wallets_import_wallet_import":"インポート","wallets_create_wallet_tabs":"ウォレットタブを作成","wallets_create_wallet_refresh":"更新","wallets_create_wallet_remember_later":"後で覚えておいてください","wallets_create_wallet_verification":"認証","wallets_collectible_address":"受取可能なアドレス","wallets_collectible_token_id":"トークンID","wallets_collectible_field_contract_require":"受取可能なアドレスが必要です","wallets_collectible_field_token_id_require":"トークンIDが必要です","wallets_collectible_load_end":"ロード終了","wallets_balance":"残高","wallets_balance_all_chain":"全てのチェーン","wallets_balance_Send":"送信","wallets_balance_Buy":"購入","wallets_balance_Swap":"スワップ","wallets_balance_Receive":"受取","wallets_assets_token":"トークン","wallets_assets_token_sent_not_connect_tip":"{{chainName}} に接続されていません。","wallets_assets_token_sent_switch_network_tip":"クリックして切り替えます","wallets_assets_investment":"投資","wallets_assets_collectibles":"コレクション","wallets_assets_custom_token":"カスタムトークン","wallets_assets_custom_collectible":"カスタムコレクション","wallets_assets_asset":"資産","wallets_assets_balance":"残高","wallets_assets_price":"価格","wallets_assets_value":"価値","wallets_assets_operation":"操作方法","wallets_address":"ウォレットアドレス","wallets_receive_tips":"QRコードをスキャンして {{chainName}} 資産を転送します","wallets_add_collectible":"コレクションを追加","wallets_incorrect_address":"不正なコントラクトアドレス","wallets_collectible_been_added":"コレクションは既に追加されています","wallets_collectible_error_not_exist":"コレクションは存在しないか、またはあなたのものです。","wallets_collectible_contract_is_empty":"コントラクトを選択してください","wallets_collectible_token_id_is_empty":"トークンを選択してください","wallets_collectible_add":"追加","wallets_add_token":"トークンを追加","wallets_token_been_added":"このトークンはすでに追加されてます","wallets_token_symbol_tips":"シンボルは11文字以下でなければなりません","wallets_token_decimals_tips":"小数点以下は0以上、18以下でなければなりません","wallets_add_token_contract_address":"トークンコントラクトアドレス","wallets_add_token_symbol":"ティッカーシンボル","wallets_add_token_decimals":"小数点の適合率","wallets_add_token_cancel":"キャンセル","wallets_add_token_next":"Next","wallets_empty_tokens_tip":"アセットが見つかりません。トークンを追加してください。","wallets_empty_collectible_tip":"コレクションが見つかりませんでした。コレクションを追加してください。","wallets_address_copied":"アドレスが正常にコピーされました","wallets_address_copy":"コピー","wallets_history_types":"タイプ","wallets_history_value":"価値","wallets_history_time":"時間","wallets_history_receiver":"受取","wallets_empty_history_tips":"取引履歴がありません","wallets_loading_token":"トークンを読み込み中","personas_setup_connect_tips":"あなたの {{type}} アカウントに接続してください","personas_setup_tip":"ペルソナを作成/復元してください。","personas_setup_connect":"接続する","personas_name_maximum_tips":"最大長は {{length}} 文字です。","personas_name_existed":"このペルソナ名は既に存在しています","personas_rename_placeholder":"ペルソナ名","personas_confirm":"確定","personas_cancel":"キャンセル","personas_export_persona":"ペルソナのエクスポート","personas_export_persona_copy":"コピー","personas_export_persona_copy_success":"コピーしました","personas_export_persona_copy_failed":"コピーに失敗しました","personas_export_persona_confirm_password_tip":"パスワードが設定されていません。秘密鍵をエクスポートするには、まずバックアップパスワードを設定する必要があります。","personas_export_private":"秘密鍵をエクスポート","personas_export_private_key_tip":"このエクスポートは秘密鍵をエクスポートするためのものです。他のデータはエクスポートしません。さらなるデータが必要な場合は「設定」に進んでください:","personas_delete_confirm_tips":"削除するペルソナ名 {{nickname}} とパスワードを入力してください。","personas_delete_dialog_title":"ペルソナを削除","personas_edit_dialog_title":"ペルソナを編集","personas_edit":"編集","personas_delete":"削除","personas_logout":"ログアウト","personas_logout_confirm_password_tip":"パスワードが設定されていません。ペルソナからログアウトするには、まずバックアップパスワードを設定する必要があります。","personas_add_persona":"ペルソナを追加","personas_back_up":"バックアップ","personas_connect_to":"{{internalName}} に接続","personas_disconnect":"接続を外す","personas_disconnect_warning":"{{network}} の {{userId}}アカウントを切断してもよろしいですか? 切断後、このアカウントはマスクネットワークで情報を復号化および暗号化することができなくなります。","personas_logout_warning":"ログアウト後、あなたに関連づけられたソーシャルアカウントは過去に暗号化されたメッセージを復号することができなくなります。アカウントを再利用する場合は、秘密鍵を利用して復元することができます。","personas_add":"追加","personas_upload_avatar":"アバターをアップロード","personas_rename":"名前変更","personas_invite_post":"@{{identifier}} こんにち!投稿を暗号化して共有できるように Mask をダウンロードしましょう。http://mask.io からダウンロードできます。 #mask_io","personas_empty_contact_tips":"Mask Network に認識されているコンタクトがありません。友達を招待して {{name}} をダウンロードしてもらってください。","personas_contacts_name":"名前","personas_contacts_operation":"操作","personas_contacts_invite":"招待","personas_post_is_empty":"まだ投稿を作成したことがありません。","personas_post_create":"投稿を作成","settings_general":"一般","settings_backup_recovery":"バックアップと復元","settings_local_backup":"ローカルバックアップ","settings_cloud_backup":"クラウドバックアップ","settings_appearance_default":"システム設定に従う","settings_appearance_light":"ライト","settings_appearance_dark":"ダーク","settings_backup_preview_account":"アカウント","settings_backup_preview_personas":"ペルソナ","settings_backup_preview_associated_account":"紐付けられたアカウント","settings_backup_preview_posts":"暗号化された投稿","settings_backup_preview_contacts":"コンタクト","settings_backup_preview_wallets":"Mask ウォレット","settings_backup_preview_created_at":"バックアップ時間","settings_language_title":"言語","settings_language_desc":"使用する言語を選択してください","settings_language_auto":"システム設定に従う","settings_appearance_title":"外観","settings_appearance_desc":"使用したいテーマを選択したください","settings_data_source_title":"データソース","settings_data_source_desc":"異なるプラットフォームからトレンドデータを取得","settings_sync_with_mobile_title":"モバイルと同期","settings_sync_with_mobile_desc":"アカウントと情報をモバイルデバイスと同期することができます。Mask Network モバイルアプリを開き、設定に移動して同期プラグインを選択します","settings_global_backup_title":"グローバルバックアップ","settings_global_backup_desc":"ローカルバックアップとクラウドバックアップの両方を提供","settings_global_backup_last":"最新のバックアップは {{backupAt}} に行われました。バックアップ方法: {{backupMethod}}。","settings_restore_database_title":"データベースの復元","settings_restore_database_desc":"以前のデータベースバックアップから復元","settings_email_title":"Eメール","settings_email_desc":"メールアドレスを入力してください","settings_change_password_title":"バックアップパスワード","settings_change_password_desc":"バックアップパスワードの変更","settings_change_password_not_set":"バックアップパスワードが設定されていません","settings_phone_number_title":"電話番号","settings_phone_number_desc":"電話番号を入力してください","settings_password_rule":"バックアップパスワードは 8~20 文字で、少なくとも数字、小文字、特殊文字を含める必要があります。","settings_button_cancel":"キャンセル","settings_button_confirm":"確定","settings_button_sync":"同期","settings_button_backup":"バックアップ","settings_button_recovery":"リカバリー","settings_button_setup":"設定","settings_button_change":"変更","settings_dialogs_bind_email_or_phone":"メールアドレスまたは電話番号を入力してください。","settings_dialogs_verify_backup_password":"バックアップパスワードを確認","settings_dialogs_setting_backup_password":"バックアップパスワードを設定","settings_dialogs_change_backup_password":"バックアップパスワードの変更","settings_dialogs_setting_email":"メールアドレスの設定","settings_dialogs_change_email":"メールアドレスの変更","settings_dialogs_setting_phone_number":"電話番号の設定","settings_dialogs_change_phone_number":"電話番号の変更","settings_dialogs_incorrect_code":"認証コードが間違っています。","settings_dialogs_incorrect_email":"メールアドレスが間違っています。","settings_dialogs_incorrect_phone":"電話番号が間違っています。","settings_dialogs_incorrect_password":"パスワードが間違っています。","settings_dialogs_inconsistency_password":"パスワードが一致しません。","settings_dialogs_current_email_validation":"現在の認証用のメールアドレスは","settings_dialogs_change_email_validation":"メールアドレスを変更するためには、現在のメールアドレスを認証する必要があります:","settings_dialogs_current_phone_validation":"現在の認証用のメールアドレスは","settings_dialogs_change_phone_validation":"電話番号を変更するには、現在の電話番号を認証する必要があります:","settings_dialogs_backup_to_cloud":"クラウドにバックアップ","settings_dialogs_merge_to_local_data":"クラウドバックアップをローカルに統合し、クラウドにバックアップします","settings_dialogs_backup_action_desc":"クラウドバックアップは既に存在しています。バックアップ前にクラウドバックアップをローカルに統合するか、直接バックアップしてください。","settings_dialogs_backup_merged_tip":"既にクラウドバックアップをローカルに取得しています。バックアップを実行したい場合は、バックアップボタンをクリックしてすべてのデータをクラウドに更新します。","settings_label_backup_password":"バックアップパスワード","settings_label_new_backup_password":"新しいバックアップパスワード","settings_label_backup_password_cloud":"クラウド上のファイルのパスワードをバックアップ","settings_label_payment_password":"支払いパスワードの設定","settings_label_re_enter":"再入力","settings_alert_password_set":"バックアップパスワードの設定に成功しました。","settings_alert_password_updated":"バックアップパスワードが更新されました","settings_alert_email_set":"メールアドレスの設定","settings_alert_email_updated":"メールアドレスが更新されました","settings_alert_phone_number_set":"電話番号の設定","settings_alert_phone_number_updated":"電話番号が更新されました","settings_alert_backup_fail":"バックアップ失敗","settings_alert_backup_success":"データのバックアップに成功しました。","settings_alert_validation_code_sent":"認証コードを送信しました","settings_alert_merge_success":"クラウドバックアップをローカルデータに統合できました。","labs_file_service":"ファイルサービス","labs_file_service_desc":"ユーザー向け分散ファイルストレージです。","labs_markets":"マーケット","labs_markets_desc":"クリプトの友人にデジタル資産を販売します。","labs_red_packet":"幸運ドロップ","labs_red_packet_desc":"あなたの幸運を暗号化された幸運の小包としてあなたの友人に送信します。","labs_swap":"スワップ","labs_swap_desc":"追加料金と制限なしに Dex を通じてトークンを購入します。","labs_transak":"Transak","labs_transak_desc":"Transak より 60 以上の国でクリプトを購入することができます。"}'); + +/***/ }), + +/***/ 75743: +/***/ ((module) => { + +module.exports = JSON.parse('{"about":"알아보기","wallets":"월렛","personas":"나의 페르소나","persona":"페르소나","refresh":"새로고침","next":"다음","cancel":"취소","back":"뒤로","agree":"동의","confirm":"확인","verify":"인증","go_back":"돌아가기","connect":"연결","searching":"검색 중...","restore":"복원하기","save":"저장","manage":"관리","recovery":"복구","successful":"성공","close":"닫기","send":"보내기","resend":"다시 보내기","confirm_password":"비밀번호 확인","about_dialog_license":"라이센스: ","footer_bounty_list":"상금 리스트","about_dialog_source_code":"소스 코드: ","about_dialog_feedback":"피드백: ","about_dialog_touch":"연락하기","about_dialog_description":"Mask Network는 새롭고 오픈한 인터넷으로 통하는 포털이다. Mask를 통해 소셜 네트워크에서 암호화 게시글을 공유할 수도 있다. 레드 패킷 보내기, 암호화폐 구매, 파일 서비스 등 기능도 지원한다.","setup_page_title":"환영합니다","setup_page_description":"소셜 네트워크에서 개시글과 체팅을 암호화하고 친구만 해독할 수 있다.","setup_page_create_account_title":"아이디 만들기","setup_page_create_account_subtitle":"계정과 데이터의 로컬 스토리지","setup_page_create_account_button":"만들기","setup_page_create_restore_title":"아이디나 백업에서 복원하기","setup_page_create_restore_subtitle":"아이디나 역사 백업에서 복원하기.","setup_page_create_restore_button":"복구 또는 로그인","create_account_identity_title":"Mask Network 아이디 만들기","create_account_sign_in_button":"복구 또는 로그인","create_account_mnemonic_confirm_failed":"잘못된 아이디 코드","create_account_connect_social_media_button":"만들기","create_account_connect_social_media":"{{type}} 에 연결하기","create_account_persona_title":"환영합니다","create_account_persona_subtitle":"페르소나를 만들고 소셜 계정을 연결할 수 있습니다.","create_account_persona_successfully":"페르소나 생성 성공","create_account_connect_social_media_title":"소셜 미디어 연결하기","create_account_failed":"계정 만들기 실패","sign_in_account_identity_title":"복구 또는 로그인","sign_in_account_tab_identity":"아이덴티티","sign_in_account_sign_up_button":"로그인","sign_in_account_identity_warning":"디지털 아이디 코드는 디지털 아이디만 복구할 수 있습니다. 이 디지털 아이디가 서명하고 보낸 소셜 정보를 암호화하고 해독할 수 있습니다.","sign_in_account_private_key_placeholder":"개인 키 입력하기","sign_in_account_private_key_error":"잘못된 아이디 코드","sign_in_account_private_key_persona_not_found":"페르소나를 찾을 수 없습니다.","sign_in_account_private_key_warning":"디지털 아이디 코드는 디지털 아이디만 복구할 수 있습니다. 이 디지털 아이디가 서명하고 보낸 소셜 정보를 암호화하고 해독할 수 있습니다.","sign_in_account_mnemonic_confirm_failed":"잘못된 아이덴티티","sign_in_account_cloud_backup_send_email_success":"인증 코드 이미 {{type}} 로 발송되었습니다. {{type}} 확인하세요.","sign_in_account_local_backup_warning":"로컬 백업은 로컬에 저장된 전체 데이터를 복구할 수 있습니다.","sign_in_account_local_backup_payment_password":"결재 비밀번호","sign_in_account_local_backup_file_drag":"클릭하거나 파일을 여기서 끌어들이세요","sign_in_account_cloud_backup_warning":"클라우드 백업은 데이터를 호스트하고 암호화합니다.","sign_in_account_cloud_backup_not_support":"지원하지 않는 데이터 백업","sign_in_account_cloud_send_verification_code_tip":"인증 코드 보내기","sign_in_account_cloud_backup_failed":"백업 복구 실패되었습니다. 다시 시도하세요.","sign_in_account_cloud_backup_email_or_phone_number":"이메일이나 휴대폰 번호","sign_in_account_cloud_backup_password":"비밀번호 백업","sign_in_account_cloud_restore_failed":"복구 실패","sign_in_account_cloud_backup_download_failed":"다운로드 백업 실패","sign_in_account_cloud_backup_decrypt_failed":"해독 실패, 비밀번호를 확인하세요","sign_in_account_cloud_backup_email_format_error":"이메일 주소가 잘못되었습니다.","sign_in_account_cloud_backup_phone_format_error":"전화번호가 잘못되었습니다.","sign_in_account_cloud_backup_synchronize_password_tip":"클라우드 비밀번호는 이미 성공적으로 승인되고 백업은 이미 업로드되었습니다. 백업 비밀번호를 통합하려면 클라우드 비밀번호를 로컬 백업 비밀번호로 동기화할지 여부를 확인하십시오.","cloud_backup":"클라우드 백업","wallets_transfer":"전송","wallets_assets":"자산","wallets_transfer_memo":"메모","wallets_transfer_amount":"수량","wallets_transfer_to_address":"받는 주소","wallets_transfer_error_amount_absence":"수액 입력","wallets_transfer_error_address_absence":"받는 주소 입력","wallets_transfer_error_contract":"NFT 컨트렉트를 선택하세요.","wallets_transfer_error_nft":"NFT 선택","wallets_transfer_error_invalid_address":"무효한 받는 주소","wallet_transfer_error_no_address_has_been_set_name":"수신자의 주소가 잘못되었습니다.","wallet_transfer_error_no_ens_support":"네트워크는 ENS를 지원하지 않습니다.","wallets_transfer_error_insufficient_balance":"{{symbol}} 잔액 부족","wallets_transfer_error_same_address_with_current_account":"받는 주소는 발송 주소와 동일합니다. 다시 확인해 주세요.","wallets_transfer_error_is_contract_address":"받는 주소는 컨트랙트 주소입니다. 다시 확인해 주세요.","wallets_transfer_send":"발송","wallets_transfer_memo_placeholder":"옵셔널 메시지","wallets_transfer_contract":"컨트랙트","wallets_transfer_contract_placeholder":"NFT 컨트렉트를 선택하세요.","wallets_swap":"스왑","wallets_red_packet":"레드 패킷","wallets_sell":"매도","wallets_history":"역사 기록","settings":"설정","gas_fee":"거래 수수료","transfer_cost":"Cost {{gasFee}} {{symbol}} ≈ ${{usd}}","done":"완료","labs":"Mask Labs","wallet_transactions_pending":"대기중","wallet_gas_fee_settings_low":"낮음","wallet_gas_fee_settings_medium":"보통","wallet_gas_fee_settings_high":"높음","wallets_startup_create":"새로운 월렛 생성","wallets_startup_create_desc":"Mask 월렛은 ETH, BSC, Polygon/Matic 네트워크를 지원합니다.","wallets_startup_create_action":"만들기","wallets_startup_import":"월렛 불러오기","wallets_startup_import_desc":"Mask 월렛은 개인키, JSON.File, 니모닉 단어를 지원합니다.","wallets_startup_import_action":"불러오기","wallets_startup_connect":"플러그인 월렛 연결하기","wallets_startup_connect_desc":"Mask network는 Metamask, WalletConnect를 지원합니다.","wallets_startup_connect_action":"연결","wallets_connect_wallet_metamask":"MetaMask","wallets_connect_wallet_connect":"월렛 연결하기","wallets_connect_wallet_polka":"Polkadot 월렛","wallets_create_wallet_input_placeholder":"월렛 이름","wallets_create_successfully_title":"성공","wallets_create_successfully_tips":"월렛을 성공적으로 만들었습니다.","wallets_create_successfully_unlock":"월렛 언락","wallets_create_wallet_alert":"Mask Network는 무료하는 오픈 소스 클라이언트 사이드 인터페이스입니다. Mask Network 를 통해 키와 펀드의 지배권을 보유하면서 블록체인과 상호작용을 할 수 있습니다. Mask Network는 뱅크나 거래소가 아니고 당신의 개인키, 펀드, 정보를 수집하지 않어서 계정 액세스, 개인키 복구, 비밀번호 초기화, 거래 리버스 등을 하지 못합니다.","wallets_wallet_connect_title":"WalletConnect와 호환성이 있는 월렛으로 QR 코드를 스칸하세요.","wallets_wallet_mnemonic":"니모닉","wallets_wallet_json_file":"로컬 백업","wallets_wallet_private_key":"개인 키","wallets_import_wallet_tabs":"월렛 불러오기","wallets_import_wallet_password_placeholder":"월렛 비밀번호","wallets_import_wallet_cancel":"취소","wallets_import_wallet_import":"불러오기","wallets_create_wallet_tabs":"월렛 탭 만들기","wallets_create_wallet_refresh":"새로고침","wallets_create_wallet_remember_later":"나중에 기억하기","wallets_create_wallet_verification":"인증","wallets_collectible_address":"수집품 주소","wallets_collectible_token_id":"토큰 ID","wallets_collectible_field_contract_require":"수집품 주소가 필요합니다","wallets_collectible_field_token_id_require":"토큰 아이디가 필요합니다.","wallets_collectible_load_end":"로드 완료","wallets_balance":"잔액","wallets_balance_all_chain":"모든 체인","wallets_balance_Send":"발송","wallets_balance_Buy":"매수","wallets_balance_Swap":"스왑","wallets_balance_Receive":"받기","wallets_assets_token":"토큰","wallets_assets_token_sent_not_connect_tip":"{{chainName}} 에 연결되지 않습니다.","wallets_assets_token_sent_switch_network_tip":"전환하기","wallets_assets_investment":"투자","wallets_assets_collectibles":"수집품","wallets_assets_custom_token":"맞춤형 토큰","wallets_assets_custom_collectible":"맞춤형 수집품","wallets_assets_asset":"자산","wallets_assets_balance":"잔액","wallets_assets_price":"가격","wallets_assets_value":"값","wallets_assets_operation":"운영","wallets_address":"월렛 주소","wallets_receive_tips":"QR 코드를 스칸하여 {{chainName}} 자산을 전환하기","wallets_add_collectible":"수집품 추가","wallets_incorrect_address":"잘못된 컨트렉트 주소","wallets_collectible_been_added":"이미 추가된 수집품입니다.","wallets_collectible_error_not_exist":"해당 수집품은 존재하지 않거나 유저님의 것이 아닙니다.","wallets_collectible_contract_is_empty":"켄트랙트를 선택하세요","wallets_collectible_token_id_is_empty":"토큰을 선택하세요","wallets_collectible_add":"추가","wallets_add_token":"토큰 추가","wallets_token_been_added":"이미 추가된 토큰입니다.","wallets_token_symbol_tips":"기호는 11자 이하여야 합니다.","wallets_token_decimals_tips":"소수점은 0 이상이어야 하며 18을 넘지 않아야 합니다.","wallets_add_token_contract_address":"토큰 컨트랙트 주소","wallets_add_token_symbol":"토큰 기호","wallets_add_token_decimals":"소숫점 정밀도","wallets_add_token_cancel":"취소","wallets_add_token_next":"다음","wallets_empty_tokens_tip":"자산이 없습니다. 토큰을 추가하세요.","wallets_empty_collectible_tip":"수집품이 없습니다. 수집품을 추가하세요.","wallets_address_copied":"주소가 복사되었습니다","wallets_address_copy":"복사","wallets_history_types":"유형","wallets_history_value":"값","wallets_history_time":"시간","wallets_history_receiver":"받는 사람","wallets_empty_history_tips":"거래 내역이 없습니다","wallets_loading_token":"토큰 로딩","personas_setup_connect_tips":"유저님의 {{type}} 계정을 연결하세요.","personas_setup_tip":"페르소나를 만들거나 복구하세요.","personas_setup_connect":"연결","personas_name_maximum_tips":"최대 길이는 {{length}} 자입니다.","personas_name_existed":"이미 존재된 페르소나입니다","personas_rename_placeholder":"페르소나 이름","personas_confirm":"확인","personas_cancel":"취소","personas_export_persona":"페르소나 수출","personas_export_persona_copy":"복사","personas_export_persona_copy_success":"복사됨","personas_export_persona_copy_failed":"복사 실패","personas_export_persona_confirm_password_tip":"비밀번호가 아직 설정되지 않습니다. 개인 키 수출하려면 백업 비밀번호는 먼저 설정해야 합니다.","personas_export_private":"개인 키 수출","personas_export_private_key_tip":"개인키만 수출이 가능합니다. 다른 데이터 수출할 수 없습니다.","personas_delete_confirm_tips":"페르소나 {{nickname}} 를 삭제되는 것을 확인하시고 비밀번호를 입력하세요.","personas_delete_dialog_title":"페르소나 삭제","personas_edit_dialog_title":"페르소나 편집","personas_edit":"편집","personas_delete":"삭제","personas_logout":"로그아웃","personas_logout_confirm_password_tip":"비밀번호가 아직 설정되지 않습니다. 페르소나에 로그아웃하려면 백업 비밀번호는 먼저 설정해야 합니다.","personas_add_persona":"페르소나 추가","personas_back_up":"백업","personas_connect_to":"{{internalName}} 연결하기","personas_disconnect":"연결 끊기","personas_disconnect_warning":"{{userId}} 의 {{network}} 계정 연결을 해제하시겠습니까? 연결이 끊긴 후 이 계정은 더 이상 Mask Network를 사용하여 정보를 해독하고 암호화할 수 없습니다.","personas_logout_warning":"로그아웃 후, 연결된 소셜 계정은 더 이상 암호화하거나 해독할 수 없습나다. 계정을 다시 이용하려면 아이덴티티, 개인 키, 로컬이나 클라우드 백업으로 복원할 수 있습니다.","personas_add":"추가","personas_upload_avatar":"아바타 업로드","personas_rename":"이름 바꾸기","personas_invite_post":"@{{identifier}} 안녕하세요. 암호화된 게시글을 보낼 수 있기를 위해 Mask 다운로드하세요. #mask_io install http://mask.io","personas_empty_contact_tips":"연락처에서 Mask Network 를 설치된 자가 없습니다. 친구를 초대하여 {{name}} 다운로드하세요.","personas_contacts_name":"이름","personas_contacts_operation":"조작","personas_contacts_invite":"초대","personas_post_is_empty":"작성된 게시글이 없습니다.","personas_post_create":"게시글 작성하기","settings_general":"일반","settings_backup_recovery":"백업 맟 복원","settings_local_backup":"로컬 백업","settings_cloud_backup":"클라우드 백업","settings_appearance_default":"시스템 따라 설정하기","settings_appearance_light":"라이트","settings_appearance_dark":"다크","settings_backup_preview_account":"계정","settings_backup_preview_personas":"페르소나","settings_backup_preview_associated_account":"관련 계정","settings_backup_preview_posts":"암호화된 게시물","settings_backup_preview_contacts":"연락처","settings_backup_preview_wallets":"로컬 월렛","settings_backup_preview_created_at":"백업 시간","settings_language_title":"언어","settings_language_desc":"이용하고 싶은 언어를 선택하세요","settings_language_auto":"시스템에 따라 설정","settings_appearance_title":"화면","settings_appearance_desc":"이용하고 싶은 테마를 선택하세요","settings_data_source_title":"데이터 소스","settings_data_source_desc":"다른 플랫폼에서 트렌딩 데이터 가져오기","settings_sync_with_mobile_title":"모바일과 싱크하기","settings_sync_with_mobile_desc":"모바일 디바이스와 계정과 정보를 싱크할 수 있습니다. Mask Network 모바일 앱을 켜고 설정에서 플러그인 싱크를 탭하세요.","settings_global_backup_title":"글로벌 백업","settings_global_backup_desc":"로컬 백업과 클라우드 백업을 제공합니다.","settings_global_backup_last":"가장 최근 백업은 {{backupAt}} 에서 수행되었습니다. 백업 방법: {{backupMethod}}.","settings_restore_database_title":"데이터베이스 복원","settings_restore_database_desc":"이전의 데이터베이스 백업에서 복원하기","settings_email_title":"이메일","settings_email_desc":"이메일을 연동하세요","settings_change_password_title":"비밀번호 백업","settings_change_password_desc":"백업 비밀번호 변경","settings_change_password_not_set":"비밀번호 백업이 설정되지 않습니다.","settings_phone_number_title":"전화번호","settings_phone_number_desc":"전화번호를 연동해주세요.","settings_password_rule":"백업 암호는 8자에서 20자 사이여야 하며 숫자, 대문자, 소문자 및 특수 문자를 포함해야 합니다.","settings_button_cancel":"취소","settings_button_confirm":"확인","settings_button_sync":"동기화","settings_button_backup":"백업","settings_button_recovery":"복구","settings_button_setup":"설정","settings_button_change":"변경","settings_dialogs_bind_email_or_phone":"이메일이나 전화번호를 연동해주세요.","settings_dialogs_verify_backup_password":"백업 비밀번호 인증","settings_dialogs_setting_backup_password":"백업 비밀번호 설정","settings_dialogs_change_backup_password":"백업 비밀번호 변경","settings_dialogs_setting_email":"이메일 설정","settings_dialogs_change_email":"이메일 변경","settings_dialogs_setting_phone_number":"전화번호 추가","settings_dialogs_change_phone_number":"전화 번호 변경","settings_dialogs_incorrect_code":"인증 코드가 잘못되었습니다","settings_dialogs_incorrect_email":"이메일 주소가 잘못되었습니다.","settings_dialogs_incorrect_phone":"전화번호가 잘못되었습니다.","settings_dialogs_incorrect_password":"잘못된 비밀번호.","settings_dialogs_inconsistency_password":"비밀번호 일치하지 않습니다.","settings_dialogs_current_email_validation":"현재 인증 이메일","settings_dialogs_change_email_validation":"이메일을 변경하기 위해 현재 이메일 주소를 인증해야 합니다.","settings_dialogs_current_phone_validation":"현재 인증 전화번호","settings_dialogs_change_phone_validation":"전화번호를 변경하기 위해 현재 전화번호를 인증해야 합니다.","settings_dialogs_backup_to_cloud":"클라우드 백업","settings_dialogs_merge_to_local_data":"로컬 데이터로 합병하기","settings_dialogs_backup_action_desc":"클라우드 백업이 이미 존재되어 있습니다. 클라우드 백업을 로컬에 합병하거나 로컬 데이터를 클라우드에 업로드하기를 선택하세요.","settings_dialogs_backup_to_cloud_action":"이 옵션은 기존 클라우드 백업을 로컬 데이터로 덮어씁니다.","settings_dialogs_backup_merge_cloud":"기존 클라우드 백업을 해독하려면 비밀번호를 입력해야 합니다. 기존 클라우드 백업과 로컬 데이터가 결합되고 암호화되어 클라우드에 업로드됩니다.","settings_dialogs_backup_merged_tip":"클라우드 백업은 이미 로컬로 다운받았습니다. 백업을 완성하려면 백업 버튼을 누르고 오든 테이터를 클라우드로 백업하세요.","settings_label_backup_password":"비밀번호 백업","settings_label_new_backup_password":"새로운 비밀번호 백업","settings_label_backup_password_cloud":"클라우드 파일 백업 비밀번호","settings_label_payment_password":"결재 비밀번호","settings_label_re_enter":"다시 입력","settings_alert_password_set":"백업 비밀번호 설정","settings_alert_password_updated":"백업 비밀번호 업데이트","settings_alert_email_set":"이메일 설정","settings_alert_email_updated":"이메일 업데이트되었습니다","settings_alert_phone_number_set":"전화번호 설정","settings_alert_phone_number_updated":"전화번호가 업데이트되었습니다","settings_alert_backup_fail":"백업 실패","settings_alert_backup_success":"데이터가 이미 백업되었습니다.","settings_alert_validation_code_sent":"인증 코드가 발송되었습니다","settings_alert_merge_success":"클라우드 백업과 로컬 데이터를 이미 합병되었습니다.","labs_file_service":"파일 서비스","labs_file_service_desc":"탈중앙화 파일 저장","labs_markets":"마켓","labs_markets_desc":"암호 친구에게 디지털 자산을 보내기","labs_red_packet":"레드 패킷","labs_red_packet_desc":"축복을 암호화된 레드 패킷으로 포장하고 친구들에게 보내세요.","labs_swap":"스왑","labs_swap_desc":"추가 비용과 제한 없이 DEX로 토큰을 구매하기","labs_transak":"Transak","labs_transak_desc":"Transak 지원으로 60+ 국가에서 암호화폐 구매하기","labs_snapshot":"Snapshot","labs_snapshot_desc":"소셜 미디어에서 직접 제안을 표시하고 투표하기","labs_market_trend":"마켓 추세","labs_market_trend_desc":"토큰 정보, 가격 차트, 거래 정보을 직접 소셜 미디어에서 표시하기","labs_collectibles":"Collectibles","labs_collectibles_desc":"Opensea and Rarible의 지정 정보를 포시하고 소셜미디어에서 경매하기","labs_gitcoin":"Gitcoin","labs_gitcoin_desc":"Gitcoin의 지정 정보를 표시하고 소셜미디어에서 프로젝트에게 적접 기부하기","labs_valuables":"가치","labs_valuables_desc":"크리에이터가 서명한 트윗을 구입 및 판매하기","labs_dhedge":"DHEDGE","labs_dhedge_desc":"이더리움의 탈중앙화 헤지 펀드","labs_mask_box":"MaskBox","labs_mask_box_desc":"NFT 미스터리박스를 출시하는 멀티체인 탈중앙화 플랫폼","labs_loot_man":"LootMan by MintTeam","labs_loot_man_desc":"NFT의 무한한 가능성을 탐색. 소셜미디어에서 보유하는 NFT를 전시하는 혁신적인 방식","labs_good_ghosting":"GoodGhosting","labs_good_ghosting_desc":"트위터에서 매주 저축 습관을 기른다.","labs_pool_together":"PoolTogether","labs_pool_together_desc":"트위터에서 무손실 로또에 참여한다.","labs_settings_market_trend":"마켓 추세 설정","labs_settings_market_trend_source":"디폴트 추세 소스","labs_settings_swap":"스왑 설정","labs_settings_swap_network":"{{network}} 네트워크 디폴트 추세 소스","labs_pets":"LootMan by MintTeam","labs_pets_desc":"NFT의 무한한 가능성을 탐색. 소셜미디어에서 보유하는 NFT를 전시하는 혁신적인 방식","labs_setup_tutorial":"튜토리얼 설정","labs_do_not_show_again":"다시 보이지 않기","labs_cryptoartai":"CRYPTOART.AI","labs_cryptoartai_desc":"암호화 디지털 예술 연결.","dashboard_mobile_test":"모바일 테스트 참여","dashboard_source_code":"소스 코드","privacy_policy":"개인정보처리방침","version_of_stable":"버전 {{version}}","version_of_unstable":"버전 {{version}}-{{build}}-{{hash}}","register_restore_backups":"백업 복원","register_restore_backups_cancel":"취소","register_restore_backups_confirm":"복원","register_restore_backups_hint":"클릭하거나 파일을 여기서 끌어들이세요","register_restore_backups_file":"파일","register_restore_backups_text":"텍스트","register_restore_backups_tabs":"백업 복원 탭","create_wallet_mnemonic_tip":"월렛의 자산을 보호하기 위해 니모닉 단어를 잘 저장하고 잊지 마세요.","create_wallet_password_uppercase_tip":"대문자 하나가 포함되어야 합니다","create_wallet_password_lowercase_tip":"소문자 하나가 포함되어야 합니다","create_wallet_password_number_tip":"숫자 하나가 포함되어야 합니다","create_wallet_password_special_tip":"특수문자 하나가 포함되어야 합니다","create_wallet_password_satisfied_requirement":"비밀번호가 요구 사항을 충족하지 않습니다.","create_wallet_password_match_tip":"비밀번호가 일치하지 않습니다","create_wallet_password_length_error":"비밀번호 길이가 잘못되었습니다.","create_wallet_name_placeholder":"1-12 자 입력하세요","create_wallet_form_title":"월렛 만들기","create_wallet_wallet_name":"월렛 이름","create_wallet_payment_password":"결재 비밀번호","create_wallet_re_enter_payment_password":"결재 비밀번호 다시 설정","create_wallet_payment_password_tip":"백업 암호는 8자에서 20자 사이여야 하며 숫자, 대문자, 소문자 및 특수 문자를 포함해야 합니다.","create_wallet_your_wallet_address":"월렛 주소","create_wallet_done":"완료","create_wallet_verify_words":"이모닉 단어 인증","create_wallet_mnemonic_word_not_match":"니모닉 단어가 불일치합니다"}'); + +/***/ }), + +/***/ 59641: +/***/ ((module) => { + +module.exports = JSON.parse('{"about":"crwdns1619:0crwdne1619:0","wallets":"crwdns1621:0crwdne1621:0","personas":"crwdns1623:0crwdne1623:0","persona":"crwdns7557:0crwdne7557:0","refresh":"crwdns7559:0crwdne7559:0","next":"crwdns7561:0crwdne7561:0","cancel":"crwdns7563:0crwdne7563:0","back":"crwdns7565:0crwdne7565:0","agree":"crwdns7567:0crwdne7567:0","confirm":"crwdns7569:0crwdne7569:0","verify":"crwdns7571:0crwdne7571:0","go_back":"crwdns7573:0crwdne7573:0","connect":"crwdns7575:0crwdne7575:0","searching":"crwdns7863:0crwdne7863:0","restore":"crwdns7835:0crwdne7835:0","save":"crwdns7955:0crwdne7955:0","manage":"crwdns8027:0crwdne8027:0","recovery":"crwdns7995:0crwdne7995:0","successful":"crwdns8077:0crwdne8077:0","close":"crwdns8173:0crwdne8173:0","send":"crwdns8203:0crwdne8203:0","resend":"crwdns8205:0crwdne8205:0","print":"crwdns13039:0crwdne13039:0","download":"crwdns13041:0crwdne13041:0","print_preview":"crwdns13043:0crwdne13043:0","download_preview":"crwdns13045:0crwdne13045:0","confirm_password":"crwdns8175:0crwdne8175:0","about_dialog_license":"crwdns1625:0crwdne1625:0","footer_bounty_list":"crwdns1627:0crwdne1627:0","about_dialog_source_code":"crwdns1629:0crwdne1629:0","about_dialog_feedback":"crwdns1631:0crwdne1631:0","about_dialog_touch":"crwdns1633:0crwdne1633:0","about_dialog_description":"crwdns1635:0crwdne1635:0","setup_page_title":"crwdns1637:0crwdne1637:0","setup_page_description":"crwdns1639:0crwdne1639:0","setup_page_create_account_title":"crwdns1641:0crwdne1641:0","setup_page_create_account_subtitle":"crwdns1643:0crwdne1643:0","setup_page_create_account_button":"crwdns1645:0crwdne1645:0","setup_page_create_restore_title":"crwdns1647:0crwdne1647:0","setup_page_create_restore_subtitle":"crwdns1649:0crwdne1649:0","setup_page_create_restore_button":"crwdns1651:0crwdne1651:0","create_account_mask_id":"crwdns13047:0crwdne13047:0","create_account_private_key":"crwdns13049:0crwdne13049:0","create_account_identity_id":"crwdns13051:0crwdne13051:0","create_account_identity_title":"crwdns7577:0crwdne7577:0","create_account_sign_in_button":"crwdns7579:0crwdne7579:0","create_account_persona_exists":"crwdns13053:0crwdne13053:0","create_account_mnemonic_download_or_print":"crwdns13055:0crwdne13055:0","create_account_preview_tip":"crwdns13057:0crwdne13057:0","create_account_mnemonic_confirm_failed":"crwdns7583:0crwdne7583:0","create_account_connect_social_media_button":"crwdns7585:0crwdne7585:0","create_account_connect_social_media":"crwdns7587:0{{type}}crwdne7587:0","create_account_persona_title":"crwdns7589:0crwdne7589:0","create_account_persona_subtitle":"crwdns7591:0crwdne7591:0","create_account_persona_successfully":"crwdns7593:0crwdne7593:0","create_account_connect_social_media_title":"crwdns7595:0crwdne7595:0","create_account_failed":"crwdns7597:0crwdne7597:0","sign_in_account_identity_title":"crwdns7599:0crwdne7599:0","sign_in_account_tab_identity":"crwdns10039:0crwdne10039:0","sign_in_account_sign_up_button":"crwdns7601:0crwdne7601:0","sign_in_account_identity_warning":"crwdns7603:0crwdne7603:0","sign_in_account_private_key_placeholder":"crwdns7605:0crwdne7605:0","sign_in_account_private_key_error":"crwdns7607:0crwdne7607:0","sign_in_account_private_key_persona_not_found":"crwdns7609:0crwdne7609:0","sign_in_account_private_key_warning":"crwdns7611:0crwdne7611:0","sign_in_account_mnemonic_confirm_failed":"crwdns8191:0crwdne8191:0","sign_in_account_cloud_backup_send_email_success":"crwdns8079:0{{type}}crwdnd8079:0{{type}}crwdne8079:0","sign_in_account_local_backup_warning":"crwdns7613:0crwdne7613:0","sign_in_account_local_backup_payment_password":"crwdns9329:0crwdne9329:0","sign_in_account_local_backup_file_drag":"crwdns7615:0crwdne7615:0","sign_in_account_cloud_backup_warning":"crwdns7617:0crwdne7617:0","sign_in_account_cloud_backup_not_support":"crwdns8081:0crwdne8081:0","sign_in_account_cloud_send_verification_code_tip":"crwdns8193:0crwdne8193:0","sign_in_account_cloud_backup_failed":"crwdns8083:0crwdne8083:0","sign_in_account_cloud_backup_email_or_phone_number":"crwdns7619:0crwdne7619:0","sign_in_account_cloud_backup_password":"crwdns7621:0crwdne7621:0","sign_in_account_cloud_restore_failed":"crwdns7623:0crwdne7623:0","sign_in_account_cloud_backup_download_failed":"crwdns7625:0crwdne7625:0","sign_in_account_cloud_backup_decrypt_failed":"crwdns7627:0crwdne7627:0","sign_in_account_cloud_backup_email_format_error":"crwdns8085:0crwdne8085:0","sign_in_account_cloud_backup_phone_format_error":"crwdns8087:0crwdne8087:0","sign_in_account_cloud_backup_synchronize_password_tip":"crwdns8089:0crwdne8089:0","cloud_backup":"crwdns7629:0crwdne7629:0","wallets_transfer":"crwdns1653:0crwdne1653:0","wallets_assets":"crwdns8003:0crwdne8003:0","wallets_transfer_memo":"crwdns8005:0crwdne8005:0","wallets_transfer_amount":"crwdns8007:0crwdne8007:0","wallets_transfer_to_address":"crwdns8009:0crwdne8009:0","wallets_transfer_error_amount_absence":"crwdns8011:0crwdne8011:0","wallets_transfer_error_address_absence":"crwdns8013:0crwdne8013:0","wallets_transfer_error_contract":"crwdns9331:0crwdne9331:0","wallets_transfer_error_nft":"crwdns9333:0crwdne9333:0","wallets_transfer_error_invalid_address":"crwdns8015:0crwdne8015:0","wallet_transfer_error_no_address_has_been_set_name":"crwdns10429:0crwdne10429:0","wallet_transfer_error_no_ens_support":"crwdns10431:0crwdne10431:0","wallets_transfer_error_insufficient_balance":"crwdns8017:0{{symbol}}crwdne8017:0","wallets_transfer_error_same_address_with_current_account":"crwdns10617:0crwdne10617:0","wallets_transfer_error_is_contract_address":"crwdns10619:0crwdne10619:0","wallets_transfer_send":"crwdns8019:0crwdne8019:0","wallets_transfer_memo_placeholder":"crwdns8021:0crwdne8021:0","wallets_transfer_contract":"crwdns9335:0crwdne9335:0","wallets_transfer_contract_placeholder":"crwdns9337:0crwdne9337:0","wallets_swap":"crwdns1655:0crwdne1655:0","wallets_red_packet":"crwdns1657:0crwdne1657:0","wallets_sell":"crwdns1659:0crwdne1659:0","wallets_history":"crwdns1661:0crwdne1661:0","settings":"crwdns1663:0crwdne1663:0","gas_fee":"crwdns8989:0crwdne8989:0","transfer_cost":"crwdns8991:0{{gasFee}}crwdnd8991:0{{symbol}}crwdnd8991:0{{usd}}crwdne8991:0","done":"crwdns1665:0crwdne1665:0","labs":"crwdns1667:0crwdne1667:0","wallet_transactions_pending":"crwdns7921:0crwdne7921:0","wallet_gas_fee_settings_low":"crwdns9015:0crwdne9015:0","wallet_gas_fee_settings_medium":"crwdns9017:0crwdne9017:0","wallet_gas_fee_settings_high":"crwdns9019:0crwdne9019:0","wallets_startup_create":"crwdns1669:0crwdne1669:0","wallets_startup_create_desc":"crwdns1671:0crwdne1671:0","wallets_startup_create_action":"crwdns1673:0crwdne1673:0","wallets_startup_import":"crwdns1675:0crwdne1675:0","wallets_startup_import_desc":"crwdns1677:0crwdne1677:0","wallets_startup_import_action":"crwdns1679:0crwdne1679:0","wallets_startup_connect":"crwdns1681:0crwdne1681:0","wallets_startup_connect_desc":"crwdns1683:0crwdne1683:0","wallets_startup_connect_action":"crwdns1685:0crwdne1685:0","wallets_connect_wallet_metamask":"crwdns1687:0crwdne1687:0","wallets_connect_wallet_connect":"crwdns1689:0crwdne1689:0","wallets_connect_wallet_polka":"crwdns1691:0crwdne1691:0","wallets_create_wallet_input_placeholder":"crwdns1693:0crwdne1693:0","wallets_create_successfully_title":"crwdns1695:0crwdne1695:0","wallets_create_successfully_tips":"crwdns1697:0crwdne1697:0","wallets_create_successfully_unlock":"crwdns1699:0crwdne1699:0","wallets_create_wallet_alert":"crwdns1701:0crwdne1701:0","wallets_wallet_connect_title":"crwdns1703:0crwdne1703:0","wallets_wallet_mnemonic":"crwdns1705:0crwdne1705:0","wallets_wallet_json_file":"crwdns1707:0crwdne1707:0","wallets_wallet_private_key":"crwdns1709:0crwdne1709:0","wallets_import_wallet_tabs":"crwdns1711:0crwdne1711:0","wallets_import_wallet_password_placeholder":"crwdns1713:0crwdne1713:0","wallets_import_wallet_cancel":"crwdns1715:0crwdne1715:0","wallets_import_wallet_import":"crwdns1717:0crwdne1717:0","wallets_create_wallet_tabs":"crwdns1719:0crwdne1719:0","wallets_create_wallet_refresh":"crwdns1721:0crwdne1721:0","wallets_create_wallet_remember_later":"crwdns1723:0crwdne1723:0","wallets_create_wallet_verification":"crwdns1725:0crwdne1725:0","wallets_collectible_address":"crwdns1727:0crwdne1727:0","wallets_collectible_token_id":"crwdns7951:0crwdne7951:0","wallets_collectible_field_contract_require":"crwdns9021:0crwdne9021:0","wallets_collectible_field_token_id_require":"crwdns9023:0crwdne9023:0","wallets_collectible_load_end":"crwdns9339:0crwdne9339:0","wallets_balance":"crwdns1729:0crwdne1729:0","wallets_balance_all_chain":"crwdns9341:0crwdne9341:0","wallets_balance_Send":"crwdns1731:0crwdne1731:0","wallets_balance_Buy":"crwdns1733:0crwdne1733:0","wallets_balance_Swap":"crwdns1735:0crwdne1735:0","wallets_balance_Receive":"crwdns1737:0crwdne1737:0","wallets_assets_token":"crwdns1739:0crwdne1739:0","wallets_assets_token_sent_not_connect_tip":"crwdns9343:0{{chainName}}crwdne9343:0","wallets_assets_token_sent_switch_network_tip":"crwdns9345:0crwdne9345:0","wallets_assets_investment":"crwdns1741:0crwdne1741:0","wallets_assets_collectibles":"crwdns8171:0crwdne8171:0","wallets_assets_custom_token":"crwdns1745:0crwdne1745:0","wallets_assets_custom_collectible":"crwdns1747:0crwdne1747:0","wallets_assets_asset":"crwdns1749:0crwdne1749:0","wallets_assets_balance":"crwdns1751:0crwdne1751:0","wallets_assets_price":"crwdns1753:0crwdne1753:0","wallets_assets_value":"crwdns1755:0crwdne1755:0","wallets_assets_operation":"crwdns1757:0crwdne1757:0","wallets_address":"crwdns1759:0crwdne1759:0","wallets_receive_tips":"crwdns1761:0{{chainName}}crwdne1761:0","wallets_add_collectible":"crwdns1763:0crwdne1763:0","wallets_incorrect_address":"crwdns1765:0crwdne1765:0","wallets_collectible_been_added":"crwdns1767:0crwdne1767:0","wallets_collectible_error_not_exist":"crwdns7953:0crwdne7953:0","wallets_collectible_contract_is_empty":"crwdns9347:0crwdne9347:0","wallets_collectible_token_id_is_empty":"crwdns9349:0crwdne9349:0","wallets_collectible_add":"crwdns1769:0crwdne1769:0","wallets_add_token":"crwdns1771:0crwdne1771:0","wallets_token_been_added":"crwdns1773:0crwdne1773:0","wallets_token_symbol_tips":"crwdns1775:0crwdne1775:0","wallets_token_decimals_tips":"crwdns1777:0crwdne1777:0","wallets_add_token_contract_address":"crwdns1779:0crwdne1779:0","wallets_add_token_symbol":"crwdns1781:0crwdne1781:0","wallets_add_token_decimals":"crwdns1783:0crwdne1783:0","wallets_add_token_cancel":"crwdns1785:0crwdne1785:0","wallets_add_token_next":"crwdns1787:0crwdne1787:0","wallets_empty_tokens_tip":"crwdns1789:0crwdne1789:0","wallets_empty_collectible_tip":"crwdns1791:0crwdne1791:0","wallets_reload":"crwdns17240:0crwdne17240:0","wallets_address_copied":"crwdns1793:0crwdne1793:0","public_key_copied":"crwdns16574:0crwdne16574:0","wallets_address_copy":"crwdns1795:0crwdne1795:0","wallets_history_types":"crwdns1797:0crwdne1797:0","wallets_history_value":"crwdns1799:0crwdne1799:0","wallets_history_time":"crwdns1801:0crwdne1801:0","wallets_history_receiver":"crwdns1803:0crwdne1803:0","wallets_empty_history_tips":"crwdns1805:0crwdne1805:0","wallets_loading_token":"crwdns1807:0crwdne1807:0","personas_setup_connect_tips":"crwdns1809:0{{type}}crwdne1809:0","personas_setup_tip":"crwdns8091:0crwdne8091:0","personas_setup_connect":"crwdns1811:0crwdne1811:0","personas_name_maximum_tips":"crwdns1813:0{{length}}crwdne1813:0","personas_name_existed":"crwdns7965:0crwdne7965:0","personas_rename_placeholder":"crwdns1815:0crwdne1815:0","personas_confirm":"crwdns1817:0crwdne1817:0","personas_cancel":"crwdns1819:0crwdne1819:0","personas_export_persona":"crwdns7939:0crwdne7939:0","personas_export_persona_copy":"crwdns7941:0crwdne7941:0","personas_export_persona_copy_success":"crwdns7943:0crwdne7943:0","personas_export_persona_copy_failed":"crwdns7945:0crwdne7945:0","personas_export_persona_confirm_password_tip":"crwdns8177:0crwdne8177:0","personas_export_private":"crwdns7947:0crwdne7947:0","personas_export_private_key_tip":"crwdns7949:0crwdne7949:0","personas_delete_confirm_tips":"crwdns1821:0{{nickname}}crwdne1821:0","personas_delete_dialog_title":"crwdns1823:0crwdne1823:0","personas_edit_dialog_title":"crwdns1825:0crwdne1825:0","personas_edit":"crwdns1827:0crwdne1827:0","personas_delete":"crwdns1829:0crwdne1829:0","personas_logout":"crwdns8179:0crwdne8179:0","personas_logout_confirm_password_tip":"crwdns8181:0crwdne8181:0","personas_add_persona":"crwdns1831:0crwdne1831:0","personas_back_up":"crwdns1833:0crwdne1833:0","personas_connect_to":"crwdns1835:0{{internalName}}crwdne1835:0","personas_disconnect":"crwdns1837:0crwdne1837:0","personas_disconnect_raw":"crwdns14714:0crwdne14714:0","personas_disconnect_warning":"crwdns7997:0crwdne7997:0","personas_logout_warning":"crwdns8183:0crwdne8183:0","personas_add":"crwdns7957:0crwdne7957:0","personas_upload_avatar":"crwdns7959:0crwdne7959:0","personas_rename":"crwdns1839:0crwdne1839:0","personas_invite_post":"crwdns7903:0{{identifier}}crwdne7903:0","personas_empty_contact_tips":"crwdns7905:0{{name}}crwdne7905:0","personas_contacts_name":"crwdns7907:0crwdne7907:0","personas_contacts_operation":"crwdns7909:0crwdne7909:0","personas_contacts_invite":"crwdns7911:0crwdne7911:0","personas_post_is_empty":"crwdns7979:0crwdne7979:0","personas_post_create":"crwdns7981:0crwdne7981:0","settings_general":"crwdns1841:0crwdne1841:0","settings_backup_recovery":"crwdns7631:0crwdne7631:0","settings_local_backup":"crwdns7865:0crwdne7865:0","settings_cloud_backup":"crwdns7867:0crwdne7867:0","settings_appearance_default":"crwdns7633:0crwdne7633:0","settings_appearance_light":"crwdns7635:0crwdne7635:0","settings_appearance_dark":"crwdns7637:0crwdne7637:0","settings_backup_preview_account":"crwdns7639:0crwdne7639:0","settings_backup_preview_personas":"crwdns7641:0crwdne7641:0","settings_backup_preview_associated_account":"crwdns7643:0crwdne7643:0","settings_backup_preview_posts":"crwdns7645:0crwdne7645:0","settings_backup_preview_contacts":"crwdns7647:0crwdne7647:0","settings_backup_preview_file":"crwdns17256:0crwdne17256:0","settings_backup_preview_wallets":"crwdns7651:0crwdne7651:0","settings_backup_preview_created_at":"crwdns7653:0crwdne7653:0","settings_language_title":"crwdns1847:0crwdne1847:0","settings_language_desc":"crwdns1849:0crwdne1849:0","settings_language_auto":"crwdns3967:0crwdne3967:0","settings_appearance_title":"crwdns1851:0crwdne1851:0","settings_appearance_desc":"crwdns1853:0crwdne1853:0","settings_data_source_title":"crwdns1855:0crwdne1855:0","settings_data_source_desc":"crwdns1857:0crwdne1857:0","settings_sync_with_mobile_title":"crwdns1859:0crwdne1859:0","settings_sync_with_mobile_desc":"crwdns1861:0crwdne1861:0","settings_global_backup_title":"crwdns1863:0crwdne1863:0","settings_global_backup_desc":"crwdns1865:0crwdne1865:0","settings_global_backup_last":"crwdns7869:0{{backupAt}}crwdnd7869:0{{backupMethod}}crwdne7869:0","settings_restore_database_title":"crwdns1867:0crwdne1867:0","settings_restore_database_desc":"crwdns1869:0crwdne1869:0","settings_email_title":"crwdns7967:0crwdne7967:0","settings_email_desc":"crwdns7969:0crwdne7969:0","settings_change_password_title":"crwdns7971:0crwdne7971:0","settings_change_password_desc":"crwdns7973:0crwdne7973:0","settings_change_password_not_set":"crwdns7975:0crwdne7975:0","settings_phone_number_title":"crwdns7659:0crwdne7659:0","settings_phone_number_desc":"crwdns7661:0crwdne7661:0","settings_password_rule":"crwdns7665:0crwdne7665:0","settings_button_cancel":"crwdns7977:0crwdne7977:0","settings_button_confirm":"crwdns7669:0crwdne7669:0","settings_button_sync":"crwdns7671:0crwdne7671:0","settings_button_backup":"crwdns7673:0crwdne7673:0","settings_button_recovery":"crwdns7675:0crwdne7675:0","settings_button_setup":"crwdns9495:0crwdne9495:0","settings_button_change":"crwdns7679:0crwdne7679:0","settings_dialogs_bind_email_or_phone":"crwdns7871:0crwdne7871:0","settings_dialogs_verify_backup_password":"crwdns7683:0crwdne7683:0","settings_dialogs_setting_backup_password":"crwdns7685:0crwdne7685:0","settings_dialogs_change_backup_password":"crwdns7687:0crwdne7687:0","settings_dialogs_setting_email":"crwdns7689:0crwdne7689:0","settings_dialogs_change_email":"crwdns7691:0crwdne7691:0","settings_dialogs_setting_phone_number":"crwdns7693:0crwdne7693:0","settings_dialogs_change_phone_number":"crwdns7695:0crwdne7695:0","settings_dialogs_incorrect_code":"crwdns7697:0crwdne7697:0","settings_dialogs_incorrect_email":"crwdns7699:0crwdne7699:0","settings_dialogs_incorrect_phone":"crwdns7701:0crwdne7701:0","settings_dialogs_incorrect_password":"crwdns7703:0crwdne7703:0","settings_dialogs_inconsistency_password":"crwdns7705:0crwdne7705:0","settings_dialogs_current_email_validation":"crwdns7707:0crwdne7707:0","settings_dialogs_change_email_validation":"crwdns8207:0crwdne8207:0","settings_dialogs_current_phone_validation":"crwdns7709:0crwdne7709:0","settings_dialogs_change_phone_validation":"crwdns8209:0crwdne8209:0","settings_dialogs_backup_to_cloud":"crwdns9027:0crwdne9027:0","settings_dialogs_merge_to_local_data":"crwdns7875:0crwdne7875:0","settings_dialogs_backup_action_desc":"crwdns7879:0crwdne7879:0","settings_dialogs_backup_to_cloud_action":"crwdns10601:0crwdne10601:0","settings_dialogs_backup_merge_cloud":"crwdns10603:0crwdne10603:0","settings_dialogs_backup_merged_tip":"crwdns9029:0crwdne9029:0","settings_label_backup_password":"crwdns7711:0crwdne7711:0","settings_label_new_backup_password":"crwdns7713:0crwdne7713:0","settings_label_backup_password_cloud":"crwdns9025:0crwdne9025:0","settings_label_payment_password":"crwdns7881:0crwdne7881:0","settings_label_re_enter":"crwdns7715:0crwdne7715:0","settings_alert_password_set":"crwdns7883:0crwdne7883:0","settings_alert_password_updated":"crwdns7885:0crwdne7885:0","settings_alert_email_set":"crwdns7887:0crwdne7887:0","settings_alert_email_updated":"crwdns7889:0crwdne7889:0","settings_alert_phone_number_set":"crwdns7891:0crwdne7891:0","settings_alert_phone_number_updated":"crwdns7893:0crwdne7893:0","settings_alert_backup_fail":"crwdns7895:0crwdne7895:0","settings_alert_backup_success":"crwdns7897:0crwdne7897:0","settings_alert_validation_code_sent":"crwdns7899:0crwdne7899:0","settings_alert_merge_success":"crwdns7901:0crwdne7901:0","labs_file_service":"crwdns1885:0crwdne1885:0","labs_file_service_desc":"crwdns1887:0crwdne1887:0","labs_markets":"crwdns1889:0crwdne1889:0","labs_markets_desc":"crwdns1891:0crwdne1891:0","labs_red_packet":"crwdns1893:0crwdne1893:0","labs_red_packet_desc":"crwdns1895:0crwdne1895:0","labs_swap":"crwdns1897:0crwdne1897:0","labs_swap_desc":"crwdns1899:0crwdne1899:0","labs_transak":"crwdns1901:0crwdne1901:0","labs_transak_desc":"crwdns1903:0crwdne1903:0","labs_savings":"crwdns13246:0crwdne13246:0","labs_savings_desc":"crwdns13248:0crwdne13248:0","labs_snapshot":"crwdns1905:0crwdne1905:0","labs_snapshot_desc":"crwdns1907:0crwdne1907:0","labs_market_trend":"crwdns1909:0crwdne1909:0","labs_market_trend_desc":"crwdns1911:0crwdne1911:0","labs_collectibles":"crwdns1913:0crwdne1913:0","labs_collectibles_desc":"crwdns1915:0crwdne1915:0","labs_gitcoin":"crwdns1917:0crwdne1917:0","labs_gitcoin_desc":"crwdns1919:0crwdne1919:0","labs_valuables":"crwdns1921:0crwdne1921:0","labs_valuables_desc":"crwdns1923:0crwdne1923:0","labs_dhedge":"crwdns1925:0crwdne1925:0","labs_dhedge_desc":"crwdns1927:0crwdne1927:0","labs_mask_box":"crwdns10323:0crwdne10323:0","labs_mask_box_desc":"crwdns10325:0crwdne10325:0","labs_loot_man":"crwdns10327:0crwdne10327:0","labs_loot_man_desc":"crwdns10329:0crwdne10329:0","labs_good_ghosting":"crwdns10331:0crwdne10331:0","labs_good_ghosting_desc":"crwdns10333:0crwdne10333:0","labs_pool_together":"crwdns10335:0crwdne10335:0","labs_pool_together_desc":"crwdns10337:0crwdne10337:0","labs_settings_market_trend":"crwdns1929:0crwdne1929:0","labs_settings_market_trend_source":"crwdns1931:0crwdne1931:0","labs_settings_swap":"crwdns1933:0crwdne1933:0","labs_settings_swap_network":"crwdns8195:0{{network}}crwdne8195:0","labs_pets":"crwdns9397:0crwdne9397:0","labs_pets_desc":"crwdns9399:0crwdne9399:0","labs_cyber_connect":"crwdns13316:0crwdne13316:0","labs_cyber_connect_desc":"crwdns13318:0crwdne13318:0","labs_setup_tutorial":"crwdns10339:0crwdne10339:0","labs_do_not_show_again":"crwdns10341:0crwdne10341:0","labs_cryptoartai":"crwdns10519:0crwdne10519:0","labs_cryptoartai_desc":"crwdns10521:0crwdne10521:0","labs_art_blocks":"crwdns14476:0crwdne14476:0","labs_art_blocks_desc":"crwdns14478:0crwdne14478:0","dashboard_mobile_test":"crwdns1941:0crwdne1941:0","dashboard_source_code":"crwdns1943:0crwdne1943:0","privacy_policy":"crwdns1945:0crwdne1945:0","version_of_stable":"crwdns1947:0{{version}}crwdne1947:0","version_of_unstable":"crwdns1949:0{{version}}crwdnd1949:0{{build}}crwdnd1949:0{{hash}}crwdne1949:0","register_restore_backups":"crwdns1951:0crwdne1951:0","register_restore_backups_cancel":"crwdns1953:0crwdne1953:0","register_restore_backups_confirm":"crwdns1955:0crwdne1955:0","register_restore_backups_hint":"crwdns1957:0crwdne1957:0","register_restore_backups_file":"crwdns1959:0crwdne1959:0","register_restore_backups_text":"crwdns1961:0crwdne1961:0","register_restore_backups_tabs":"crwdns1963:0crwdne1963:0","create_wallet_mnemonic_tip":"crwdns7725:0crwdne7725:0","create_wallet_password_uppercase_tip":"crwdns7727:0crwdne7727:0","create_wallet_password_lowercase_tip":"crwdns7729:0crwdne7729:0","create_wallet_password_number_tip":"crwdns7731:0crwdne7731:0","create_wallet_password_special_tip":"crwdns7733:0crwdne7733:0","create_wallet_password_satisfied_requirement":"crwdns9351:0crwdne9351:0","create_wallet_password_match_tip":"crwdns7735:0crwdne7735:0","create_wallet_password_length_error":"crwdns9353:0crwdne9353:0","create_wallet_name_placeholder":"crwdns7737:0crwdne7737:0","create_wallet_form_title":"crwdns7739:0crwdne7739:0","create_wallet_wallet_name":"crwdns7741:0crwdne7741:0","create_wallet_payment_password":"crwdns7743:0crwdne7743:0","create_wallet_re_enter_payment_password":"crwdns7745:0crwdne7745:0","create_wallet_payment_password_tip":"crwdns7747:0crwdne7747:0","create_wallet_your_wallet_address":"crwdns7749:0crwdne7749:0","create_wallet_done":"crwdns7751:0crwdne7751:0","create_wallet_verify_words":"crwdns7753:0crwdne7753:0","create_wallet_mnemonic_word_not_match":"crwdns8029:0crwdne8029:0"}'); + +/***/ }), + +/***/ 32284: +/***/ ((module) => { + +module.exports = JSON.parse('{"about":"关于","wallets":"钱包","personas":"身份","persona":"身份","refresh":"刷新","next":"下一步","cancel":"取消","back":"返回","agree":"同意","confirm":"确认","verify":"验证","go_back":"返回","connect":"连接","searching":"搜索中","restore":"恢复","save":"保存","manage":"管理","recovery":"恢复","successful":"成功","close":"关闭","send":"发送","resend":"重新发送","print":"打印","download":"下载","print_preview":"打印预览","download_preview":"下载预览","confirm_password":"密码确认","about_dialog_license":"开源协议: ","footer_bounty_list":"赏金列表","about_dialog_source_code":"源代码: ","about_dialog_feedback":"反馈: ","about_dialog_touch":"联系我们","about_dialog_description":"Mask Network 引领您探索更新更开放的互联网。Mask Network 允许您在社交网络上发送加密的贴文。 同时我们提供了更多功能,譬如发送加密红包,购买加密货币,加密文件服务等。","setup_page_title":"欢迎来到 Mask Network!","setup_page_description":"在社交网络上加密您的贴文和聊天内容,只允许您的朋友进行解密。","setup_page_create_account_title":"创建身份","setup_page_create_account_subtitle":"构建您的数字身份系统,探索 Web 3.0","setup_page_create_account_button":"创建","setup_page_create_restore_title":"恢复身份","setup_page_create_restore_subtitle":"通过身份助记词或历史备份恢复。","setup_page_create_restore_button":"恢复或登录","create_account_private_key":"私钥","create_account_identity_id":"身份助记词","create_account_identity_title":"创建Mask Network身份","create_account_sign_in_button":"恢复或登录","create_account_persona_exists":"该身份已存在。","create_account_mnemonic_download_or_print":"我已妥善保存我的身份信息。","create_account_preview_tip":"这个二维码保存您的身份信息,请妥善保存。您可以使用 Mask APP 扫描二维码登录您的身份。","create_account_mnemonic_confirm_failed":"助记词不正确","create_account_connect_social_media_button":"创建","create_account_connect_social_media":"连接到 {{type}}","create_account_persona_title":"欢迎来到 Mask Network!","create_account_persona_subtitle":"您可以创建个人身份并连接社交账户","create_account_persona_successfully":"创建身份成功","create_account_connect_social_media_title":"连接到社交媒体","create_account_failed":"创建帐户失败","sign_in_account_identity_title":"恢复或登录","sign_in_account_tab_identity":"身份","sign_in_account_sign_up_button":"注册","sign_in_account_identity_warning":"数字身份助记词只能恢复您的数字身份。它可以加密并解密由这个数字身份签名和发送的社交网络信息内容。","sign_in_account_private_key_placeholder":"输入您的私钥","sign_in_account_private_key_error":"私钥不正确","sign_in_account_private_key_persona_not_found":"无法找到身份","sign_in_account_private_key_warning":"数字身份助记词只能恢复您的数字身份。它可以加密并解密由这个数字身份签名和发送的社交网络信息内容。","sign_in_account_mnemonic_confirm_failed":"助记词不正确","sign_in_account_cloud_backup_send_email_success":"验证码已发送到您的 {{type}}。请检查您的 {{type}}。","sign_in_account_local_backup_warning":"本地备份可以恢复本地存储的所有数据。","sign_in_account_local_backup_payment_password":"支付密码","sign_in_account_local_backup_file_drag":"请点击选择或拖动文件到这里","sign_in_account_cloud_backup_warning":"云端备份会保存并加密您的数据。","sign_in_account_cloud_backup_not_support":"不支持的数据备份格式","sign_in_account_cloud_send_verification_code_tip":"发送验证码至","sign_in_account_cloud_backup_failed":"恢复备份失败,请再试一次。","sign_in_account_cloud_backup_email_or_phone_number":"电子邮箱或电话号码","sign_in_account_cloud_backup_password":"备份密码","sign_in_account_cloud_restore_failed":"恢复失败","sign_in_account_cloud_backup_download_failed":"备份文件下载失败","sign_in_account_cloud_backup_decrypt_failed":"备份解密失败,请检查密码","sign_in_account_cloud_backup_email_format_error":"邮箱地址不正确。","sign_in_account_cloud_backup_phone_format_error":"此电话号码不正确。","sign_in_account_cloud_backup_synchronize_password_tip":"已成功验证您的云端备份密码,备份正在上传。 为了备份密码的一致,请确认您是否愿意将您的云端备份密码设置为本地备份密码。","cloud_backup":"云端备份","wallets_transfer":"转账","wallets_assets":"资产","wallets_transfer_memo":"备注","wallets_transfer_amount":"数额","wallets_transfer_to_address":"发送到地址","wallets_transfer_error_amount_absence":"输入数额","wallets_transfer_error_address_absence":"输入收款人地址","wallets_transfer_error_contract":"选择 NFT 合约","wallets_transfer_error_nft":"选择一个 NFT","wallets_transfer_error_invalid_address":"收款人地址无效","wallet_transfer_error_no_address_has_been_set_name":"接收人地址无效。","wallet_transfer_error_no_ens_support":"网络不支持 ENS。","wallets_transfer_error_insufficient_balance":"{{symbol}} 余额不足","wallets_transfer_error_same_address_with_current_account":"此接收地址与发送地址相同,请重新检查。","wallets_transfer_error_is_contract_address":"此接收地址为合约地址,请重新检查。","wallets_transfer_send":"发送","wallets_transfer_memo_placeholder":"可选填信息","wallets_transfer_contract":"合约","wallets_transfer_contract_placeholder":"选择 NFT 合约","wallets_swap":"兑换","wallets_red_packet":"红包","wallets_sell":"卖出","wallets_history":"历史记录","settings":"设置","gas_fee":"交易手续费","transfer_cost":"花费 {{gasFee}} {{symbol}} ≈ {{usd}} 美元","done":"完成!","labs":"D.Market","wallet_transactions_pending":"待定中","wallet_gas_fee_settings_low":"低","wallet_gas_fee_settings_medium":"中","wallet_gas_fee_settings_high":"高","wallets_startup_create":"创建新钱包","wallets_startup_create_desc":"Mask Network支持ETH、BSC 和 Polygon/Matic 等网络。","wallets_startup_create_action":"创建","wallets_startup_import":"导入钱包","wallets_startup_import_desc":"Mask钱包支持私钥、JSON文件和助记词导入。","wallets_startup_import_action":"导入","wallets_startup_connect":"连接钱包","wallets_startup_connect_desc":"支持Mask钱包、MetaMask和WalletConnect。","wallets_startup_connect_action":"连接钱包","wallets_connect_wallet_metamask":"MetaMask","wallets_connect_wallet_connect":"连接钱包","wallets_connect_wallet_polka":"Polkadot 钱包","wallets_create_wallet_input_placeholder":"钱包名称","wallets_create_successfully_title":"成功","wallets_create_successfully_tips":"您已成功创建钱包。","wallets_create_successfully_unlock":"解锁钱包","wallets_create_wallet_alert":"Mask Network是一个免费的开源客户端接口。 Mask Network允许您直接与 区块链进行交互,同时您可以完全控制您的密钥和资金,请仔细考虑这一点。 您是掌控者,Mask Network不是银行或交易所。 我们不保留您的密钥、资金或信息。 这意味着我们无法访问账户、恢复密钥、重置密码或反向交易。","wallets_wallet_connect_title":"使用WalletConnect兼容的钱包扫描二维码","wallets_wallet_mnemonic":"助记词","wallets_wallet_json_file":"本地备份","wallets_wallet_private_key":"私钥","wallets_import_wallet_tabs":"导入钱包标签","wallets_import_wallet_password_placeholder":"钱包密码","wallets_import_wallet_cancel":"取消","wallets_import_wallet_import":"导入","wallets_create_wallet_tabs":"创建钱包标签","wallets_create_wallet_refresh":"刷新","wallets_create_wallet_remember_later":"请稍后再记住它","wallets_create_wallet_verification":"验证","wallets_collectible_address":"收藏品地址","wallets_collectible_token_id":"代币 ID","wallets_collectible_field_contract_require":"收藏品地址为必填项","wallets_collectible_field_token_id_require":"代币 ID 为必填项","wallets_collectible_load_end":"已加载完毕","wallets_balance":"资产在","wallets_balance_all_chain":"总览","wallets_balance_Send":"发送","wallets_balance_Buy":"购买","wallets_balance_Swap":"兑换","wallets_balance_Receive":"接收","wallets_assets_token":"代币","wallets_assets_token_sent_not_connect_tip":"未连接到 {{chainName}}。","wallets_assets_token_sent_switch_network_tip":"点击切换","wallets_assets_investment":"投资","wallets_assets_collectibles":"收藏品","wallets_assets_custom_token":"自定义代币","wallets_assets_custom_collectible":"自定义收藏品","wallets_assets_asset":"资产","wallets_assets_balance":"余额","wallets_assets_price":"价格","wallets_assets_value":"价值","wallets_assets_operation":"操作","wallets_address":"钱包地址","wallets_receive_tips":"扫描二维码并发送{{chainName}} 资产到此钱包","wallets_add_collectible":"添加收藏品","wallets_incorrect_address":"钱包地址不正确","wallets_collectible_been_added":"此收藏品已被添加。","wallets_collectible_error_not_exist":"此收藏品不存在或不属于您。","wallets_collectible_contract_is_empty":"请选择合约","wallets_collectible_token_id_is_empty":"请选择代币","wallets_collectible_add":"添加","wallets_add_token":"添加代币","wallets_token_been_added":"代币已被添加。","wallets_token_symbol_tips":"代币代号必须少于11或更少的字符。","wallets_token_decimals_tips":"十进制必须至少 0,且不得超过 18。","wallets_add_token_contract_address":"代币合约地址","wallets_add_token_symbol":"代币代号","wallets_add_token_decimals":"小数点精度","wallets_add_token_cancel":"取消","wallets_add_token_next":"下一步","wallets_empty_tokens_tip":"没有找到任何资产。请添加代币。","wallets_empty_collectible_tip":"没有找到任何收藏品。请添加收藏品。","wallets_address_copied":"已成功复制地址","wallets_address_copy":"复制","wallets_history_types":"类型","wallets_history_value":"价值","wallets_history_time":"时间","wallets_history_receiver":"交互者","wallets_empty_history_tips":"没有任何交易历史","wallets_loading_token":"正在加载代币","personas_setup_connect_tips":"请连接到您的 {{type}} 账户。","personas_setup_tip":"请创建或恢复身份。","personas_setup_connect":"连接","personas_name_maximum_tips":"最大长度为 {{length}} 个字符。","personas_name_existed":"此身份名称已存在","personas_rename_placeholder":"身份名称","personas_confirm":"确认","personas_cancel":"取消","personas_export_persona":"导出身份","personas_export_persona_copy":"复制","personas_export_persona_copy_success":"已复制","personas_export_persona_copy_failed":"复制失败","personas_export_persona_confirm_password_tip":"您还没有设置您的备份密码。想要导出您的身份私钥,必须先设置备份密码。","personas_export_private":"导出身份私钥","personas_export_private_key_tip":"此操作仅用于导出私钥。我们不导出任何其他数据。如果您需要导出更多数据,请前往设置页面:","personas_delete_confirm_tips":"请输入您的备份密码来确认删除身份 {{nickname}} 。","personas_delete_dialog_title":"删除身份","personas_edit_dialog_title":"编辑身份","personas_edit":"编辑","personas_delete":"删除","personas_logout":"登出","personas_logout_confirm_password_tip":"您还没有设置您的密码。要登出身份,您必须先设置备份密码。","personas_add_persona":"添加新身份","personas_back_up":"备份","personas_connect_to":"连接到 {{internalName}}","personas_disconnect":"断开连接","personas_disconnect_raw":"断开连接","personas_disconnect_warning":"你确定要删除此身份吗? 您的Mask Network朋友将不能再通过此身份向您发送加密的消息,或查看您与此身份相关的Web 3产品。","personas_logout_warning":"身份登出后,您所关联的社交网络账户将不能解密过去的加密消息。 如果您需要重新使用您的身份,您可以使用您的身份私钥进行恢复。","personas_add":"添加","personas_upload_avatar":"上传头像","personas_rename":"重命名","personas_invite_post":"@{{identifier}} Hi,请下载Mask Network,以便我们可以用加密的方式分享帖子?#mask_io install http://mask.io","personas_empty_contact_tips":"您尚未有安装Mask Network的联系人。请邀请您的朋友下载 {{name}}","personas_contacts_name":"名称","personas_contacts_operation":"操作","personas_contacts_invite":"邀请","personas_post_is_empty":"您还没有创建任何加密贴文。","personas_post_create":"创建贴文","settings_general":"通用","settings_backup_recovery":"备份恢复","settings_local_backup":"本地备份","settings_cloud_backup":"云端备份","settings_appearance_default":"按照系统设置","settings_appearance_light":"浅色","settings_appearance_dark":"深色","settings_backup_preview_account":"账户","settings_backup_preview_personas":"身份","settings_backup_preview_associated_account":"关联账户","settings_backup_preview_posts":"加密贴文","settings_backup_preview_contacts":"联系人","settings_backup_preview_wallets":"Mask钱包","settings_backup_preview_created_at":"备份时间","settings_language_title":"语言","settings_language_desc":"选择您要使用的语言","settings_language_auto":"按照系统设置","settings_appearance_title":"外观","settings_appearance_desc":"选择您要使用的外观主题","settings_data_source_title":"数据源","settings_data_source_desc":"从不同平台获取趋势数据","settings_sync_with_mobile_title":"与移动设备同步","settings_sync_with_mobile_desc":"您可以与您的移动设备同步您的帐户和信息。 打开Mask Network移动应用程序,进入设置并点击与插件同步。","settings_global_backup_title":"备份数据库","settings_global_backup_desc":"提供选择本地备份和云端备份","settings_global_backup_last":"最近的备份时间为{{backupAt}},备份方法为{{backupMethod}}。","settings_restore_database_title":"恢复数据库","settings_restore_database_desc":"从以前的数据库备份恢复","settings_email_title":"电子邮箱","settings_email_desc":"请绑定您的电子邮箱","settings_change_password_title":"备份密码","settings_change_password_desc":"修改备份密码","settings_change_password_not_set":"您尚未设置备份密码","settings_phone_number_title":"手机号码","settings_phone_number_desc":"请绑定您的手机号码","settings_password_rule":"备份密码必须为 8 到 20 个字符,并且至少包含一个数字、一个大写字母、一个小写字母和一个特殊字符。","settings_button_cancel":"取消","settings_button_confirm":"确认","settings_button_sync":"同步","settings_button_backup":"备份","settings_button_recovery":"恢复","settings_button_setup":"设置","settings_button_change":"修改","settings_dialogs_bind_email_or_phone":"请绑定您的电子邮箱或手机号码","settings_dialogs_verify_backup_password":"验证备份密码","settings_dialogs_setting_backup_password":"设置备份密码","settings_dialogs_change_backup_password":"修改备份密码","settings_dialogs_setting_email":"设置电子邮箱","settings_dialogs_change_email":"更改电子邮箱地址","settings_dialogs_setting_phone_number":"设置手机号码","settings_dialogs_change_phone_number":"修改手机号","settings_dialogs_incorrect_code":"验证码不正确.","settings_dialogs_incorrect_email":"邮箱地址不正确。","settings_dialogs_incorrect_phone":"此手机号码不正确。","settings_dialogs_incorrect_password":"密码不正确。","settings_dialogs_inconsistency_password":"密码不一致!","settings_dialogs_current_email_validation":"当前验证的邮箱地址为","settings_dialogs_change_email_validation":"想要更改其他邮箱地址,请验证您当前的邮箱地址。","settings_dialogs_current_phone_validation":"当前验证的手机号码为","settings_dialogs_change_phone_validation":"想要更改您的手机号码,您需要验证您当前的手机号码。","settings_dialogs_backup_to_cloud":"备份至云端","settings_dialogs_merge_to_local_data":"将云端备份合并到本地并再次备份到云端","settings_dialogs_backup_action_desc":"云端备份已存在, 您可以选择在备份之前先合并此云端备份到您的本地数据,或者直接覆盖重新备份。","settings_dialogs_backup_to_cloud_action":"此选项将使用本地数据覆盖现有云备份。","settings_dialogs_backup_merge_cloud":"此选项需要您输入现有云备份的密码进行解密。 解密后将会把现有云备份与本地数据合并,然后再次加密上传到云端。","settings_dialogs_backup_merged_tip":"您已经合并云端备份到本地. 如果您想要继续完成备份,请点击备份按钮将您的所有数据更新到云端。","settings_label_backup_password":"备份密码","settings_label_new_backup_password":"新备份密码","settings_label_backup_password_cloud":"云端文件的备份密码","settings_label_payment_password":"支付密码","settings_label_re_enter":"再次输入","settings_alert_password_set":"备份密码设置成功。","settings_alert_password_updated":"备份密码已更新","settings_alert_email_set":"电子邮箱已设置","settings_alert_email_updated":"邮箱地址已更新","settings_alert_phone_number_set":"手机号码已设置","settings_alert_phone_number_updated":"电话号码已更改","settings_alert_backup_fail":"备份失败","settings_alert_backup_success":"您已成功备份您的数据。","settings_alert_validation_code_sent":"验证码已发送","settings_alert_merge_success":"您已成功地将云端备份合并到本地数据。","labs_file_service":"文件服务","labs_file_service_desc":"为用户提供去中心化文档存储功能。","labs_markets":"ITO","labs_markets_desc":"将数字资产出售给您的加密世界朋友。","labs_red_packet":"红包","labs_red_packet_desc":"使用加密红包向您的朋友送上最好的祝福。","labs_swap":"兑换","labs_swap_desc":"通过Dex购买代币,无需额外费用和限制。","labs_transak":"Transak","labs_transak_desc":"Transak可支持在60多个国家内购买代币。","labs_savings":"储蓄","labs_snapshot":"Snapshot","labs_snapshot_desc":"直接在社交媒体上展示和投票支持提案。","labs_market_trend":"市场趋势","labs_market_trend_desc":"在社交媒体上直接显示代币信息、价格趋势图表和兑换信息。","labs_collectibles":"收藏品","labs_collectibles_desc":"直接在社交媒体上展示收藏品在 OpenSea 和 Rarible的特定信息,和提供发送报价及竞标功能。","labs_gitcoin":"Gitcoin","labs_gitcoin_desc":"在社交媒体上直接展示Gitcoin项目的具体信息。","labs_valuables":"Valuables","labs_valuables_desc":"购买和销售由其原创作者发布的推文。","labs_dhedge":"dHEDGE","labs_dhedge_desc":"以太坊上的去中心化对冲基金。","labs_mask_box":"Mask盲盒","labs_mask_box_desc":"支持多链的去中心化NFT盲盒发布平台。","labs_loot_man_desc":"探索NFT无尽的可能性。以革命性的方式在社交媒体上展示您的 NFT。","labs_good_ghosting":"GoodGhosting","labs_good_ghosting_desc":"在Twitter上培养每周储蓄的习惯。","labs_pool_together":"无损彩票","labs_pool_together_desc":"在 Twitter 上参与零损失彩票活动。","labs_settings_market_trend":"市场趋势设置","labs_settings_market_trend_source":"默认趋势来源","labs_settings_swap":"交易所设置","labs_settings_swap_network":"{{network}} 网络默认交易所","labs_pets_desc":"探索NFT无尽的可能性。以革命性的方式在社交媒体上展示您的 NFT。","labs_setup_tutorial":"教程","labs_do_not_show_again":"不再提醒","dashboard_mobile_test":"参加移动端测试","dashboard_source_code":"源代码","privacy_policy":"隐私政策","version_of_stable":"版本 {{version}}","version_of_unstable":"版本 {{version}}-{{build}}-{{hash}}","register_restore_backups":"恢复备份","register_restore_backups_cancel":"取消","register_restore_backups_confirm":"恢复","register_restore_backups_hint":"请点击选择或拖动文件到这里","register_restore_backups_file":"文件","register_restore_backups_text":"文本内容","register_restore_backups_tabs":"恢复备份","create_wallet_mnemonic_tip":"请不要忘记保存您的助记词。您需要这个才能访问您的钱包。","create_wallet_password_uppercase_tip":"必须包含一个大写字符","create_wallet_password_lowercase_tip":"必须包含一个小写字符","create_wallet_password_number_tip":"必须包含一个数字","create_wallet_password_special_tip":"必须包含一个特殊字符","create_wallet_password_satisfied_requirement":"密码格式不符合要求。","create_wallet_password_match_tip":"密码不一致。","create_wallet_password_length_error":"密码长度不符合要求。","create_wallet_name_placeholder":"输入1-12 个字符","create_wallet_form_title":"创建一个钱包","create_wallet_wallet_name":"钱包名称","create_wallet_payment_password":"支付密码","create_wallet_re_enter_payment_password":"再次输入支付密码","create_wallet_payment_password_tip":"支付密码必须是数字、大小写字母和特殊字符中的2个类别的组合,长度为 8-20 个字符。","create_wallet_your_wallet_address":"您的钱包地址","create_wallet_done":"完成","create_wallet_verify_words":"验证助记词","create_wallet_mnemonic_word_not_match":"助记词不正确"}'); + +/***/ }), + +/***/ 39675: +/***/ ((module) => { + +module.exports = JSON.parse('{"about":"關於","wallets":"錢包","personas":"角色","persona":"角色","refresh":"刷新","next":"繼續","cancel":"取消","back":"返回","agree":"同意","confirm":"確認","verify":"驗證","go_back":"返回","connect":"連接","searching":"搜尋中","restore":"恢復","save":"存儲","manage":"管理","recovery":"恢復","successful":"成功","close":"關閉","send":"發送","resend":"重新傳送","confirm_password":"確認密碼","about_dialog_license":"開源協議: ","footer_bounty_list":"賞金列表","about_dialog_source_code":"原始碼: ","about_dialog_feedback":"反饋 ","about_dialog_touch":"聯繫我們","about_dialog_description":"Mask Network 引領您探索更新更開放的互聯網。Mask Network允許您在社交網路上發送加密的貼文。同時我們提供了更多功能,例如發送加密紅包,購買加密貨幣,加密文件服務等。","setup_page_title":"歡迎來到Mask Network","setup_page_description":"在社交網路上加密您的推文和聊天訊息,只允許您的朋友進行解密。","setup_page_create_account_title":"創建新身份","setup_page_create_account_subtitle":"創造你的虛擬身份,探索Web3.0","setup_page_create_account_button":"創建","setup_page_create_restore_title":"從身份或備份中恢復","setup_page_create_restore_subtitle":"從身份和歷史備份中恢復","setup_page_create_restore_button":"備份 或 登錄","create_account_private_key":"私鑰","create_account_identity_title":"在Mask Network創建一個身份","create_account_sign_in_button":"恢復","create_account_preview_tip":"此二維碼將保存你的身份密碼,請妥善保存。可使用Mask手機端掃描二維碼來登錄。","create_account_mnemonic_confirm_failed":"錯誤身份代碼","create_account_connect_social_media_button":"創建","create_account_connect_social_media":"連接 {{type}}","create_account_persona_title":"歡迎來到Mask Network","create_account_persona_subtitle":"您可以創建個人身分並連接社交帳戶","create_account_persona_successfully":"創建成功","create_account_connect_social_media_title":"連接社交平台","create_account_failed":"創建帳號失敗","sign_in_account_identity_title":"恢復您的身分","sign_in_account_tab_identity":"身份","sign_in_account_sign_up_button":"註冊","sign_in_account_identity_warning":"數字身分助記詞只能恢復您的數字身分。它可以加密並解密由這個數字身分簽名和發送的社交網路信息內容。","sign_in_account_private_key_placeholder":"請輸入你的私鑰","sign_in_account_private_key_error":"私钥不正确","sign_in_account_private_key_persona_not_found":"Persona失蹤","sign_in_account_private_key_warning":"數字身分助記詞只能恢復您的數字身分。它可以加密並解密由這個數字身分簽名和發送的社交網路訊息內容。","sign_in_account_mnemonic_confirm_failed":"錯誤身份","sign_in_account_cloud_backup_send_email_success":"驗證碼已發往 {{type}}. 請查看 {{type}}.","sign_in_account_local_backup_warning":"本地備份能恢復之前所有被本地存儲的數據","sign_in_account_local_backup_payment_password":"支付密碼","sign_in_account_local_backup_file_drag":"請點擊或拖拽文件到此處","sign_in_account_cloud_backup_warning":"雲端備份會保存並加密您的數據。","sign_in_account_cloud_backup_not_support":"不支持數據備份格式","sign_in_account_cloud_send_verification_code_tip":"發送驗證碼至","sign_in_account_cloud_backup_failed":"恢復備份失敗,請再試一次。","sign_in_account_cloud_backup_email_or_phone_number":"郵箱地址或電話號碼","sign_in_account_cloud_backup_password":"備份密碼","sign_in_account_cloud_restore_failed":"恢復失敗","sign_in_account_cloud_backup_download_failed":"下載備份失敗","sign_in_account_cloud_backup_decrypt_failed":"備份解密失敗,請檢查密碼","sign_in_account_cloud_backup_email_format_error":"電子郵件地址不正確","sign_in_account_cloud_backup_phone_format_error":"此電話號碼不正確。","sign_in_account_cloud_backup_synchronize_password_tip":"已成功驗證您的雲端備份密碼,備份正在上傳,為了備份密碼的一致,請確認您是否願意將您的雲端備份密碼設置為本地備份密碼。","cloud_backup":"雲端備份","wallets_transfer":"轉賬","wallets_assets":"資產","wallets_transfer_memo":"備註","wallets_transfer_amount":"數量","wallets_transfer_to_address":"至地址","wallets_transfer_error_amount_absence":"輸入數額","wallets_transfer_error_address_absence":"輸入接收者地址","wallets_transfer_error_contract":"選擇NFT合約","wallets_transfer_error_nft":"選擇一個NFT","wallets_transfer_error_invalid_address":"無效接收者地址","wallet_transfer_error_no_address_has_been_set_name":"接收者地址不存在","wallet_transfer_error_no_ens_support":"網路不支持ENS。","wallets_transfer_error_insufficient_balance":"{{symbol}} 餘額不足","wallets_transfer_send":"傳送","wallets_transfer_memo_placeholder":"可選填訊息","wallets_transfer_contract":"合約","wallets_transfer_contract_placeholder":"選擇一份NFT合約","wallets_swap":"兌換","wallets_red_packet":"紅包","wallets_sell":"賣出","wallets_history":"歷史記錄","settings":"設定","gas_fee":"交易手續費","transfer_cost":"花費 {{gasFee}} {{symbol}} ≈ ${{usd}}","done":"完成!","wallet_transactions_pending":"待定中","wallet_gas_fee_settings_low":"低","wallet_gas_fee_settings_medium":"中","wallet_gas_fee_settings_high":"高","wallets_startup_create":"創建一個新錢包","wallets_startup_create_desc":"Mask network 支援 Eth、 BSC 和 Polygon 網路。","wallets_startup_create_action":"創建","wallets_startup_import":"導入錢包","wallets_startup_import_desc":"Mask network 支援私鑰、JSON 文件和助記詞","wallets_startup_import_action":"導入","wallets_startup_connect":"連結其他錢包","wallets_startup_connect_desc":"Mask network 支援 Metamask 和 Connect Wallet.","wallets_startup_connect_action":"連結","wallets_connect_wallet_metamask":"MetaMask","wallets_connect_wallet_connect":"連接錢包","wallets_connect_wallet_polka":"PolkaDot 錢包","wallets_create_wallet_input_placeholder":"錢包名稱","wallets_create_successfully_title":"成功","wallets_create_successfully_tips":"您已成功創建錢包","wallets_create_successfully_unlock":"解鎖錢包","wallets_create_wallet_alert":"Mask Network是一個免費的開源客戶端接口。 Mask Network允許您直接與區塊鏈進行交互,同時您可以完全控制自己的密鑰和資金,請仔細考慮。 您是掌控者。 Mask Network不是銀行或交易所。 我們不會保留您的鑰匙,資金或信息。 這意味著我們無法訪問帳戶,恢復密鑰,重設密碼或撤消交易。","wallets_wallet_connect_title":"使用兼容WalletConnect的錢包掃描QR碼","wallets_wallet_mnemonic":"助記符","wallets_wallet_json_file":"本地備份","wallets_wallet_private_key":"私鑰","wallets_import_wallet_tabs":"導入錢包標籤","wallets_import_wallet_password_placeholder":"錢包密碼","wallets_import_wallet_cancel":"取消","wallets_import_wallet_import":"輸入","wallets_create_wallet_tabs":"創建錢包標籤","wallets_create_wallet_refresh":"刷新","wallets_create_wallet_remember_later":"記得以後","wallets_create_wallet_verification":"确认","wallets_collectible_address":"收藏品地址","wallets_collectible_token_id":"代幣 ID","wallets_collectible_field_contract_require":"收藏品地址為必填項","wallets_collectible_field_token_id_require":"代幣 ID 為必填項","wallets_collectible_load_end":"載入完畢","wallets_balance":"結餘","wallets_balance_all_chain":"所有鏈","wallets_balance_Send":"發送","wallets_balance_Buy":"購買","wallets_balance_Swap":"交換","wallets_balance_Receive":"接收","wallets_assets_token":"代幣","wallets_assets_token_sent_not_connect_tip":"未连接至 {{chainName}}.","wallets_assets_token_sent_switch_network_tip":"點擊切換","wallets_assets_investment":"投資","wallets_assets_collectibles":"收藏品","wallets_assets_custom_token":"自定義代幣","wallets_assets_custom_collectible":"自定義收藏品","wallets_assets_asset":"資產","wallets_assets_balance":"餘額","wallets_assets_price":"價格","wallets_assets_value":"價值","wallets_assets_operation":"操作","wallets_address":"錢包地址","wallets_receive_tips":"掃瞄二維碼並發送 {{chainName}} 資產到此錢包","wallets_add_collectible":"添加收藏品","wallets_incorrect_address":"合約地址錯誤","wallets_collectible_been_added":"此收藏品已被添加","wallets_collectible_error_not_exist":"此藏品不存在或不屬於你","wallets_collectible_contract_is_empty":"請選擇合約","wallets_collectible_token_id_is_empty":"請選擇代幣","wallets_collectible_add":"新增","wallets_add_token":"新增代幣","wallets_token_been_added":"已添加代幣","wallets_token_symbol_tips":"代幣符號必須不超過11個字符。","wallets_add_token_contract_address":"代幣合約地址","wallets_add_token_symbol":"代幣符號","wallets_add_token_decimals":"小數點精度","wallets_add_token_cancel":"取消","wallets_add_token_next":"下一步","wallets_empty_tokens_tip":"沒有找到任何資產。請添加代幣。","wallets_empty_collectible_tip":"沒有找到任何收藏品。請添加收藏品。","wallets_address_copied":"已複製地址","wallets_address_copy":"複製 ","wallets_history_types":"類型","wallets_history_value":"價值","wallets_history_time":"時間","wallets_empty_history_tips":"無交易記錄","wallets_loading_token":"正在載入代幣","personas_setup_connect_tips":"請連接到您的 {{type}} 帳戶。","personas_setup_tip":"請創建或恢復身分。","personas_setup_connect":"連接","personas_name_maximum_tips":"名稱最長長度為 {{length}} 字","personas_name_existed":"身份名稱已存在","personas_rename_placeholder":"身分名稱","personas_confirm":"確認","personas_cancel":"取消","personas_export_persona":"導出身分","personas_export_persona_copy":"複製","personas_export_persona_copy_success":"已複製","personas_export_persona_copy_failed":"複製失敗","personas_export_persona_confirm_password_tip":"你還沒設置密碼,匯出私鑰前必須先設置備份密碼。","personas_export_private":"匯出私鑰","personas_export_private_key_tip":"此操作僅用於導出私鑰。我們不導出任何其他數據。如果您需要導出更多數據,請前往設置頁面:","personas_delete_confirm_tips":"請確認你已刪除身份 {{nickname}} 並已輸入密碼","personas_delete_dialog_title":"刪除身份","personas_edit_dialog_title":"編輯身分","personas_edit":"編輯","personas_delete":"刪除","personas_logout":"登出","personas_logout_confirm_password_tip":"您還沒有設置您的密碼。要登出身分,您必須先設置備份密碼。","personas_add_persona":"添加新身分","personas_back_up":"備份","personas_connect_to":"連接 {{internalName}}","personas_disconnect":"斷開連接","personas_disconnect_warning":"您確定要斷開{{network}} 帳戶{{userId}} 嗎?斷開連接後,此帳戶將無法解密並使用Mask Network加密任何訊息。","personas_logout_warning":"身分登出後,您關聯的社交網路帳戶將不能解密過去的加密訊息。如果您需要重新使用您的身分,您可以使用您的身分私鑰進行恢復。","personas_add":"新增","personas_upload_avatar":"上傳頭像","personas_rename":"重命名","personas_invite_post":"@{{identifier}} 您好,請下載Mask,以便我們可以用加密的方式分享貼文 #mask_io install http://mask.io","personas_empty_contact_tips":"您尚未有安裝Mask Network的聯繫人。請邀請您的朋友下載{{name}}。","personas_contacts_name":"名稱","personas_contacts_operation":"操作","personas_contacts_invite":"邀請","personas_post_is_empty":"您還沒有創建任何貼文。","personas_post_create":"創建貼文","settings_general":"一般","settings_backup_recovery":"備份 & 恢復","settings_local_backup":"本地備份","settings_cloud_backup":"雲端備份","settings_appearance_default":"按照系統設定","settings_appearance_light":"淺色","settings_appearance_dark":"深色","settings_backup_preview_account":"帳戶","settings_backup_preview_personas":"身分","settings_backup_preview_associated_account":"關聯帳戶","settings_backup_preview_posts":"加密貼文","settings_backup_preview_contacts":"聯繫人","settings_backup_preview_wallets":"Mask錢包","settings_backup_preview_created_at":"備份時間","settings_language_title":"語言","settings_language_desc":"選擇您要使用的語言","settings_language_auto":"跟隨系統","settings_appearance_title":"外觀","settings_appearance_desc":"選擇你想使用的外觀","settings_data_source_title":"資料源","settings_data_source_desc":"從不同平台獲取趨勢資料","settings_sync_with_mobile_title":"與手機同步","settings_sync_with_mobile_desc":"您可以與您的移動設備同步您的帳戶和資料。打開Mask Network移動應用程式,進入設定頁面並點擊與插件同步。","settings_global_backup_desc":"提供本地和雲端兩種備份選項","settings_global_backup_last":"最近的備份時間為 {{backupAt}}。備份方法為:{{backupMethod}}。","settings_restore_database_title":"復原資料庫","settings_restore_database_desc":"從之前的數據庫備份復原","settings_email_title":"電子郵箱","settings_email_desc":"請綁定郵箱","settings_change_password_title":"備份密碼","settings_change_password_desc":"變更您的備份密碼","settings_change_password_not_set":"你還沒有設定備份密碼","settings_phone_number_title":"電話號碼","settings_phone_number_desc":"請綁定您的電話號碼","settings_password_rule":"備份密碼的長度必須在8到20個字符之間,並且至少包含一個數字,一個大寫字母,一個小寫字母和一個特殊字符。","settings_button_cancel":"取消","settings_button_confirm":"確認","settings_button_sync":"同步","settings_button_backup":"備份","settings_button_recovery":"恢復","settings_button_setup":"設定","settings_button_change":"變更","settings_dialogs_bind_email_or_phone":"請綁定郵箱或電話號碼","settings_dialogs_verify_backup_password":"驗證備份密碼","settings_dialogs_setting_backup_password":"設定備份密碼","settings_dialogs_change_backup_password":"變更備份密碼","settings_dialogs_setting_email":"設定電子郵箱","settings_dialogs_change_email":"變更郵箱","settings_dialogs_setting_phone_number":"設定電話號碼","settings_dialogs_change_phone_number":"變更電話號碼","settings_dialogs_incorrect_code":"驗證碼錯誤","settings_dialogs_incorrect_email":"郵箱地址不正確","settings_dialogs_incorrect_phone":"通訊號碼錯誤","settings_dialogs_incorrect_password":"密碼錯誤","settings_dialogs_inconsistency_password":"密碼不一致","settings_dialogs_current_email_validation":"當前驗證的郵箱地址為","settings_dialogs_change_email_validation":"需要驗證現有郵箱地址以更改","settings_dialogs_current_phone_validation":"當前驗證的電話號碼為","settings_dialogs_change_phone_validation":"想要變更電話號碼,您需要驗證您您當前的電話號碼:","settings_dialogs_backup_to_cloud":"備份到雲端","settings_dialogs_merge_to_local_data":"將雲端備份合併到本地並再次備份到雲端","settings_dialogs_backup_action_desc":"雲端備份已存在,請在備份之前合併雲端備份至本地,或者直接備份。","settings_dialogs_backup_to_cloud_action":"此選項將用本地數據覆蓋現有的雲端備份","settings_dialogs_backup_merged_tip":"您已把雲端備份合併到本地。如果您想要繼續完成備份,請點擊按鍵將您的所有資料更新到雲端。","settings_label_backup_password":"備份密碼","settings_label_new_backup_password":"新備份密碼","settings_label_backup_password_cloud":"雲端文件的備份密碼","settings_label_payment_password":"支付密碼","settings_label_re_enter":"重新輸入","settings_alert_password_set":"備份密碼設定成功","settings_alert_password_updated":"備份密碼已更新","settings_alert_email_set":"電子郵箱設定","settings_alert_email_updated":"郵箱已更新","settings_alert_phone_number_set":"電話號碼設定","settings_alert_phone_number_updated":"電話號碼已更新","settings_alert_backup_fail":"備份失敗","settings_alert_backup_success":"備份數據已成功","settings_alert_validation_code_sent":"驗證碼已傳送","settings_alert_merge_success":"您已經成功您的雲端備份合併到本地資料。","labs_file_service":"文件服務","labs_file_service_desc":"上傳及分享文件以享受永久去中心化存儲服務","labs_markets":"首次代幣發行","labs_markets_desc":"在推特自由發售虛擬資產&直接參與代幣發行","labs_red_packet":"紅包","labs_swap":"兌換","labs_snapshot":"快照","labs_snapshot_desc":"在社交平台上展示和為提案投票","labs_market_trend":"市場走勢","labs_market_trend_desc":"直接在社交平台中展示代幣信息/走勢圖/換匯信息","labs_collectibles":"收藏","labs_gitcoin":"Gitcoin","labs_gitcoin_desc":"在社交媒體上顯示Gitcoin項目的具體資訊,並且直接對項目進行捐贈。","labs_valuables_desc":"從原創者手中購買推特並交易","labs_dhedge":"dHEDGE","labs_dhedge_desc":"在eth/Matic鏈上的去中心化對衝基金","labs_mask_box_desc":"使用專業的多鏈去中心平台以發售NFT盲盒","labs_loot_man":"Loot小人 by MintTeam","labs_loot_man_desc":"用全新方式在社交平台上連結展示你的NFT收藏並探索NFT的無限可能","labs_good_ghosting":"GoodGhosting","labs_good_ghosting_desc":"在Twitter上養成每週儲蓄習慣","labs_pool_together":"PoolTogether","labs_pool_together_desc":"在Twitter上參與無損彩票遊戲","labs_settings_market_trend_source":"默认信息源","labs_settings_swap":"兌換設定","labs_settings_swap_network":"{{network}} 鏈上默認交易所","labs_pets":"Loot小人 by MintTeam","labs_setup_tutorial":"設置教程","labs_do_not_show_again":"不再顯示","labs_cryptoartai":"CRYPTOART.AI","dashboard_mobile_test":"參與手機版本測試","dashboard_source_code":"源代碼","privacy_policy":"隱私政策","version_of_stable":"版本號 {{version}}","version_of_unstable":"版本號 {{version}}-{{build}}-{{hash}}","register_restore_backups":"恢復備份","register_restore_backups_cancel":"取消","register_restore_backups_confirm":"恢復","register_restore_backups_hint":"請點擊或拖拽文件到此處","register_restore_backups_file":"檔案","register_restore_backups_text":"文本內容","register_restore_backups_tabs":"還原備份","create_wallet_mnemonic_tip":"請不要忘記保存助記詞,您將需要這個才能訪問您的錢包。","create_wallet_password_uppercase_tip":"必須含有大寫字母","create_wallet_password_lowercase_tip":"必須含有小寫字母","create_wallet_password_number_tip":"必須包含數字","create_wallet_password_special_tip":"必須含有特殊符號","create_wallet_password_satisfied_requirement":"該密碼不滿足設置條件","create_wallet_password_match_tip":"輸入的密碼不一致","create_wallet_password_length_error":"密碼長度不符合規定","create_wallet_name_placeholder":"輸入1-12個字元","create_wallet_form_title":"創建錢包","create_wallet_wallet_name":"錢包名稱","create_wallet_payment_password":"支付密碼","create_wallet_re_enter_payment_password":"再次輸入支付密碼","create_wallet_payment_password_tip":"支付密碼必須是數字、大小寫字母和特殊字母中至少兩種類別的組合,長度為8-20個字符","create_wallet_your_wallet_address":"錢包地址","create_wallet_done":"完成","create_wallet_verify_words":"驗證助記詞","create_wallet_mnemonic_word_not_match":"助記詞錯誤"}'); + +/***/ }) + +}]); \ No newline at end of file diff --git a/DevelopmentPod/MaskbookPlugin/maskbook/js/3519.js b/DevelopmentPod/MaskbookPlugin/maskbook/js/3519.js deleted file mode 100644 index 5fd877bf..00000000 --- a/DevelopmentPod/MaskbookPlugin/maskbook/js/3519.js +++ /dev/null @@ -1,1090 +0,0 @@ -"use strict"; -(globalThis["webpackChunk_masknet_extension"] = globalThis["webpackChunk_masknet_extension"] || []).push([[3519],{ - -/***/ 22445: -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -/** - * @license React - * react-jsx-runtime.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ -var f=__webpack_require__(86248),k=Symbol.for("react.element"),l=Symbol.for("react.fragment"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0}; -function q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=""+g);void 0!==a.key&&(e=""+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q; - - -/***/ }), - -/***/ 31420: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - - -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - "G6": () => (/* reexport */ DecryptionTypes/* DecryptError */.G6), - "OF": () => (/* reexport */ DecryptionTypes/* DecryptErrorReasons */.OF), - "gO": () => (/* reexport */ DecryptionTypes/* DecryptIntermediateProgressKind */.gO), - "Pj": () => (/* reexport */ DecryptionTypes/* DecryptProgressKind */.Pj), - "cV": () => (/* reexport */ AppendEncryption/* appendEncryptionTarget */.c), - "pe": () => (/* reexport */ decrypt), - "HI": () => (/* reexport */ Encryption/* encrypt */.HI) -}); - -// UNUSED EXPORTS: EncryptError, EncryptErrorReasons, encodePostKey - -// EXTERNAL MODULE: ../../node_modules/.pnpm/@dimensiondev+kit@0.0.0-20220228054820-f2378be/node_modules/@dimensiondev/kit/esm/index.js + 1 modules -var esm = __webpack_require__(28807); -// EXTERNAL MODULE: ../typed-message/base/index.ts + 2 modules -var base = __webpack_require__(81148); -// EXTERNAL MODULE: ../shared-base/src/index.ts + 1 modules -var src = __webpack_require__(78144); -// EXTERNAL MODULE: ../../node_modules/.pnpm/ts-results@3.3.0/node_modules/ts-results/esm/index.js + 3 modules -var ts_results_esm = __webpack_require__(48160); -// EXTERNAL MODULE: ../encryption/src/utils/index.ts + 1 modules -var utils = __webpack_require__(62435); -// EXTERNAL MODULE: ../encryption/src/encryption/DecryptionTypes.ts -var DecryptionTypes = __webpack_require__(24663); -// EXTERNAL MODULE: ../encryption/src/encryption/v38-ecdh.ts -var v38_ecdh = __webpack_require__(65096); -;// CONCATENATED MODULE: ../encryption/src/encryption/Decryption.ts - - - - - - - - -const ErrorReasons = DecryptionTypes/* DecryptError.Reasons */.G6.Reasons; -async function* decrypt(options, io) { - const { author: _author , encrypted: _encrypted , encryption: _encryption , version } = options.message; - const { authorPublicKey: _authorPublicKey } = options.message; - if (_encryption.err) return yield new DecryptionTypes/* DecryptError */.G6(ErrorReasons.PayloadBroken, _encryption.val); - if (_encrypted.err) return yield new DecryptionTypes/* DecryptError */.G6(ErrorReasons.PayloadBroken, _encrypted.val); - const encryption = _encryption.val; - const encrypted = _encrypted.val; - // ! try decrypt by cache - { - const cacheKey = await io.getPostKeyCache().catch(()=>null - ); - const iv = encryption.iv.unwrapOr(null); - if (cacheKey && iv) return yield* decryptWithPostAESKey(version, cacheKey, iv, encrypted, options.onDecrypted); - } - if (encryption.type === 'public') { - const { AESKey , iv } = encryption; - if (AESKey.err) return yield new DecryptionTypes/* DecryptError */.G6(ErrorReasons.PayloadBroken, AESKey.val); - if (iv.err) return yield new DecryptionTypes/* DecryptError */.G6(ErrorReasons.PayloadBroken, iv.val); - // Not calling setPostCache here. It's public post and saving key is wasting storage space. - return yield* decryptWithPostAESKey(version, AESKey.val, iv.val, encrypted, options.onDecrypted); - } else if (encryption.type === 'E2E') { - const { iv: _iv , ownersAESKeyEncrypted } = encryption; - if (_iv.err) return yield new DecryptionTypes/* DecryptError */.G6(ErrorReasons.PayloadBroken, _iv.val); - const iv = _iv.val; - const author = _author.unwrapOr(ts_results_esm/* None */.Hq); - // #region // ! decrypt by local key. This only happens in v38 or older. - if (options.message.version <= -38) { - const hasAuthorLocalKey = author.some ? io.hasLocalKeyOf(author.val).catch(()=>false - ) : Promise.resolve(false); - if (ownersAESKeyEncrypted.ok) { - try { - const aes_raw = await io.decryptByLocalKey(author.unwrapOr(null), ownersAESKeyEncrypted.val, iv); - const aes = await importAESKeyFromJWKFromTextEncoder(aes_raw); - io.setPostKeyCache(aes.unwrap()).catch(()=>{}); - return yield* decryptWithPostAESKey(version, aes.unwrap(), iv, encrypted, options.onDecrypted); - } catch (err) { - if (await hasAuthorLocalKey) { - // If we fall into this branch, it means we failed to decrypt as author. - // Since we will not ECDHE to myself when encrypting, - // it does not make sense to try the following steps (because it will never have a result). - return yield new DecryptionTypes/* DecryptError */.G6(ErrorReasons.CannotDecryptAsAuthor, err); - } - // fall through - } - } else { - if (await hasAuthorLocalKey) { - // If the ownersAESKeyEncrypted is corrupted and we're the author, we cannot do anything to continue. - return yield new DecryptionTypes/* DecryptError */.G6(ErrorReasons.CannotDecryptAsAuthor, ownersAESKeyEncrypted.val); - } - // fall through - } - } - // #endregion - // #region // ! decrypt by ECDH - const authorPublicKey = _authorPublicKey.unwrapOr(ts_results_esm/* None */.Hq); - yield progress(DecryptionTypes/* DecryptProgressKind.Progress */.Pj.Progress, { - event: DecryptionTypes/* DecryptIntermediateProgressKind.TryDecryptByE2E */.gO.TryDecryptByE2E - }); - if (version === -37) { - return yield* v37ECDHE(io, encryption, encrypted, options.signal, options.onDecrypted); - } else { - // Static ECDH - // to do static ECDH, we need to have the authors public key first. bail if not found. - const authorECPub = await ts_results_esm/* Result.wrapAsync */.x4.wrapAsync(async ()=>{ - if (authorPublicKey.some) return authorPublicKey.val.key; - return io.queryAuthorPublicKey(author.unwrapOr(null), options.signal); - }); - if (authorECPub.err) return yield new DecryptionTypes/* DecryptError */.G6(ErrorReasons.AuthorPublicKeyNotFound, authorECPub.val); - if (!authorECPub.val) return yield new DecryptionTypes/* DecryptError */.G6(ErrorReasons.AuthorPublicKeyNotFound, undefined); - return yield* v38To40StaticECDH(version, io, authorECPub.val, iv, encrypted, options.signal, options.onDecrypted); - } - // #endregion - } - (0,esm/* unreachable */.t1)(encryption); -} -async function* v37ECDHE(io, encryption, encrypted, signal, report) { - // checked before - const iv = encryption.iv.unwrap(); - // for each inlinedECDHE pub, derive a set of AES key. - const inlinedECDHE_derived = Promise.all(Object.values(encryption.ephemeralPublicKey).map((x)=>x.unwrapOr(null) - ).filter(Boolean).map((x)=>io.deriveAESKey(x.key) - )).then((x)=>x.flat() - ); - async function* postKey() { - if (encryption.ownersAESKeyEncrypted.ok) { - const key = { - encryptedPostKey: encryption.ownersAESKeyEncrypted.val, - postKeyIV: iv - }; - yield key; - } - yield* io.queryPostKey_version37(iv, signal); - } - const ecdh = { - type: 'ephemeral', - derive: (key)=>key ? io.deriveAESKey(key) : inlinedECDHE_derived - }; - return yield* decryptByECDH(-37, io, postKey(), ecdh, importAESKeyFromRaw, iv, encrypted, report); -} -async function* v38To40StaticECDH(version, io, authorECPub, iv1, encrypted, signal, report) { - const postKey = ({ - '-40': async function*(iv) { - const val = await io.queryPostKey_version40(iv); - if (val) yield val; - }, - '-39': io.queryPostKey_version39, - '-38': io.queryPostKey_version38 - })[version](iv1, signal); - const ecdh = { - type: 'static-v38-or-older', - derive: (postKeyIV)=>(0,v38_ecdh/* deriveAESByECDH_version38OrOlderExtraSteps */.D)(io.deriveAESKey, authorECPub, postKeyIV) - }; - return yield* decryptByECDH(version, io, postKey, ecdh, importAESKeyFromJWKFromTextEncoder, iv1, encrypted, report); -} -async function* decryptByECDH(version, io, possiblePostKeyIterator, ecdhProvider, postKeyDecoder, iv, encrypted, report) { - const { derive , type } = ecdhProvider; - for await (const _ of possiblePostKeyIterator){ - const { encryptedPostKey , postKeyIV , ephemeralPublicKey } = _; - // TODO: how to deal with signature? - // TODO: what to do if provider throws? - const derivedKeys = type === 'static-v38-or-older' ? await derive(postKeyIV || iv) : await derive(ephemeralPublicKey).then((aesArr)=>aesArr.map((aes)=>[ - aes, - iv - ] - ) - ); - for (const [derivedKey, derivedKeyNewIV] of derivedKeys){ - const possiblePostKey = await (0,src/* andThenAsync */.ps)((0,utils/* decryptWithAES */.PB)(derivedKey, derivedKeyNewIV, encryptedPostKey), postKeyDecoder); - if (possiblePostKey.err) continue; - const decrypted = await (0,utils/* decryptWithAES */.PB)(possiblePostKey.val, iv, encrypted); - if (decrypted.err) continue; - io.setPostKeyCache(possiblePostKey.val).catch(()=>{}); - // If we'd able to decrypt the raw message, we will stop here. - // because try further key cannot resolve the problem of parseTypedMessage failed. - return yield* parseTypedMessage(version, decrypted.val, report); - } - } - return void (yield new DecryptionTypes/* DecryptError */.G6(ErrorReasons.NotShareTarget, undefined)); -} -async function* decryptWithPostAESKey(version, postAESKey, iv, encrypted, report) { - const { err , val } = await (0,utils/* decryptWithAES */.PB)(postAESKey, iv, encrypted); - if (err) return yield new DecryptionTypes/* DecryptError */.G6(ErrorReasons.DecryptFailed, val); - return yield* parseTypedMessage(version, val, report); -} -async function* parseTypedMessage(version, raw, report) { - const { err , val } = version === -37 ? (0,base/* decodeTypedMessageFromDocument */.Ab)(raw) : (0,base/* decodeTypedMessageV38ToV40Format */.WR)(raw, version); - if (err) return yield new DecryptionTypes/* DecryptError */.G6(ErrorReasons.PayloadDecryptedButTypedMessageBroken, val); - try { - report?.(val); - } catch {} - return yield progress(DecryptionTypes/* DecryptProgressKind.Success */.Pj.Success, { - content: val - }); -} -// uint8 |> TextDecoder |> JSON.parse |> importAESKeyFromJWK -function importAESKeyFromJWKFromTextEncoder(aes_raw) { - return ts_results_esm/* Result.wrapAsync */.x4.wrapAsync(async ()=>{ - const aes_text = new TextDecoder().decode(aes_raw); - const aes_jwk = JSON.parse(aes_text); - if (!aes_jwk.key_ops.includes('decrypt')) aes_jwk.key_ops.push('decrypt'); - return (await (0,utils/* importAES */.yj)(aes_jwk)).unwrap(); - }); -} -function importAESKeyFromRaw(aes_raw) { - return ts_results_esm/* Result.wrapAsync */.x4.wrapAsync(async ()=>{ - return crypto.subtle.importKey('raw', aes_raw, { - name: 'AES-GCM', - length: 256 - }, false, [ - 'decrypt', - ]); - }); -} -function progress(kind, rest) { - return { - type: kind, - ...rest - }; -} - -// EXTERNAL MODULE: ../encryption/src/encryption/Encryption.ts -var Encryption = __webpack_require__(20789); -// EXTERNAL MODULE: ../encryption/src/encryption/AppendEncryption.ts -var AppendEncryption = __webpack_require__(12122); -;// CONCATENATED MODULE: ../encryption/src/encryption/index.ts - - - - - -/***/ }), - -/***/ 95203: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "Ft": () => (/* reexport safe */ _dimensiondev_stego_js_cjs_grayscale_js__WEBPACK_IMPORTED_MODULE_0__.GrayscaleAlgorithm), -/* harmony export */ "Mk": () => (/* binding */ steganographyEncodeImage), -/* harmony export */ "oX": () => (/* binding */ steganographyDecodeImage) -/* harmony export */ }); -/* harmony import */ var _dimensiondev_stego_js_cjs_grayscale_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(34523); -/* harmony import */ var _dimensiondev_stego_js_cjs_transform_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(84140); -/* harmony import */ var _dimensiondev_stego_js_cjs_transform_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_dimensiondev_stego_js_cjs_transform_js__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _dimensiondev_stego_js_cjs_dom_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(50710); -/* harmony import */ var _dimensiondev_stego_js_cjs_dom_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_dimensiondev_stego_js_cjs_dom_js__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var lodash_unified__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(96596); -/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(15773); - - - - - - -const dimensionPreset = [ - { - deprecated: 'legacy post', - width: 1024, - height: 1240, - mask: new URL(/* asset import */ __webpack_require__(93855), __webpack_require__.b).toString() - }, - { - width: 1200, - height: 681, - template: 'v2', - mask: new URL(/* asset import */ __webpack_require__(23689), __webpack_require__.b).toString() - }, - { - width: 1200, - height: 680, - template: 'eth', - mask: new URL(/* asset import */ __webpack_require__(80183), __webpack_require__.b).toString(), - options: { - cropEdgePixels: true - } - }, - { - deprecated: 'event election 2020', - width: 1000, - height: 558, - mask: new URL(/* asset import */ __webpack_require__(80183), __webpack_require__.b).toString() - }, - { - deprecated: 'old NFT', - width: 1000, - height: 560, - mask: new URL(/* asset import */ __webpack_require__(84037), __webpack_require__.b).toString() - }, -]; -const defaultOptions = { - size: 8, - narrow: 0, - copies: 3, - tolerance: 128, - exhaustPixels: true, - cropEdgePixels: false, - fakeMaskPixels: false, - grayscaleAlgorithm: _dimensiondev_stego_js_cjs_grayscale_js__WEBPACK_IMPORTED_MODULE_0__.GrayscaleAlgorithm.NONE, - transformAlgorithm: _dimensiondev_stego_js_cjs_transform_js__WEBPACK_IMPORTED_MODULE_1__.TransformAlgorithm.FFT1D -}; -const isSameDimension = (dimension, otherDimension)=>dimension.width === otherDimension.width && dimension.height === otherDimension.height -; -async function steganographyEncodeImage(buf, options) { - const { template , downloadImage } = options; - const preset = dimensionPreset.find((d)=>d.template && d.template === template - ); - if (!preset) throw new Error('Failed to find preset.'); - return new Uint8Array(await (0,_dimensiondev_stego_js_cjs_dom_js__WEBPACK_IMPORTED_MODULE_2__.encode)(buf, await downloadImage(preset.mask), { - ...defaultOptions, - ...preset?.options, - ...(0,lodash_unified__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z)(options, 'template') - })); -} -async function inner(buf, options) { - const dimension = (0,_utils__WEBPACK_IMPORTED_MODULE_3__/* .getDimension */ .F)(buf); - const preset = dimensionPreset.find((d)=>isSameDimension(d, dimension) - ); - if (!preset) return ''; - return (0,_dimensiondev_stego_js_cjs_dom_js__WEBPACK_IMPORTED_MODULE_2__.decode)(buf, await options.downloadImage(preset.mask), { - ...defaultOptions, - transformAlgorithm: _dimensiondev_stego_js_cjs_transform_js__WEBPACK_IMPORTED_MODULE_1__.TransformAlgorithm.FFT1D, - ...options - }); -} -async function steganographyDecodeImage(image, options) { - return inner(typeof image === 'string' ? await options.downloadImage(image) : await image.arrayBuffer(), options); -} - - -/***/ }), - -/***/ 19586: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - - -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - "Ym": () => (/* reexport */ TwitterDecoder), - "EK": () => (/* reexport */ __TwitterEncoder), - "FW": () => (/* binding */ socialNetworkDecoder), - "zl": () => (/* binding */ socialNetworkEncoder) -}); - -// EXTERNAL MODULE: ../encryption/src/payload/types.ts -var types = __webpack_require__(12628); -// EXTERNAL MODULE: ../shared-base/src/index.ts + 1 modules -var src = __webpack_require__(78144); -// EXTERNAL MODULE: ../../node_modules/.pnpm/ts-results@3.3.0/node_modules/ts-results/esm/index.js + 3 modules -var esm = __webpack_require__(48160); -;// CONCATENATED MODULE: ../encryption/src/social-network-encode-decode/twitter.ts - - -/** - * @link https://github.com/DimensionDev/Maskbook/issues/198 - */ function __TwitterEncoder(text) { - return `https://mask.io/?PostData_v1=${batchReplace(text, [ - [ - '\u{1F3BC}', - '%20' - ], - [ - ':||', - '%40' - ], - [ - '+', - '-' - ], - [ - '=', - '_' - ], - [ - /\|/g, - '.' - ], - ])}`; -} -function TwitterDecoder(raw) { - if (!raw) return esm/* None */.Hq; - if (!raw.includes('%20') || !raw.includes('%40')) return esm/* None */.Hq; - const payloadLink = (0,src/* parseURL */.Lk)(raw).map((x)=>x.replace(/\u2026$/, '') - ).filter((x)=>x.endsWith('%40') - )[0]; - try { - const { search , pathname } = new URL(payloadLink); - const payload = search ? search.slice(1) : pathname.slice(1); - if (!payload) return esm/* None */.Hq; - return (0,esm/* Some */.bD)(`\u{1F3BC}${batchReplace(payload// https://github.com/sindresorhus/eslint-plugin-unicorn/issues/1476 - // eslint-disable-next-line unicorn/better-regex - .replace(/^PostData_v\d=/i, '').replace(/^%20/, '').replace(/%40$/, ''), [ - [ - '-', - '+' - ], - [ - '_', - '=' - ], - [ - /\./g, - '|' - ], - ])}:||`); - } catch { - return esm/* None */.Hq; - } -} -function batchReplace(source, group) { - let storage = source; - for (const v of group){ - storage = storage.replace(v[0], v[1]); - } - return storage; -} - -;// CONCATENATED MODULE: ../encryption/src/social-network-encode-decode/index.ts - - -function socialNetworkDecoder(network, content) { - if (network === types/* SocialNetworkEnum.Twitter */.Gq.Twitter) return TwitterDecoder(content).map((x)=>[ - x - ] - ).unwrapOr([]); - const all = content.match(/(\u{1F3BC}[\w+/=|]+:\|\|)/giu); - if (all) return all; - return []; -} -function socialNetworkEncoder(network, content) { - if (network === types/* SocialNetworkEnum.Twitter */.Gq.Twitter) return __TwitterEncoder(content); - return content; -} - - - -/***/ }), - -/***/ 94299: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "q": () => (/* binding */ MaskMessages) -/* harmony export */ }); -/* harmony import */ var _dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(85646); -/* harmony import */ var _dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(78144); - - -const MaskMessages = new _dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_1__.WebExtensionMessage({ - domain: 'mask' -}); -MaskMessages.serialization = _masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .serializer */ .GM; -Object.assign(globalThis, { - MaskMessages -}); - - -/***/ }), - -/***/ 2762: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "i": () => (/* binding */ status) -/* harmony export */ }); -/* harmony import */ var _shared_ui_locales_legacy_init__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15011); -/* harmony import */ var _setup_ui_0__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(26861); -/* harmony import */ var _social_network_adaptor__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(6277); -/* harmony import */ var _social_network_define__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(57601); -// Start SNS adaptor - - - - -const status = (0,_social_network_define__WEBPACK_IMPORTED_MODULE_3__/* .activateSocialNetworkUI */ .Ps)(); - - -/***/ }), - -/***/ 57601: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "BE": () => (/* binding */ defineSocialNetworkUI), -/* harmony export */ "LB": () => (/* binding */ definedSocialNetworkUIs), -/* harmony export */ "Ps": () => (/* binding */ activateSocialNetworkUI), -/* harmony export */ "tr": () => (/* binding */ defineSocialNetworkWorker), -/* harmony export */ "zq": () => (/* binding */ definedSocialNetworkWorkers) -/* harmony export */ }); -const definedSocialNetworkUIsLocal = new Map(); -const definedSocialNetworkUIs = definedSocialNetworkUIsLocal; -function activateSocialNetworkUI() { - const ui_deferred = [ - ...definedSocialNetworkUIs.values() - ].find((x)=>x.shouldActivate(location) - ); - if (!ui_deferred) return Promise.resolve(false); - return Promise.resolve(/* import() */).then(__webpack_require__.bind(__webpack_require__, 10888)).then((x)=>x.activateSocialNetworkUIInner(ui_deferred) - ).then(()=>true - ); -} -function defineSocialNetworkUI(UI) { - if (UI.notReadyForProduction) { - if (true) return UI; - } - definedSocialNetworkUIsLocal.set(UI.networkIdentifier, UI); - return UI; -} -const definedSocialNetworkWorkers = new Set(); -function defineSocialNetworkWorker(worker) { - if (worker.notReadyForProduction) { - if (true) return; - } - definedSocialNetworkWorkers.add(worker); -} - - -/***/ }), - -/***/ 98541: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - - -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - "Nw": () => (/* reexport */ CompositionContext/* CompositionContext */.N), - "KP": () => (/* reexport */ entry_dom/* PluginI18NFieldRender */.KP), - "je": () => (/* reexport */ entry_dom/* PluginId */.je), - "eT": () => (/* reexport */ PostInfoProvider), - "EK": () => (/* reexport */ entry_dom/* createInjectHooksRenderer */.EK), - "i1": () => (/* reexport */ entry_dom/* registeredPlugins */.i1), - "D4": () => (/* reexport */ sns_adaptor/* startPluginSNSAdaptor */.D4), - "Ar": () => (/* reexport */ sns_adaptor/* useActivatedPluginSNSAdaptor_Web3Supported */.Ar), - "Pz": () => (/* reexport */ sns_adaptor/* useActivatedPluginsSNSAdaptor */.Pz), - "Cp": () => (/* reexport */ CompositionContext/* useCompositionContext */.C), - "eS": () => (/* reexport */ entry_dom/* usePluginI18NField */.eS), - "fI": () => (/* reexport */ entry_dom/* usePluginWrapper */.fI), - "oQ": () => (/* reexport */ usePostInfo), - "H9": () => (/* reexport */ usePostInfoDetails) -}); - -// UNUSED EXPORTS: CurrentSNSNetwork, createPluginMessage, createPluginRPC, createPluginRPCGenerator, getPluginDefine, registerPlugin, registeredPluginIDs, useActivatedPlugin, useActivatedPluginSNSAdaptor, useIsMinimalMode - -// EXTERNAL MODULE: ../plugin-infra/src/entry-dom.ts + 1 modules -var entry_dom = __webpack_require__(3267); -// EXTERNAL MODULE: ../plugin-infra/src/manager/sns-adaptor.ts -var sns_adaptor = __webpack_require__(56400); -// EXTERNAL MODULE: ../shared-base/src/index.ts + 1 modules -var src = __webpack_require__(78144); -// EXTERNAL MODULE: ../shared-base-ui/src/index.ts -var shared_base_ui_src = __webpack_require__(53242); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@dimensiondev+holoflows-kit@0.9.0-20210902104757-7c3d0d0_webextension-polyfill@0.9.0/node_modules/@dimensiondev/holoflows-kit/umd/index.cjs -var umd = __webpack_require__(85646); -// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.0.0/node_modules/react/index.js -var react = __webpack_require__(86248); -// EXTERNAL MODULE: ../../node_modules/.pnpm/use-subscription@1.6.0_react@18.0.0/node_modules/use-subscription/index.js -var use_subscription = __webpack_require__(66040); -;// CONCATENATED MODULE: ../plugin-infra/src/PostContext.ts - - - - - -const Context = (0,react.createContext)(null); -const PostInfoProvider = (0,react.memo)((props)=>{ - return (0,react.createElement)(Context.Provider, { - value: props.post, - children: props.children - }); -}); -function usePostInfo() { - return (0,react.useContext)(Context); -} -const usePostInfoDetails = new Proxy({ - __proto__: null -}, { - get (_, key) { - if (typeof key === 'symbol') throw new Error(); - if (_[key]) return _[key]; - _[key] = function usePostInfoDetails() { - const postInfo = usePostInfo(); - if (!postInfo) throw new TypeError('No post context'); - if (!(key in postInfo)) throw new TypeError(); - const k = postInfo[key]; - // eslint-disable-next-line react-hooks/rules-of-hooks - if (k instanceof umd.ValueRef) return (0,shared_base_ui_src/* useValueRef */.E)(k); - // eslint-disable-next-line react-hooks/rules-of-hooks - if (k instanceof src/* ObservableMap */.vP) return (0,shared_base_ui_src/* useObservableValues */.pv)(k); - // eslint-disable-next-line react-hooks/rules-of-hooks - if (k instanceof src/* ObservableSet */.n7) return (0,shared_base_ui_src/* useObservableValues */.pv)(k); - // eslint-disable-next-line react-hooks/rules-of-hooks - if (isSubscription(k)) return (0,use_subscription.useSubscription)(k); - return k; - }; - return _[key]; - } -}); -function isSubscription(x) { - return typeof x === 'object' && x !== null && Boolean(x.getCurrentValue && x.subscribe); -} - -// EXTERNAL MODULE: ../plugin-infra/src/CompositionContext.tsx -var CompositionContext = __webpack_require__(26537); -;// CONCATENATED MODULE: ../plugin-infra/src/entry-content-script.ts - - - - - - -/***/ }), - -/***/ 4433: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "CB": () => (/* reexport safe */ _manager_dashboard__WEBPACK_IMPORTED_MODULE_1__.CB), -/* harmony export */ "EK": () => (/* reexport safe */ _entry_dom__WEBPACK_IMPORTED_MODULE_0__.EK), -/* harmony export */ "eE": () => (/* reexport safe */ _manager_dashboard__WEBPACK_IMPORTED_MODULE_1__.eE) -/* harmony export */ }); -/* harmony import */ var _entry_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(3267); -/* harmony import */ var _manager_dashboard__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(37271); - - - - -/***/ }), - -/***/ 32393: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "m": () => (/* binding */ useAccount) -/* harmony export */ }); -/* harmony import */ var lodash_unified__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(29730); -/* harmony import */ var _Context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15358); - - -/** - * Get the address of the default wallet - */ function useAccount(pluginID) { - const { account , wallets } = (0,_Context__WEBPACK_IMPORTED_MODULE_0__/* .usePluginWeb3StateContext */ ._$)(pluginID); - return true ? (0,lodash_unified__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)(wallets)?.address ?? '' : 0; -} - - -/***/ }), - -/***/ 38296: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "x": () => (/* binding */ useChainColor) -/* harmony export */ }); -/* harmony import */ var _useChainId__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(32668); -/* harmony import */ var _useWeb3State__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(18618); - - -function useChainColor(pluginID) { - const chainId = (0,_useChainId__WEBPACK_IMPORTED_MODULE_0__/* .useChainId */ .x)(pluginID); - const { Utils } = (0,_useWeb3State__WEBPACK_IMPORTED_MODULE_1__/* .useWeb3State */ .d)(pluginID); - return Utils?.resolveChainColor?.(chainId) ?? 'transparent'; -} - - -/***/ }), - -/***/ 38527: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "K": () => (/* binding */ useChainDetailed) -/* harmony export */ }); -/* harmony import */ var _useChainId__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(32668); -/* harmony import */ var _useWeb3State__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(18618); - - -function useChainDetailed(pluginID) { - const chainId = (0,_useChainId__WEBPACK_IMPORTED_MODULE_0__/* .useChainId */ .x)(pluginID); - const { Utils } = (0,_useWeb3State__WEBPACK_IMPORTED_MODULE_1__/* .useWeb3State */ .d)(pluginID); - return Utils?.getChainDetailed?.(chainId) ?? null; -} - - -/***/ }), - -/***/ 89274: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "a": () => (/* binding */ useChainIdValid) -/* harmony export */ }); -/* harmony import */ var _useChainId__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(32668); -/* harmony import */ var _useWeb3State__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(18618); -/* harmony import */ var _useAccount__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(32393); - - - -function useChainIdValid(pluginID) { - const account = (0,_useAccount__WEBPACK_IMPORTED_MODULE_2__/* .useAccount */ .m)(pluginID); - const chainId = (0,_useChainId__WEBPACK_IMPORTED_MODULE_0__/* .useChainId */ .x)(pluginID); - const { Utils } = (0,_useWeb3State__WEBPACK_IMPORTED_MODULE_1__/* .useWeb3State */ .d)(pluginID); - return !account || (Utils?.isChainIdValid?.(chainId, "production" === 'development') ?? false); -} - - -/***/ }), - -/***/ 93413: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "V": () => (/* binding */ useNetworkDescriptor) -/* harmony export */ }); -/* harmony import */ var _useNetworkType__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(50657); -/* harmony import */ var _Context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(15358); -/* harmony import */ var _manager_store__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(72938); - - - -function useNetworkDescriptor(expectedChainIdOrNetworkTypeOrID, expectedPluginID) { - const pluginID = (0,_Context__WEBPACK_IMPORTED_MODULE_1__/* .useCurrentWeb3NetworkPluginID */ .$f)(); - const pid = expectedPluginID ?? pluginID; - const networkType = (0,_useNetworkType__WEBPACK_IMPORTED_MODULE_0__/* .useNetworkType */ .b)(pid); - return (0,_manager_store__WEBPACK_IMPORTED_MODULE_2__/* .getPluginDefine */ ._W)(pid)?.declareWeb3Networks?.find((x)=>[ - x.chainId, - x.type, - x.ID - ].includes((expectedChainIdOrNetworkTypeOrID ?? networkType) ?? '') - ); -} - - -/***/ }), - -/***/ 4315: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "f": () => (/* binding */ useProviderDescriptor) -/* harmony export */ }); -/* harmony import */ var _useProviderType__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(40989); -/* harmony import */ var _Context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(15358); -/* harmony import */ var _manager_store__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(72938); - - - -function useProviderDescriptor(expectedProviderTypeOrID, expectedPluginID) { - const pluginID = (0,_Context__WEBPACK_IMPORTED_MODULE_1__/* .useCurrentWeb3NetworkPluginID */ .$f)(); - const providerType = (0,_useProviderType__WEBPACK_IMPORTED_MODULE_0__/* .useProviderType */ ._)(expectedPluginID ?? pluginID); - return (0,_manager_store__WEBPACK_IMPORTED_MODULE_2__/* .getPluginDefine */ ._W)(expectedPluginID ?? pluginID)?.declareWeb3Providers?.find((x)=>[ - x.type, - x.ID - ].includes((expectedProviderTypeOrID ?? providerType) ?? '') - ); -} - - -/***/ }), - -/***/ 11103: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "O": () => (/* binding */ useWallet) -/* harmony export */ }); -/* harmony import */ var _useAccount__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(32393); -/* harmony import */ var _Context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(15358); - - -function useWallet(pluginID) { - const account = (0,_useAccount__WEBPACK_IMPORTED_MODULE_0__/* .useAccount */ .m)(pluginID); - const { wallets } = (0,_Context__WEBPACK_IMPORTED_MODULE_1__/* .usePluginWeb3StateContext */ ._$)(pluginID); - return account ? wallets.find((x)=>x.address.toLowerCase() === account.toLowerCase() - ) : undefined; -} - - -/***/ }), - -/***/ 18618: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "d": () => (/* binding */ useWeb3State) -/* harmony export */ }); -/* harmony import */ var _Context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15358); -/* harmony import */ var _hooks_useActivatedPluginWeb3State__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(54605); - - -function useWeb3State(expectedPluginID) { - const pluginID = (0,_Context__WEBPACK_IMPORTED_MODULE_0__/* .useCurrentWeb3NetworkPluginID */ .$f)(); - return (0,_hooks_useActivatedPluginWeb3State__WEBPACK_IMPORTED_MODULE_1__/* .useActivatedPluginWeb3State */ .G)(expectedPluginID ?? pluginID) ?? {}; -} - - -/***/ }), - -/***/ 44619: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "p": () => (/* binding */ useObservableValues) -/* harmony export */ }); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(86248); -/* harmony import */ var use_subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(66040); -/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(78144); - - - -function useObservableValues(map) { - const subscription = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(()=>({ - getCurrentValue: ()=>[ - ...map.values() - ] - , - subscribe: (callback)=>{ - return map.event.on(_masknet_shared_base__WEBPACK_IMPORTED_MODULE_2__/* .ALL_EVENTS */ .Ko, callback); - } - }) - , [ - map - ]); - return (0,use_subscription__WEBPACK_IMPORTED_MODULE_1__.useSubscription)(subscription); -} - - -/***/ }), - -/***/ 18441: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "F": () => (/* binding */ useRemoteControlledDialog) -/* harmony export */ }); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(86248); -/* harmony import */ var uuid__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(32513); - - -/** - * Use a dialog state controlled by remote - */ function useRemoteControlledDialog(event1, onUpdateByRemote, tabType = 'self') { - const [HOOK_ID] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(uuid__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z) // create an uuid for every hook - ; - const [open, setOpen] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false); - (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>event1.on((_ev)=>{ - const event = _ev; - // ignore the event from the same hook - if (event.hookId === HOOK_ID) return; - setOpen(event.open); - onUpdateByRemote?.(_ev); - }) - , [ - onUpdateByRemote, - event1, - HOOK_ID - ]); - const timer = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null); - const onUpdateByLocal = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((ev)=>{ - setOpen(ev.open); - const timer_ = timer.current; - if (timer_ !== null) clearTimeout(timer_); - timer.current = setTimeout(()=>{ - const payload = { - hookId: HOOK_ID, - ...ev - }; - tabType === 'self' ? event1.sendToLocal(payload) : event1.sendToVisiblePages(payload); - }, 100); - }, [ - event1, - tabType, - HOOK_ID - ]); - const openDialog = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(()=>{ - onUpdateByLocal({ - open: true - }); - }, []); - const closeDialog = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(()=>{ - onUpdateByLocal({ - open: false - }); - }, []); - return { - open, - openDialog, - closeDialog, - setDialog: onUpdateByLocal - }; -} - - -/***/ }), - -/***/ 1174: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "Y_": () => (/* binding */ relativeRouteOf), -/* harmony export */ "mZ": () => (/* reexport safe */ _PopupRoutes__WEBPACK_IMPORTED_MODULE_0__.m), -/* harmony export */ "vq": () => (/* reexport safe */ _DashboardRoutes__WEBPACK_IMPORTED_MODULE_1__.v) -/* harmony export */ }); -/* harmony import */ var _PopupRoutes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(57602); -/* harmony import */ var _DashboardRoutes__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(19854); - - -function relativeRouteOf(parent) { - return (child)=>{ - if (!child.startsWith(parent)) throw new Error(); - return child.slice(parent.length).replace(/^\//, ''); - }; -} - - -/***/ }), - -/***/ 40547: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "q": () => (/* binding */ I18NextProviderHMR) -/* harmony export */ }); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(86248); -/* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(60147); -/* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(95878); -/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(78144); - - - -react_i18next__WEBPACK_IMPORTED_MODULE_2__/* .initReactI18next.init */ .Db.init(_masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .i18NextInstance */ .BV); -const I18NextProviderHMR = false ? 0 : react_i18next__WEBPACK_IMPORTED_MODULE_3__/* .I18nextProvider */ .a; - - -/***/ }), - -/***/ 74517: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "Q": () => (/* binding */ SharedContextProvider) -/* harmony export */ }); -/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(71999); -/* harmony import */ var _base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(40915); -/* harmony import */ var _evm__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(70070); - - - -const SharedContextProvider = ({ children })=>{ - return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_base__WEBPACK_IMPORTED_MODULE_1__/* .BaseSharedUIProvider */ .bP, { - children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_evm__WEBPACK_IMPORTED_MODULE_2__/* .EvmSharedUIProvider */ .QQ, { - children: children - }) - }); -}; - - -/***/ }), - -/***/ 81242: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "AZ": () => (/* reexport safe */ _ShadowRoot__WEBPACK_IMPORTED_MODULE_5__.AZ), -/* harmony export */ "Bc": () => (/* reexport safe */ _UIHelper__WEBPACK_IMPORTED_MODULE_2__.Bc), -/* harmony export */ "Cp": () => (/* reexport safe */ _Theme__WEBPACK_IMPORTED_MODULE_4__.Cp), -/* harmony export */ "Dc": () => (/* reexport safe */ _CSSVariables__WEBPACK_IMPORTED_MODULE_3__.Dc), -/* harmony export */ "F4": () => (/* reexport safe */ tss_react__WEBPACK_IMPORTED_MODULE_1__.F4), -/* harmony export */ "Hr": () => (/* reexport safe */ _Theme__WEBPACK_IMPORTED_MODULE_4__.Hr), -/* harmony export */ "I3": () => (/* reexport safe */ _CSSVariables__WEBPACK_IMPORTED_MODULE_3__.I3), -/* harmony export */ "Q": () => (/* reexport safe */ _ShadowRoot__WEBPACK_IMPORTED_MODULE_5__.Q), -/* harmony export */ "QO": () => (/* reexport safe */ _UIHelper__WEBPACK_IMPORTED_MODULE_2__.QO), -/* harmony export */ "R_": () => (/* reexport safe */ _Theme__WEBPACK_IMPORTED_MODULE_4__.R_), -/* harmony export */ "US": () => (/* reexport safe */ _CSSVariables__WEBPACK_IMPORTED_MODULE_3__.US), -/* harmony export */ "ZL": () => (/* reexport safe */ _UIHelper__WEBPACK_IMPORTED_MODULE_2__.ZL), -/* harmony export */ "ZN": () => (/* reexport safe */ _CSSVariables__WEBPACK_IMPORTED_MODULE_3__.ZN), -/* harmony export */ "ad": () => (/* reexport safe */ _ShadowRoot__WEBPACK_IMPORTED_MODULE_5__.ad), -/* harmony export */ "d_": () => (/* reexport safe */ _ShadowRoot__WEBPACK_IMPORTED_MODULE_5__.d_), -/* harmony export */ "lu": () => (/* binding */ parseColor), -/* harmony export */ "nb": () => (/* reexport safe */ _CSSVariables__WEBPACK_IMPORTED_MODULE_3__.nb), -/* harmony export */ "um": () => (/* reexport safe */ _Theme__WEBPACK_IMPORTED_MODULE_4__.um), -/* harmony export */ "zV": () => (/* reexport safe */ _ShadowRoot__WEBPACK_IMPORTED_MODULE_5__.zV), -/* harmony export */ "ze": () => (/* reexport safe */ _UIHelper__WEBPACK_IMPORTED_MODULE_2__.ze) -/* harmony export */ }); -/* harmony import */ var tinycolor2__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(32086); -/* harmony import */ var tinycolor2__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(tinycolor2__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var tss_react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(13442); -/* harmony import */ var _UIHelper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(89567); -/* harmony import */ var _CSSVariables__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(36972); -/* harmony import */ var _Theme__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(68350); -/* harmony import */ var _ShadowRoot__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(82502); -/// -// Some re-exports - -const parseColor = (tinycolor2__WEBPACK_IMPORTED_MODULE_0___default()); - -// - - - - - - -/***/ }), - -/***/ 30232: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "AZ": () => (/* reexport safe */ _entry_base__WEBPACK_IMPORTED_MODULE_4__.AZ), -/* harmony export */ "Bc": () => (/* reexport safe */ _entry_base__WEBPACK_IMPORTED_MODULE_4__.Bc), -/* harmony export */ "Cp": () => (/* reexport safe */ _entry_base__WEBPACK_IMPORTED_MODULE_4__.Cp), -/* harmony export */ "Dc": () => (/* reexport safe */ _entry_base__WEBPACK_IMPORTED_MODULE_4__.Dc), -/* harmony export */ "Df": () => (/* reexport safe */ _Components__WEBPACK_IMPORTED_MODULE_5__.Df), -/* harmony export */ "E1": () => (/* reexport safe */ _Components__WEBPACK_IMPORTED_MODULE_5__.E1), -/* harmony export */ "F4": () => (/* reexport safe */ _entry_base__WEBPACK_IMPORTED_MODULE_4__.F4), -/* harmony export */ "FU": () => (/* reexport safe */ _Components__WEBPACK_IMPORTED_MODULE_5__.FU), -/* harmony export */ "Hr": () => (/* reexport safe */ _entry_base__WEBPACK_IMPORTED_MODULE_4__.Hr), -/* harmony export */ "Ii": () => (/* reexport safe */ _Components__WEBPACK_IMPORTED_MODULE_5__.Ii), -/* harmony export */ "Jc": () => (/* reexport safe */ _Components__WEBPACK_IMPORTED_MODULE_5__.Jc), -/* harmony export */ "Q": () => (/* reexport safe */ _entry_base__WEBPACK_IMPORTED_MODULE_4__.Q), -/* harmony export */ "QO": () => (/* reexport safe */ _entry_base__WEBPACK_IMPORTED_MODULE_4__.QO), -/* harmony export */ "R_": () => (/* reexport safe */ _entry_base__WEBPACK_IMPORTED_MODULE_4__.R_), -/* harmony export */ "US": () => (/* reexport safe */ _entry_base__WEBPACK_IMPORTED_MODULE_4__.US), -/* harmony export */ "YE": () => (/* reexport safe */ _hooks__WEBPACK_IMPORTED_MODULE_6__.Y), -/* harmony export */ "YO": () => (/* reexport safe */ _Components__WEBPACK_IMPORTED_MODULE_5__.YO), -/* harmony export */ "ZL": () => (/* reexport safe */ _entry_base__WEBPACK_IMPORTED_MODULE_4__.ZL), -/* harmony export */ "ZN": () => (/* reexport safe */ _entry_base__WEBPACK_IMPORTED_MODULE_4__.ZN), -/* harmony export */ "ad": () => (/* reexport safe */ _entry_base__WEBPACK_IMPORTED_MODULE_4__.ad), -/* harmony export */ "b4": () => (/* reexport safe */ _Components__WEBPACK_IMPORTED_MODULE_5__.b4), -/* harmony export */ "d_": () => (/* reexport safe */ _entry_base__WEBPACK_IMPORTED_MODULE_4__.d_), -/* harmony export */ "dy": () => (/* binding */ ShadowRootMenu), -/* harmony export */ "g8": () => (/* reexport safe */ _Components__WEBPACK_IMPORTED_MODULE_5__.g8), -/* harmony export */ "lu": () => (/* reexport safe */ _entry_base__WEBPACK_IMPORTED_MODULE_4__.lu), -/* harmony export */ "nb": () => (/* reexport safe */ _entry_base__WEBPACK_IMPORTED_MODULE_4__.nb), -/* harmony export */ "oe": () => (/* reexport safe */ _Components__WEBPACK_IMPORTED_MODULE_5__.oe), -/* harmony export */ "pL": () => (/* reexport safe */ _Components__WEBPACK_IMPORTED_MODULE_5__.pL), -/* harmony export */ "p_": () => (/* binding */ ShadowRootTooltip), -/* harmony export */ "qA": () => (/* reexport safe */ _Components__WEBPACK_IMPORTED_MODULE_5__.qA), -/* harmony export */ "sV": () => (/* binding */ ShadowRootPopper), -/* harmony export */ "tE": () => (/* reexport safe */ _Components__WEBPACK_IMPORTED_MODULE_5__.tE), -/* harmony export */ "um": () => (/* reexport safe */ _entry_base__WEBPACK_IMPORTED_MODULE_4__.um), -/* harmony export */ "wT": () => (/* reexport safe */ _Components__WEBPACK_IMPORTED_MODULE_5__.wT), -/* harmony export */ "xV": () => (/* reexport safe */ _Components__WEBPACK_IMPORTED_MODULE_5__.xV), -/* harmony export */ "yu": () => (/* reexport safe */ _Components__WEBPACK_IMPORTED_MODULE_5__.yu), -/* harmony export */ "zV": () => (/* reexport safe */ _entry_base__WEBPACK_IMPORTED_MODULE_4__.zV), -/* harmony export */ "ze": () => (/* reexport safe */ _entry_base__WEBPACK_IMPORTED_MODULE_4__.ze) -/* harmony export */ }); -/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(26405); -/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(38090); -/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(47205); -/* harmony import */ var _ShadowRoot_Portal__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(13888); -/* harmony import */ var _entry_base__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(81242); -/* harmony import */ var _Components__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(44352); -/* harmony import */ var _hooks__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(45548); -/// - - -const ShadowRootTooltip = (0,_ShadowRoot_Portal__WEBPACK_IMPORTED_MODULE_0__/* .createShadowRootForwardedPopperComponent */ .vg)(_mui_material__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z); -const ShadowRootMenu = (0,_ShadowRoot_Portal__WEBPACK_IMPORTED_MODULE_0__/* .createShadowRootForwardedComponent */ .lr)(_mui_material__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z); -const ShadowRootPopper = (0,_ShadowRoot_Portal__WEBPACK_IMPORTED_MODULE_0__/* .createShadowRootForwardedComponent */ .lr)(_mui_material__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z); - - - - - -/***/ }) - -}]); \ No newline at end of file diff --git a/DevelopmentPod/MaskbookPlugin/maskbook/js/3803.js b/DevelopmentPod/MaskbookPlugin/maskbook/js/3803.js new file mode 100644 index 00000000..c1e458a5 --- /dev/null +++ b/DevelopmentPod/MaskbookPlugin/maskbook/js/3803.js @@ -0,0 +1,2412 @@ +"use strict"; +(globalThis["webpackChunk_masknet_extension"] = globalThis["webpackChunk_masknet_extension"] || []).push([[3803],{ + +/***/ 9221: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + + +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "Gp": () => (/* reexport */ addDashboardI18N) +}); + +// UNUSED EXPORTS: IntegratedDashboard, setMessages, setPluginMessages, setPluginServices, setService + +// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.1.0/node_modules/react/jsx-runtime.js +var jsx_runtime = __webpack_require__(35667); +// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.1.0/node_modules/react/index.js +var react = __webpack_require__(58757); +;// CONCATENATED MODULE: ../dashboard/src/Dashboard.tsx + + +const Dashboard = /*#__PURE__*/ (/* unused pure expression or super */ null && (lazy(()=>Promise.all(/* import() */[__webpack_require__.e(5638), __webpack_require__.e(7871), __webpack_require__.e(8136), __webpack_require__.e(3617), __webpack_require__.e(4162), __webpack_require__.e(4601)]).then(__webpack_require__.bind(__webpack_require__, 34601)) +))); +function IntegratedDashboard() { + return /*#__PURE__*/ _jsx(Suspense, { + fallback: "", + children: /*#__PURE__*/ _jsx(Dashboard, {}) + }); +} + +// EXTERNAL MODULE: ../dashboard/src/locales/en-US.json +var en_US = __webpack_require__(62012); +// EXTERNAL MODULE: ../dashboard/src/locales/ja-JP.json +var ja_JP = __webpack_require__(97979); +// EXTERNAL MODULE: ../dashboard/src/locales/ko-KR.json +var ko_KR = __webpack_require__(75743); +// EXTERNAL MODULE: ../dashboard/src/locales/qya-AA.json +var qya_AA = __webpack_require__(59641); +// EXTERNAL MODULE: ../dashboard/src/locales/zh-CN.json +var zh_CN = __webpack_require__(32284); +// EXTERNAL MODULE: ../dashboard/src/locales/zh-TW.json +var zh_TW = __webpack_require__(39675); +// EXTERNAL MODULE: ../shared-base/src/index.ts + 2 modules +var src = __webpack_require__(44451); +;// CONCATENATED MODULE: ../dashboard/src/locales/languages.ts +// This file is auto generated. DO NOT EDIT +// Run `npx gulp sync-languages` to regenerate. +// Default fallback language in a family of languages are chosen by the alphabet order +// To overwrite this, please overwrite packages/scripts/src/locale-kit-next/index.ts + + + + + + +const languages = { + en: en_US, + ja: ja_JP, + ko: ko_KR, + qy: qya_AA, + 'zh-CN': zh_CN, + zh: zh_TW +}; + +const addDashboardI18N = (0,src/* createI18NBundle */.C9)('dashboard', languages); +// @ts-ignore +if (false) {} + +;// CONCATENATED MODULE: ../dashboard/src/entry.tsx +// This entry is for dashboard used as a package (required by the main extension). +// Should only expose necessary API for setup the Dashboard API correctly. + + + + + +/***/ }), + +/***/ 64287: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "c": () => (/* binding */ appendEncryptionTarget) +/* harmony export */ }); +/* harmony import */ var _dimensiondev_kit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(46123); +/* harmony import */ var _Encryption__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(87155); +/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(52639); +/* harmony import */ var _v37_ecdh__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(21508); +/* harmony import */ var _v38_ecdh__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(40410); + + + + + +async function appendEncryptionTarget(options, io) { + const target = { + type: 'E2E', + target: options.target + }; + const postKeyEncoded = (0,_Encryption__WEBPACK_IMPORTED_MODULE_1__/* .encodePostKey */ .v3)(options.version, options.postAESKey); + if (options.version === -38) { + return (0,_v38_ecdh__WEBPACK_IMPORTED_MODULE_4__/* .v38_addReceiver */ .i)(postKeyEncoded, target, io); + } else if (options.version === -37) { + const { getEphemeralKey } = (0,_utils__WEBPACK_IMPORTED_MODULE_2__/* .createEphemeralKeysMap */ .X)(io); + return (0,_v37_ecdh__WEBPACK_IMPORTED_MODULE_3__/* .v37_addReceiver */ .m)(false, { + postKeyEncoded, + postIV: options.iv, + getEphemeralKey + }, target, io); + } + (0,_dimensiondev_kit__WEBPACK_IMPORTED_MODULE_0__/* .unreachable */ .t1)(options.version); +} + + +/***/ }), + +/***/ 87155: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "HI": () => (/* binding */ encrypt), +/* harmony export */ "v3": () => (/* binding */ encodePostKey) +/* harmony export */ }); +/* harmony import */ var _dimensiondev_kit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(46123); +/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(44451); +/* harmony import */ var _masknet_typed_message__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(80681); +/* harmony import */ var ts_results__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(48160); +/* harmony import */ var _payload__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(91743); +/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(53908); +/* harmony import */ var _EncryptionTypes__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(79585); +/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(52639); +/* harmony import */ var _v37_ecdh__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(21508); +/* harmony import */ var _v38_ecdh__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(40410); + + + + + + + + + + + +async function encrypt(options, io) { + const postIV = (0,_utils__WEBPACK_IMPORTED_MODULE_7__/* .fillIV */ .i)(io); + const postKey = await aes256GCM(io); + if (!postKey.usages.includes('encrypt') || !postKey.usages.includes('decrypt') || !postKey.extractable) { + throw new _EncryptionTypes__WEBPACK_IMPORTED_MODULE_6__/* .EncryptError */ .x(_EncryptionTypes__WEBPACK_IMPORTED_MODULE_6__/* .EncryptErrorReasons.AESKeyUsageError */ .U.AESKeyUsageError); + } + const authorPublic = queryAuthorPublicKey(options.author || null, io); + const encodedMessage = encodeMessage(options.version, options.message); + const encryptedMessage = encodedMessage.then((message)=>(0,_utils__WEBPACK_IMPORTED_MODULE_5__/* .encryptWithAES */ .l_)(postKey, postIV, message) + ).then((x)=>x.unwrap() + ); + let encryption; + let ecdhResult; + if (options.target.type === 'public') { + encryption = { + iv: postIV, + type: 'public', + AESKey: postKey + }; + } else { + const postKeyEncoded = encodePostKey(options.version, postKey); + const context = { + authorPublic, + postKeyEncoded, + postIV + }; + if (options.version === -38) [encryption, ecdhResult] = await e2e_v38(context, options.target, io); + else if (options.version === -37) [encryption, ecdhResult] = await e2e_v37(context, options.target, io); + else (0,_dimensiondev_kit__WEBPACK_IMPORTED_MODULE_0__/* .unreachable */ .t1)(options.version); + } + const payload = _payload__WEBPACK_IMPORTED_MODULE_4__/* .encodePayload.NoSign */ .V1.NoSign({ + version: options.version, + author: options.author ? (0,ts_results__WEBPACK_IMPORTED_MODULE_3__/* .Some */ .bD)(options.author) : ts_results__WEBPACK_IMPORTED_MODULE_3__/* .None */ .Hq, + authorPublicKey: await authorPublic, + encryption, + encrypted: await encryptedMessage, + signature: ts_results__WEBPACK_IMPORTED_MODULE_3__/* .None */ .Hq + }).then((x)=>x.unwrap() + ); + return { + author: options.author, + identifier: new _masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .PostIVIdentifier */ .bb(options.network, (0,_dimensiondev_kit__WEBPACK_IMPORTED_MODULE_0__/* .encodeArrayBuffer */ .ll)(postIV)), + postKey, + output: await payload, + e2e: ecdhResult + }; +} +/** @internal */ async function encodePostKey(version, key) { + if (version === -37) return crypto.subtle.exportKey('raw', key).then((x)=>new Uint8Array(x) + ); + else if (version === -38) return crypto.subtle.exportKey('jwk', key).then(JSON.stringify).then((x)=>new TextEncoder().encode(x) + ); + (0,_dimensiondev_kit__WEBPACK_IMPORTED_MODULE_0__/* .unreachable */ .t1)(version); +} +async function e2e_v37(context, target, io) { + const { authorPublic , postIV , postKeyEncoded } = context; + const authorPublicKey = await authorPublic; + if (!authorPublicKey.some) throw new _EncryptionTypes__WEBPACK_IMPORTED_MODULE_6__/* .EncryptError */ .x(_EncryptionTypes__WEBPACK_IMPORTED_MODULE_6__/* .EncryptErrorReasons.PublicKeyNotFound */ .U.PublicKeyNotFound); + const { ephemeralKeys , getEphemeralKey } = (0,_utils__WEBPACK_IMPORTED_MODULE_7__/* .createEphemeralKeysMap */ .X)(io); + const ecdhResult = (0,_v37_ecdh__WEBPACK_IMPORTED_MODULE_8__/* .v37_addReceiver */ .m)(true, { + ...context, + getEphemeralKey + }, target, io); + const ownersAESKeyEncrypted = Promise.resolve().then(async ()=>{ + const [, ephemeralPrivateKey] = await getEphemeralKey(authorPublicKey.val.algr); + // we get rid of localKey in v38 + const aes = await crypto.subtle.deriveKey({ + name: 'ECDH', + public: authorPublicKey.val.key + }, ephemeralPrivateKey, { + name: 'AES-GCM', + length: 256 + }, true, [ + 'encrypt' + ]); + // Note: we're reusing iv in the post encryption. + const encryptedPostKey = await (0,_utils__WEBPACK_IMPORTED_MODULE_5__/* .encryptWithAES */ .l_)(aes, postIV, await postKeyEncoded); + return encryptedPostKey.unwrap(); + }); + const encryption = { + type: 'E2E', + ephemeralPublicKey: new Map(), + iv: postIV, + ownersAESKeyEncrypted: await ownersAESKeyEncrypted + }; + // wait ecdh to finish write ephemeralKeys + await ecdhResult; + for (const [curve, keys] of ephemeralKeys){ + encryption.ephemeralPublicKey.set(curve, (await keys)[0]); + } + return [ + encryption, + await ecdhResult + ]; +} +async function e2e_v38(context, target, io) { + const { postIV , postKeyEncoded } = context; + const ecdhResult = await (0,_v38_ecdh__WEBPACK_IMPORTED_MODULE_9__/* .v38_addReceiver */ .i)(postKeyEncoded, target, io); + const encryption = { + type: 'E2E', + // v38 does not support ephemeral encryption. + ephemeralPublicKey: new Map(), + iv: postIV, + ownersAESKeyEncrypted: await io.encryptByLocalKey(await postKeyEncoded, postIV) + }; + return [ + encryption, + ecdhResult + ]; +} +async function encodeMessage(version, message) { + if (version === -37) return (0,_masknet_typed_message__WEBPACK_IMPORTED_MODULE_2__/* .encodeTypedMessageToDocument */ .F9)(message); + if (!(0,_masknet_typed_message__WEBPACK_IMPORTED_MODULE_2__/* .isTypedMessageText */ .Rz)(message)) throw new _EncryptionTypes__WEBPACK_IMPORTED_MODULE_6__/* .EncryptError */ .x(_EncryptionTypes__WEBPACK_IMPORTED_MODULE_6__/* .EncryptErrorReasons.ComplexTypedMessageNotSupportedInPayload38 */ .U.ComplexTypedMessageNotSupportedInPayload38); + return (0,_masknet_typed_message__WEBPACK_IMPORTED_MODULE_2__/* .encodeTypedMessageV38Format */ .Hu)(message); +} +async function queryAuthorPublicKey(of, io) { + try { + if (!of) return ts_results__WEBPACK_IMPORTED_MODULE_3__/* .None */ .Hq; + const key = await io.queryPublicKey(of); + if (!key) return ts_results__WEBPACK_IMPORTED_MODULE_3__/* .None */ .Hq; + return (0,ts_results__WEBPACK_IMPORTED_MODULE_3__/* .Some */ .bD)(key); + } catch (error) { + console.warn('[@masknet/encryption] Failed when query author public key', error); + return ts_results__WEBPACK_IMPORTED_MODULE_3__/* .None */ .Hq; + } +} +async function aes256GCM(io) { + if (io.getRandomAESKey) return io.getRandomAESKey(); + return await crypto.subtle.generateKey({ + name: 'AES-GCM', + length: 256 + }, true, [ + 'encrypt', + 'decrypt', + ]); +} + + +/***/ }), + +/***/ 79585: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "U": () => (/* binding */ EncryptErrorReasons), +/* harmony export */ "x": () => (/* binding */ EncryptError) +/* harmony export */ }); +/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(44451); + +var EncryptErrorReasons; +(function(EncryptErrorReasons) { + EncryptErrorReasons["ComplexTypedMessageNotSupportedInPayload38"] = '[@masknet/encryption] Complex TypedMessage is not supported in payload v38.'; + EncryptErrorReasons["PublicKeyNotFound"] = '[@masknet/encryption] Target public key not found.'; + EncryptErrorReasons["AESKeyUsageError"] = "[@masknet/encryption] AES key generated by IO doesn't have the correct usages or extractable property."; +})(EncryptErrorReasons || (EncryptErrorReasons = {})); +class EncryptError extends Error { + constructor(message, cause){ + super(message, { + cause + }); + this.message = message; + } +} +EncryptError.Reasons = EncryptErrorReasons; +(0,_masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .registerSerializableClass */ .tr)('MaskEncryptError', (x)=>x instanceof EncryptError +, (e)=>({ + cause: e.cause, + message: e.message, + stack: e.stack + }) +, (o)=>{ + const e = new EncryptError(o.message, o.cause); + e.stack = o.stack; + return e; +}); + + +/***/ }), + +/***/ 60119: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + + +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "G6": () => (/* reexport */ DecryptionTypes/* DecryptError */.G6), + "OF": () => (/* reexport */ DecryptionTypes/* DecryptErrorReasons */.OF), + "gO": () => (/* reexport */ DecryptionTypes/* DecryptIntermediateProgressKind */.gO), + "Pj": () => (/* reexport */ DecryptionTypes/* DecryptProgressKind */.Pj), + "cV": () => (/* reexport */ AppendEncryption/* appendEncryptionTarget */.c), + "pe": () => (/* reexport */ decrypt), + "HI": () => (/* reexport */ Encryption/* encrypt */.HI) +}); + +// UNUSED EXPORTS: EncryptError, EncryptErrorReasons, encodePostKey + +// EXTERNAL MODULE: ../../node_modules/.pnpm/@dimensiondev+kit@0.0.0-20220617045824-8bc7a27/node_modules/@dimensiondev/kit/esm/index.js +var esm = __webpack_require__(46123); +// EXTERNAL MODULE: ../typed-message/base/index.ts + 2 modules +var base = __webpack_require__(80681); +// EXTERNAL MODULE: ../shared-base/src/index.ts + 2 modules +var src = __webpack_require__(44451); +// EXTERNAL MODULE: ../../node_modules/.pnpm/ts-results@3.3.0/node_modules/ts-results/esm/index.js + 3 modules +var ts_results_esm = __webpack_require__(48160); +// EXTERNAL MODULE: ../encryption/src/utils/index.ts + 1 modules +var utils = __webpack_require__(53908); +// EXTERNAL MODULE: ../encryption/src/encryption/DecryptionTypes.ts +var DecryptionTypes = __webpack_require__(59182); +// EXTERNAL MODULE: ../encryption/src/encryption/v38-ecdh.ts +var v38_ecdh = __webpack_require__(40410); +;// CONCATENATED MODULE: ../encryption/src/encryption/Decryption.ts + + + + + + + + +const ErrorReasons = DecryptionTypes/* DecryptError.Reasons */.G6.Reasons; +async function* decrypt(options, io) { + const { author: _author , encrypted: _encrypted , encryption: _encryption , version } = options.message; + const { authorPublicKey: _authorPublicKey } = options.message; + if (_encryption.err) return yield new DecryptionTypes/* DecryptError */.G6(ErrorReasons.PayloadBroken, _encryption.val); + if (_encrypted.err) return yield new DecryptionTypes/* DecryptError */.G6(ErrorReasons.PayloadBroken, _encrypted.val); + const encryption = _encryption.val; + const encrypted = _encrypted.val; + // ! try decrypt by cache + { + const cacheKey = await io.getPostKeyCache().catch(()=>null + ); + const iv = encryption.iv.unwrapOr(null); + if (cacheKey && iv) return yield* decryptWithPostAESKey(version, cacheKey, iv, encrypted, options.onDecrypted); + } + if (encryption.type === 'public') { + const { AESKey , iv } = encryption; + if (AESKey.err) return yield new DecryptionTypes/* DecryptError */.G6(ErrorReasons.PayloadBroken, AESKey.val); + if (iv.err) return yield new DecryptionTypes/* DecryptError */.G6(ErrorReasons.PayloadBroken, iv.val); + // Not calling setPostCache here. It's public post and saving key is wasting storage space. + return yield* decryptWithPostAESKey(version, AESKey.val, iv.val, encrypted, options.onDecrypted); + } else if (encryption.type === 'E2E') { + const { iv: _iv , ownersAESKeyEncrypted } = encryption; + if (_iv.err) return yield new DecryptionTypes/* DecryptError */.G6(ErrorReasons.PayloadBroken, _iv.val); + const iv = _iv.val; + const author = _author.unwrapOr(ts_results_esm/* None */.Hq); + // #region // ! decrypt by local key. This only happens in v38 or older. + if (options.message.version <= -38) { + const hasAuthorLocalKey = author.some ? io.hasLocalKeyOf(author.val).catch(()=>false + ) : Promise.resolve(false); + if (ownersAESKeyEncrypted.ok) { + try { + const aes_raw = await io.decryptByLocalKey(author.unwrapOr(null), ownersAESKeyEncrypted.val, iv); + const aes = await importAESKeyFromJWKFromTextEncoder(aes_raw); + io.setPostKeyCache(aes.unwrap()).catch(()=>{}); + return yield* decryptWithPostAESKey(version, aes.unwrap(), iv, encrypted, options.onDecrypted); + } catch (err) { + if (await hasAuthorLocalKey) { + // If we fall into this branch, it means we failed to decrypt as author. + // Since we will not ECDHE to myself when encrypting, + // it does not make sense to try the following steps (because it will never have a result). + return yield new DecryptionTypes/* DecryptError */.G6(ErrorReasons.CannotDecryptAsAuthor, err); + } + // fall through + } + } else { + if (await hasAuthorLocalKey) { + // If the ownersAESKeyEncrypted is corrupted and we're the author, we cannot do anything to continue. + return yield new DecryptionTypes/* DecryptError */.G6(ErrorReasons.CannotDecryptAsAuthor, ownersAESKeyEncrypted.val); + } + // fall through + } + } + // #endregion + // #region // ! decrypt by ECDH + const authorPublicKey = _authorPublicKey.unwrapOr(ts_results_esm/* None */.Hq); + yield progress(DecryptionTypes/* DecryptProgressKind.Progress */.Pj.Progress, { + event: DecryptionTypes/* DecryptIntermediateProgressKind.TryDecryptByE2E */.gO.TryDecryptByE2E + }); + if (version === -37) { + return yield* v37ECDHE(io, encryption, encrypted, options.signal, options.onDecrypted); + } else { + // Static ECDH + // to do static ECDH, we need to have the authors public key first. bail if not found. + const authorECPub = await ts_results_esm/* Result.wrapAsync */.x4.wrapAsync(async ()=>{ + if (authorPublicKey.some) return authorPublicKey.val.key; + return io.queryAuthorPublicKey(author.unwrapOr(null), options.signal); + }); + if (authorECPub.err) return yield new DecryptionTypes/* DecryptError */.G6(ErrorReasons.AuthorPublicKeyNotFound, authorECPub.val); + if (!authorECPub.val) return yield new DecryptionTypes/* DecryptError */.G6(ErrorReasons.AuthorPublicKeyNotFound, undefined); + return yield* v38To40StaticECDH(version, io, authorECPub.val, iv, encrypted, options.signal, options.onDecrypted); + } + // #endregion + } + (0,esm/* unreachable */.t1)(encryption); +} +async function* v37ECDHE(io, encryption, encrypted, signal, report) { + // checked before + const iv = encryption.iv.unwrap(); + // for each inlinedECDHE pub, derive a set of AES key. + const inlinedECDHE_derived = Promise.all(Object.values(encryption.ephemeralPublicKey).map((x)=>x.unwrapOr(null) + ).filter(Boolean).map((x)=>io.deriveAESKey(x.key) + )).then((x)=>x.flat() + ); + async function* postKey() { + if (encryption.ownersAESKeyEncrypted.ok) { + const key = { + encryptedPostKey: encryption.ownersAESKeyEncrypted.val, + postKeyIV: iv + }; + yield key; + } + yield* io.queryPostKey_version37(iv, signal); + } + const ecdh = { + type: 'ephemeral', + derive: (key)=>key ? io.deriveAESKey(key) : inlinedECDHE_derived + }; + return yield* decryptByECDH(-37, io, postKey(), ecdh, importAESKeyFromRaw, iv, encrypted, report); +} +async function* v38To40StaticECDH(version, io, authorECPub, iv1, encrypted, signal, report) { + const postKey = ({ + async *'-40' (iv) { + const val = await io.queryPostKey_version40(iv); + if (val) yield val; + }, + '-39': io.queryPostKey_version39, + '-38': io.queryPostKey_version38 + })[version](iv1, signal); + const ecdh = { + type: 'static-v38-or-older', + derive: (postKeyIV)=>(0,v38_ecdh/* deriveAESByECDH_version38OrOlderExtraSteps */.D)(io.deriveAESKey, authorECPub, postKeyIV) + }; + return yield* decryptByECDH(version, io, postKey, ecdh, importAESKeyFromJWKFromTextEncoder, iv1, encrypted, report); +} +async function* decryptByECDH(version, io, possiblePostKeyIterator, ecdhProvider, postKeyDecoder, iv, encrypted, report) { + const { derive , type } = ecdhProvider; + for await (const _ of possiblePostKeyIterator){ + const { encryptedPostKey , postKeyIV , ephemeralPublicKey } = _; + // TODO: how to deal with signature? + // TODO: what to do if provider throws? + const derivedKeys = type === 'static-v38-or-older' ? await derive(postKeyIV || iv) : await derive(ephemeralPublicKey).then((aesArr)=>aesArr.map((aes)=>[ + aes, + iv + ] + ) + ); + for (const [derivedKey, derivedKeyNewIV] of derivedKeys){ + const possiblePostKey = await (0,src/* andThenAsync */.ps)((0,utils/* decryptWithAES */.PB)(derivedKey, derivedKeyNewIV, encryptedPostKey), postKeyDecoder); + if (possiblePostKey.err) continue; + const decrypted = await (0,utils/* decryptWithAES */.PB)(possiblePostKey.val, iv, encrypted); + if (decrypted.err) continue; + io.setPostKeyCache(possiblePostKey.val).catch(()=>{}); + // If we'd able to decrypt the raw message, we will stop here. + // because try further key cannot resolve the problem of parseTypedMessage failed. + return yield* parseTypedMessage(version, decrypted.val, report); + } + } + return void (yield new DecryptionTypes/* DecryptError */.G6(ErrorReasons.NotShareTarget, undefined)); +} +async function* decryptWithPostAESKey(version, postAESKey, iv, encrypted, report) { + const { err , val } = await (0,utils/* decryptWithAES */.PB)(postAESKey, iv, encrypted); + if (err) return yield new DecryptionTypes/* DecryptError */.G6(ErrorReasons.DecryptFailed, val); + return yield* parseTypedMessage(version, val, report); +} +async function* parseTypedMessage(version, raw, report) { + const { err , val } = version === -37 ? (0,base/* decodeTypedMessageFromDocument */.Ab)(raw) : (0,base/* decodeTypedMessageV38ToV40Format */.WR)(raw, version); + if (err) return yield new DecryptionTypes/* DecryptError */.G6(ErrorReasons.PayloadDecryptedButTypedMessageBroken, val); + try { + report?.(val); + } catch {} + return yield progress(DecryptionTypes/* DecryptProgressKind.Success */.Pj.Success, { + content: val + }); +} +// uint8 |> TextDecoder |> JSON.parse |> importAESKeyFromJWK +function importAESKeyFromJWKFromTextEncoder(aes_raw) { + return ts_results_esm/* Result.wrapAsync */.x4.wrapAsync(async ()=>{ + const aes_text = new TextDecoder().decode(aes_raw); + const aes_jwk = JSON.parse(aes_text); + if (!aes_jwk.key_ops.includes('decrypt')) aes_jwk.key_ops.push('decrypt'); + return (await (0,utils/* importAES */.yj)(aes_jwk)).unwrap(); + }); +} +function importAESKeyFromRaw(aes_raw) { + return ts_results_esm/* Result.wrapAsync */.x4.wrapAsync(async ()=>{ + return crypto.subtle.importKey('raw', aes_raw, { + name: 'AES-GCM', + length: 256 + }, false, [ + 'decrypt', + ]); + }); +} +function progress(kind, rest) { + return { + type: kind, + ...rest + }; +} + +// EXTERNAL MODULE: ../encryption/src/encryption/Encryption.ts +var Encryption = __webpack_require__(87155); +// EXTERNAL MODULE: ../encryption/src/encryption/AppendEncryption.ts +var AppendEncryption = __webpack_require__(64287); +;// CONCATENATED MODULE: ../encryption/src/encryption/index.ts + + + + + +/***/ }), + +/***/ 52639: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "X": () => (/* binding */ createEphemeralKeysMap), +/* harmony export */ "i": () => (/* binding */ fillIV) +/* harmony export */ }); +/* harmony import */ var _payload__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(91743); + +/** @internal */ function createEphemeralKeysMap(io) { + const ephemeralKeys = new Map(); + // get ephemeral keys, generate one if not found + async function getEphemeralKey(curve) { + if (ephemeralKeys.has(curve)) return ephemeralKeys.get(curve); + ephemeralKeys.set(curve, generateEC_KeyPair(io, curve)); + return ephemeralKeys.get(curve); + } + return { + ephemeralKeys, + getEphemeralKey + }; +} +/** @internal */ function fillIV(io) { + if (io.getRandomValues) return io.getRandomValues(new Uint8Array(16)); + return crypto.getRandomValues(new Uint8Array(16)); +} +async function generateEC_KeyPair(io, kind) { + if (io.getRandomECKey) return io.getRandomECKey(kind); + const namedCurve = { + [_payload__WEBPACK_IMPORTED_MODULE_0__/* .EC_KeyCurveEnum.secp256p1 */ .qx.secp256p1]: 'P-256', + [_payload__WEBPACK_IMPORTED_MODULE_0__/* .EC_KeyCurveEnum.secp256k1 */ .qx.secp256k1]: 'K-256', + get [_payload__WEBPACK_IMPORTED_MODULE_0__/* .EC_KeyCurveEnum.ed25519 */ .qx.ed25519] () { + throw new Error('TODO: support ED25519'); + } + }; + const { privateKey , publicKey } = await crypto.subtle.generateKey({ + name: 'ECDH', + namedCurve: namedCurve[kind] + }, true, [ + 'deriveKey' + ]); + return [ + publicKey, + privateKey + ]; +} + + +/***/ }), + +/***/ 21508: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "m": () => (/* binding */ v37_addReceiver) +/* harmony export */ }); +/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(53908); +/* harmony import */ var _EncryptionTypes__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(79585); +/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(52639); + + + +/** @internal */ async function v37_addReceiver(firstTime, context, target, io) { + const { getEphemeralKey , postIV , postKeyEncoded } = context; + const ecdh = Promise.allSettled(target.target.map(async (id)=>{ + const iv = postIV || (0,_utils__WEBPACK_IMPORTED_MODULE_2__/* .fillIV */ .i)(io); + const receiverPublicKey = await io.queryPublicKey(id); + if (!receiverPublicKey) throw new _EncryptionTypes__WEBPACK_IMPORTED_MODULE_1__/* .EncryptError */ .x(_EncryptionTypes__WEBPACK_IMPORTED_MODULE_1__/* .EncryptErrorReasons.PublicKeyNotFound */ .U.PublicKeyNotFound); + const [ephemeralPublicKey, ephemeralPrivateKey] = await getEphemeralKey(receiverPublicKey.algr); + const aes = await crypto.subtle.deriveKey({ + name: 'ECDH', + public: receiverPublicKey.key + }, ephemeralPrivateKey, { + name: 'AES-GCM', + length: 256 + }, true, [ + 'encrypt' + ]); + // Note: we're reusing iv in the post encryption. + const encryptedPostKey = await (0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .encryptWithAES */ .l_)(aes, iv, await postKeyEncoded); + const result = { + encryptedPostKey: encryptedPostKey.unwrap(), + target: id + }; + if (!firstTime) result.ephemeralPublicKey = ephemeralPublicKey; + return result; + })).then((x)=>x.entries() + ); + const ecdhResult = new Map(); + for (const [index, result1] of (await ecdh)){ + ecdhResult.set(target.target[index], result1); + } + return ecdhResult; +} + + +/***/ }), + +/***/ 40410: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "D": () => (/* binding */ deriveAESByECDH_version38OrOlderExtraSteps), +/* harmony export */ "i": () => (/* binding */ v38_addReceiver) +/* harmony export */ }); +/* harmony import */ var _dimensiondev_kit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(46123); +/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(53908); +/* harmony import */ var _EncryptionTypes__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(79585); +/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(52639); + + + + +const KEY = (0,_dimensiondev_kit__WEBPACK_IMPORTED_MODULE_0__/* .decodeArrayBuffer */ .xe)('KEY'); +const IV = (0,_dimensiondev_kit__WEBPACK_IMPORTED_MODULE_0__/* .decodeArrayBuffer */ .xe)('IV'); +/** + * Derive a group of AES key for ECDH. + * + * !! For the compatibility, you should refer to the original implementation: + * + * !! https://github.com/DimensionDev/Maskbook/blob/f3d83713d60dd0aad462e0648c4d38586c106edc/packages/mask/src/crypto/crypto-alpha-40.ts#L29-L58 + * + * @internal + */ async function deriveAESByECDH_version38OrOlderExtraSteps(deriveAESByECDH, pub, iv) { + const deriveResult = await deriveAESByECDH(pub); + const extraSteps = deriveResult.map(async (key)=>{ + const derivedKeyRaw = await crypto.subtle.exportKey('raw', key); + const _a = (0,_dimensiondev_kit__WEBPACK_IMPORTED_MODULE_0__/* .concatArrayBuffer */ .v_)(derivedKeyRaw, iv); + const nextAESKeyMaterial = await crypto.subtle.digest('SHA-256', (0,_dimensiondev_kit__WEBPACK_IMPORTED_MODULE_0__/* .concatArrayBuffer */ .v_)(_a, iv, KEY)); + const iv_pre = new Uint8Array(await crypto.subtle.digest('SHA-256', (0,_dimensiondev_kit__WEBPACK_IMPORTED_MODULE_0__/* .concatArrayBuffer */ .v_)(_a, iv, IV))); + const nextIV = new Uint8Array(16); + for(let i = 0; i <= 16; i += 1){ + // eslint-disable-next-line no-bitwise + nextIV[i] = iv_pre[i] ^ iv_pre[16 + i]; + } + const nextAESKey = await crypto.subtle.importKey('raw', nextAESKeyMaterial, { + name: 'AES-GCM', + length: 256 + }, true, [ + 'encrypt', + 'decrypt' + ]); + return [ + nextAESKey, + nextIV + ]; + }); + return Promise.all(extraSteps); +} +/** @internal */ async function v38_addReceiver(postKeyEncoded, target, io) { + // For every receiver R, + // 1. Let R_pub = R.publicKey + // 2. Let Internal_AES be the result of ECDH with the sender's private key and R_pub + // Note: To keep compatibility, here we use the algorithm in + // https://github.com/DimensionDev/Maskbook/blob/f3d83713d60dd0aad462e0648c4d38586c106edc/packages/mask/src/crypto/crypto-alpha-40.ts#L29-L58 + // 3. Let ivToBePublish be a new generated IV. This should be sent to the receiver. + // 4. Calculate new AES key and IV based on Internal_AES and ivToBePublish. + // Note: Internal_AES is not returned by io.deriveAESKey_version38_or_older, it is internal algorithm of that method. + const ecdh = Promise.allSettled(target.target.map(async (id)=>{ + const receiverPublicKey = await io.queryPublicKey(id); + if (!receiverPublicKey) throw new _EncryptionTypes__WEBPACK_IMPORTED_MODULE_2__/* .EncryptError */ .x(_EncryptionTypes__WEBPACK_IMPORTED_MODULE_2__/* .EncryptErrorReasons.PublicKeyNotFound */ .U.PublicKeyNotFound); + const ivToBePublished = (0,_utils__WEBPACK_IMPORTED_MODULE_3__/* .fillIV */ .i)(io); + const [[aes, iv]] = await deriveAESByECDH_version38OrOlderExtraSteps(async (e)=>[ + await io.deriveAESKey(e) + ] + , receiverPublicKey.key, ivToBePublished); + const encryptedPostKey = await (0,_utils__WEBPACK_IMPORTED_MODULE_1__/* .encryptWithAES */ .l_)(aes, iv, await postKeyEncoded); + return { + ivToBePublished, + encryptedPostKey: encryptedPostKey.unwrap(), + target: id + }; + })).then((x)=>x.entries() + ); + const ecdhResult = new Map(); + for (const [index, result] of (await ecdh)){ + ecdhResult.set(target.target[index], result); + } + return ecdhResult; +} + + +/***/ }), + +/***/ 27420: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "Ft": () => (/* reexport safe */ _dimensiondev_stego_js_cjs_grayscale_js__WEBPACK_IMPORTED_MODULE_0__.GrayscaleAlgorithm), +/* harmony export */ "Mk": () => (/* binding */ steganographyEncodeImage), +/* harmony export */ "oX": () => (/* binding */ steganographyDecodeImage) +/* harmony export */ }); +/* harmony import */ var _dimensiondev_stego_js_cjs_grayscale_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(85909); +/* harmony import */ var _dimensiondev_stego_js_cjs_transform_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(84140); +/* harmony import */ var _dimensiondev_stego_js_cjs_transform_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_dimensiondev_stego_js_cjs_transform_js__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _dimensiondev_stego_js_cjs_dom_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(50710); +/* harmony import */ var _dimensiondev_stego_js_cjs_dom_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_dimensiondev_stego_js_cjs_dom_js__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var lodash_unified__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(96596); +/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(58953); + + + + + + +const dimensionPreset = [ + { + deprecated: 'legacy post', + width: 1024, + height: 1240, + mask: new URL(/* asset import */ __webpack_require__(93855), __webpack_require__.b).toString() + }, + { + width: 1200, + height: 681, + template: 'v2', + mask: new URL(/* asset import */ __webpack_require__(23689), __webpack_require__.b).toString() + }, + { + width: 1200, + height: 680, + template: 'eth', + mask: new URL(/* asset import */ __webpack_require__(80183), __webpack_require__.b).toString(), + options: { + cropEdgePixels: true + } + }, + { + deprecated: 'event election 2020', + width: 1000, + height: 558, + mask: new URL(/* asset import */ __webpack_require__(80183), __webpack_require__.b).toString() + }, + { + deprecated: 'old NFT', + width: 1000, + height: 560, + mask: new URL(/* asset import */ __webpack_require__(84037), __webpack_require__.b).toString() + }, +]; +const defaultOptions = { + size: 8, + narrow: 0, + copies: 3, + tolerance: 128, + exhaustPixels: true, + cropEdgePixels: false, + fakeMaskPixels: false, + grayscaleAlgorithm: _dimensiondev_stego_js_cjs_grayscale_js__WEBPACK_IMPORTED_MODULE_0__.GrayscaleAlgorithm.NONE, + transformAlgorithm: _dimensiondev_stego_js_cjs_transform_js__WEBPACK_IMPORTED_MODULE_1__.TransformAlgorithm.FFT1D +}; +const isSameDimension = (dimension, otherDimension)=>dimension.width === otherDimension.width && dimension.height === otherDimension.height +; +async function steganographyEncodeImage(buf, options) { + const { template , downloadImage } = options; + const preset = dimensionPreset.find((d)=>d.template && d.template === template + ); + if (!preset) throw new Error('Failed to find preset.'); + return new Uint8Array(await (0,_dimensiondev_stego_js_cjs_dom_js__WEBPACK_IMPORTED_MODULE_2__.encode)(buf, await downloadImage(preset.mask), { + ...defaultOptions, + ...preset?.options, + ...(0,lodash_unified__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z)(options, 'template') + })); +} +async function inner(buf, options) { + const dimension = (0,_utils__WEBPACK_IMPORTED_MODULE_3__/* .getDimension */ .F)(buf); + const preset = dimensionPreset.find((d)=>isSameDimension(d, dimension) + ); + if (!preset) return ''; + return (0,_dimensiondev_stego_js_cjs_dom_js__WEBPACK_IMPORTED_MODULE_2__.decode)(buf, await options.downloadImage(preset.mask), { + ...defaultOptions, + transformAlgorithm: _dimensiondev_stego_js_cjs_transform_js__WEBPACK_IMPORTED_MODULE_1__.TransformAlgorithm.FFT1D, + ...options + }); +} +async function steganographyDecodeImage(image, options) { + return inner(typeof image === 'string' ? await options.downloadImage(image) : await image.arrayBuffer(), options); +} + + +/***/ }), + +/***/ 58953: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "F": () => (/* binding */ getDimension) +/* harmony export */ }); +/* harmony import */ var _dimensiondev_stego_js_cjs_helper_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4023); +/* eslint-disable no-bitwise */ +/** @internal */ function getDimension(buf) { + const fallback = { + width: 0, + height: 0 + }; + switch((0,_dimensiondev_stego_js_cjs_helper_js__WEBPACK_IMPORTED_MODULE_0__.imgType)(new Uint8Array(buf))){ + case 'image/jpeg': + return getDimensionAsJPEG(buf) ?? fallback; + case 'image/png': + return getDimensionAsPNG(buf); + default: + return fallback; + } +} +function getDimensionAsPNG(buf) { + const dataView = new DataView(buf, 0, 28); + return { + width: dataView.getInt32(16), + height: dataView.getInt32(20) + }; +} +/** + * Get dimension of a JPEG image + * + * @see http://vip.sugovica.hu/Sardi/kepnezo/JPEG%20File%20Layout%20and%20Format.htm + */ function getDimensionAsJPEG(buf) { + const dataView = new DataView(buf); + let i = 0; + if (dataView.getUint8(i) === 0xff && dataView.getUint8(i + 1) === 0xd8 && dataView.getUint8(i + 2) === 0xff && dataView.getUint8(i + 3) === 0xe0 // APP0 marker + ) { + i += 4; + if (dataView.getUint8(i + 2) === 'J'.charCodeAt(0) && dataView.getUint8(i + 3) === 'F'.charCodeAt(0) && dataView.getUint8(i + 4) === 'I'.charCodeAt(0) && dataView.getUint8(i + 5) === 'F'.charCodeAt(0) && dataView.getUint8(i + 6) === 0x00) { + let block_length = dataView.getUint8(i) * 256 + dataView.getUint8(i + 1); + while(i < dataView.byteLength){ + i += block_length; + if (i >= dataView.byteLength) return; + if (dataView.getUint8(i) !== 0xff) return; + if (dataView.getUint8(i + 1) === 0xc0 || dataView.getUint8(i + 1) === 0xc2 // SOF2 marker + ) { + return { + height: dataView.getUint8(i + 5) * 256 + dataView.getUint8(i + 6), + width: dataView.getUint8(i + 7) * 256 + dataView.getUint8(i + 8) + }; + } else { + i += 2; + block_length = dataView.getUint8(i) * 256 + dataView.getUint8(i + 1); + } + } + } + } + return; +} + + +/***/ }), + +/***/ 80326: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "Gq": () => (/* binding */ SocialNetworkEnum), +/* harmony export */ "VC": () => (/* binding */ SocialNetworkEnumToProfileDomain), +/* harmony export */ "qx": () => (/* binding */ EC_KeyCurveEnum) +/* harmony export */ }); +/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(44451); +// This file contains normalized Payload. +// Internal payload should not be exported + +var EC_KeyCurveEnum; +(function(EC_KeyCurveEnum) { + EC_KeyCurveEnum[EC_KeyCurveEnum["ed25519"] = 0] = "ed25519"; + EC_KeyCurveEnum[EC_KeyCurveEnum["secp256p1"] = 1] = "secp256p1"; + EC_KeyCurveEnum[EC_KeyCurveEnum["secp256k1"] = 2] = "secp256k1"; +})(EC_KeyCurveEnum || (EC_KeyCurveEnum = {})); +var SocialNetworkEnum; +(function(SocialNetworkEnum) { + SocialNetworkEnum[SocialNetworkEnum["Unknown"] = -1] = "Unknown"; + SocialNetworkEnum[SocialNetworkEnum["Facebook"] = 0] = "Facebook"; + SocialNetworkEnum[SocialNetworkEnum["Twitter"] = 1] = "Twitter"; + SocialNetworkEnum[SocialNetworkEnum["Instagram"] = 2] = "Instagram"; + SocialNetworkEnum[SocialNetworkEnum["Minds"] = 3] = "Minds"; +})(SocialNetworkEnum || (SocialNetworkEnum = {})); +const SocialNetworkEnumToDomain = { + [SocialNetworkEnum.Unknown]: _masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .EnhanceableSite.Localhost */ .Jk.Localhost, + [SocialNetworkEnum.Facebook]: _masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .EnhanceableSite.Facebook */ .Jk.Facebook, + [SocialNetworkEnum.Minds]: _masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .EnhanceableSite.Minds */ .Jk.Minds, + [SocialNetworkEnum.Twitter]: _masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .EnhanceableSite.Twitter */ .Jk.Twitter, + [SocialNetworkEnum.Instagram]: _masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .EnhanceableSite.Instagram */ .Jk.Instagram +}; +function SocialNetworkEnumToProfileDomain(x) { + return SocialNetworkEnumToDomain[x]; +} + + +/***/ }), + +/***/ 39613: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "r": () => (/* binding */ encodeSignatureContainer), +/* harmony export */ "z": () => (/* binding */ parseSignatureContainer) +/* harmony export */ }); +/* harmony import */ var ts_results__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(48160); +/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(30181); +/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(44451); +/* harmony import */ var _dimensiondev_kit__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(46123); + + + + +var SignaturePayloadFirstByte; +(function(SignaturePayloadFirstByte) { + SignaturePayloadFirstByte[SignaturePayloadFirstByte["NoSignature"] = 0] = "NoSignature"; + SignaturePayloadFirstByte[SignaturePayloadFirstByte["Signature"] = 1] = "Signature"; +})(SignaturePayloadFirstByte || (SignaturePayloadFirstByte = {})); +function encodeSignatureContainer(payload, signature) { + if (signature) return new Uint8Array((0,_dimensiondev_kit__WEBPACK_IMPORTED_MODULE_3__/* .concatArrayBuffer */ .v_)(new Uint8Array([ + 1 + ]), signature, payload)); + return new Uint8Array((0,_dimensiondev_kit__WEBPACK_IMPORTED_MODULE_3__/* .concatArrayBuffer */ .v_)(new Uint8Array([ + 0 + ]), payload)); +} +function parseSignatureContainer(signatureContainer) { + if (signatureContainer[0] === 0) { + return (0,ts_results__WEBPACK_IMPORTED_MODULE_0__.Ok)({ + payload: signatureContainer.slice(1), + signature: _masknet_shared_base__WEBPACK_IMPORTED_MODULE_2__/* .OptionalResult.None */ .E.None + }); + } else if (signatureContainer[0] === 1) { + const signature = signatureContainer.slice(1, 33); + const payload = signatureContainer.slice(33); + return (0,ts_results__WEBPACK_IMPORTED_MODULE_0__.Ok)({ + payload, + signature: _masknet_shared_base__WEBPACK_IMPORTED_MODULE_2__/* .OptionalResult.Some */ .E.Some({ + signature, + signee: payload + }) + }); + } else return new _masknet_shared_base__WEBPACK_IMPORTED_MODULE_2__/* .CheckedError */ .iD(_types__WEBPACK_IMPORTED_MODULE_1__/* .PayloadException.InvalidPayload */ .T6.InvalidPayload, 'Invalid signature container').toErr(); +} + + +/***/ }), + +/***/ 21198: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "P": () => (/* binding */ parseAuthor), +/* harmony export */ "w": () => (/* binding */ get_v38PublicSharedCryptoKey) +/* harmony export */ }); +/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(44451); +/* harmony import */ var ts_results__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(48160); +/* harmony import */ var _payload__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(91743); +/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(30181); +/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(53908); + + + + + +const import_AES_GCM_256 = _masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .CheckedError.withErr */ .iD.withErr(_utils__WEBPACK_IMPORTED_MODULE_4__/* .importAES */ .yj, _types__WEBPACK_IMPORTED_MODULE_3__/* .CryptoException.InvalidCryptoKey */ .H3.InvalidCryptoKey); +/** + * @internal + * In payload version 38, the AES key is encrypted by this key. + */ const v38PublicSharedJwk = { + alg: 'A256GCM', + ext: true, + /* cspell:disable-next-line */ k: '3Bf8BJ3ZPSMUM2jg2ThODeLuRRD_-_iwQEaeLdcQXpg', + key_ops: [ + 'encrypt', + 'decrypt' + ], + kty: 'oct' +}; +let v38PublicSharedCryptoKey; +async function get_v38PublicSharedCryptoKey() { + if (v38PublicSharedCryptoKey) return (0,ts_results__WEBPACK_IMPORTED_MODULE_1__.Ok)(v38PublicSharedCryptoKey); + const imported = await import_AES_GCM_256(v38PublicSharedJwk); + if (imported.err) return imported; + v38PublicSharedCryptoKey = imported.val; + return (0,ts_results__WEBPACK_IMPORTED_MODULE_1__.Ok)(v38PublicSharedCryptoKey); +} +function parseAuthor(network, id) { + if (network === null || network === undefined) return _masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .OptionalResult.None */ .E.None; + if (id === '' || id === null || id === undefined) return _masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .OptionalResult.None */ .E.None; + if (typeof id !== 'string') return new _masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .CheckedError */ .iD(_types__WEBPACK_IMPORTED_MODULE_3__/* .PayloadException.InvalidPayload */ .T6.InvalidPayload, 'Invalid user id').toErr(); + let net = ''; + if (network === _payload__WEBPACK_IMPORTED_MODULE_2__/* .SocialNetworkEnum.Facebook */ .Gq.Facebook) net = _masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .EnhanceableSite.Facebook */ .Jk.Facebook; + else if (network === _payload__WEBPACK_IMPORTED_MODULE_2__/* .SocialNetworkEnum.Twitter */ .Gq.Twitter) net = _masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .EnhanceableSite.Twitter */ .Jk.Twitter; + else if (network === _payload__WEBPACK_IMPORTED_MODULE_2__/* .SocialNetworkEnum.Instagram */ .Gq.Instagram) net = _masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .EnhanceableSite.Instagram */ .Jk.Instagram; + else if (network === _payload__WEBPACK_IMPORTED_MODULE_2__/* .SocialNetworkEnum.Minds */ .Gq.Minds) net = _masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .EnhanceableSite.Minds */ .Jk.Minds; + else if (typeof network === 'string') net = network; + else if (typeof network !== 'number') return new _masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .CheckedError */ .iD(_types__WEBPACK_IMPORTED_MODULE_3__/* .PayloadException.InvalidPayload */ .T6.InvalidPayload, 'Invalid network').toErr(); + else return new _masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .CheckedError */ .iD(_types__WEBPACK_IMPORTED_MODULE_3__/* .PayloadException.UnknownEnumMember */ .T6.UnknownEnumMember, 'unknown network').toErr(); + if (net.includes('/')) return new _masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .CheckedError */ .iD(_types__WEBPACK_IMPORTED_MODULE_3__/* .PayloadException.InvalidPayload */ .T6.InvalidPayload, 'Invalid network').toErr(); + const identifier = _masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .ProfileIdentifier.of */ .WO.of(net, id); + if (identifier.some) return _masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .OptionalResult.Some */ .E.Some(identifier.val); + return _masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .OptionalResult.None */ .E.None; +} + + +/***/ }), + +/***/ 83363: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "I": () => (/* binding */ parse37) +/* harmony export */ }); +/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(30181); +/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(44451); +/* harmony import */ var ts_results__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(48160); +/* harmony import */ var _payload_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(80326); +/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(53908); +/* harmony import */ var _dimensiondev_kit__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(46123); +/* harmony import */ var _SignatureContainer__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(39613); +/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(21198); + + + + + + + + +// ? Payload format: (binary format) +// ? See: docs/rfc/000-Payload-37.md +const decode = (0,_utils__WEBPACK_IMPORTED_MODULE_4__/* .decodeMessagePackF */ .mw)(_types__WEBPACK_IMPORTED_MODULE_0__/* .PayloadException.InvalidPayload */ .T6.InvalidPayload, _types__WEBPACK_IMPORTED_MODULE_0__/* .PayloadException.DecodeFailed */ .T6.DecodeFailed); +const InvalidPayload = (msg)=>new _masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .CheckedError */ .iD(_types__WEBPACK_IMPORTED_MODULE_0__/* .PayloadException.InvalidPayload */ .T6.InvalidPayload, msg).toErr() +; +const importAES256 = _masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .CheckedError.withErr */ .iD.withErr(_utils__WEBPACK_IMPORTED_MODULE_4__/* .importAES */ .yj, _types__WEBPACK_IMPORTED_MODULE_0__/* .CryptoException.InvalidCryptoKey */ .H3.InvalidCryptoKey); +const importEC = _masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .CheckedError.withErr */ .iD.withErr(_utils__WEBPACK_IMPORTED_MODULE_4__/* .importEC_Key */ .OT, _types__WEBPACK_IMPORTED_MODULE_0__/* .CryptoException.InvalidCryptoKey */ .H3.InvalidCryptoKey); +async function parse37(input) { + const signatureContainer = (0,_SignatureContainer__WEBPACK_IMPORTED_MODULE_6__/* .parseSignatureContainer */ .z)(input); + if (signatureContainer.err) return signatureContainer; + const { payload , signature } = signatureContainer.val; + return parsePayload37(payload, signature); +} +function parsePayload37(payload, signature) { + const _ = decode(payload).andThen((0,_types__WEBPACK_IMPORTED_MODULE_0__/* .assertArray */ .Wr)('Payload', _types__WEBPACK_IMPORTED_MODULE_0__/* .PayloadException.InvalidPayload */ .T6.InvalidPayload)); + return (0,_masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .andThenAsync */ .ps)(_, async (item)=>{ + const [version, authorNetwork, authorID, authorPublicKeyAlg, authorPublicKey, encryption, data] = item; + // 0 in payload means -37, 1 means -36, ...etc + if (version !== 0) return new _masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .CheckedError */ .iD(_types__WEBPACK_IMPORTED_MODULE_0__/* .PayloadException.UnknownVersion */ .T6.UnknownVersion, null).toErr(); + const normalized = { + version: -37, + author: (0,_shared__WEBPACK_IMPORTED_MODULE_7__/* .parseAuthor */ .P)(authorNetwork, authorID), + authorPublicKey: authorPublicKey ? _masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .OptionalResult.fromResult */ .E.fromResult(await importAsymmetryKey(authorPublicKeyAlg, authorPublicKey, 'authorPublicKey')) : _masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .OptionalResult.None */ .E.None, + encryption: await parseEncryption(encryption), + encrypted: (0,_types__WEBPACK_IMPORTED_MODULE_0__/* .assertUint8Array */ .jY)(data, 'encrypted', _types__WEBPACK_IMPORTED_MODULE_0__/* .PayloadException.InvalidPayload */ .T6.InvalidPayload), + signature + }; + return (0,ts_results__WEBPACK_IMPORTED_MODULE_2__.Ok)(normalized); + }); +} +async function parseEncryption(encryption) { + if (!Array.isArray(encryption)) return InvalidPayload('Invalid encryption'); + const kind = encryption[0]; + if (kind === EncryptionKind.PeerToPeer) { + const [, ownersAESKeyEncrypted, iv, authorEphemeralPublicKeys] = encryption; + const e = { + type: 'E2E', + iv: (0,_types__WEBPACK_IMPORTED_MODULE_0__/* .assertUint8Array */ .jY)(iv, 'iv', _types__WEBPACK_IMPORTED_MODULE_0__/* .PayloadException.InvalidPayload */ .T6.InvalidPayload).andThen(_utils__WEBPACK_IMPORTED_MODULE_4__/* .assertIVLengthEq16 */ .R_), + ownersAESKeyEncrypted: (0,_types__WEBPACK_IMPORTED_MODULE_0__/* .assertUint8Array */ .jY)(ownersAESKeyEncrypted, 'ownersAESKeyEncrypted', _types__WEBPACK_IMPORTED_MODULE_0__/* .PayloadException.InvalidPayload */ .T6.InvalidPayload), + ephemeralPublicKey: await parseAuthorEphemeralPublicKeys(authorEphemeralPublicKeys) + }; + return (0,ts_results__WEBPACK_IMPORTED_MODULE_2__.Ok)(e); + } else if (kind === EncryptionKind.Public) { + const [, AESKey, iv] = encryption; + const e = { + type: 'public', + iv: (0,_types__WEBPACK_IMPORTED_MODULE_0__/* .assertUint8Array */ .jY)(iv, 'iv', _types__WEBPACK_IMPORTED_MODULE_0__/* .PayloadException.InvalidPayload */ .T6.InvalidPayload).andThen(_utils__WEBPACK_IMPORTED_MODULE_4__/* .assertIVLengthEq16 */ .R_), + AESKey: await parseAES(AESKey) + }; + return (0,ts_results__WEBPACK_IMPORTED_MODULE_2__.Ok)(e); + } else { + (0,_dimensiondev_kit__WEBPACK_IMPORTED_MODULE_5__/* .safeUnreachable */ .P)(kind); + } + return InvalidPayload('Invalid encryption'); + async function parseAuthorEphemeralPublicKeys(item) { + if (typeof item !== 'object' || item === null) return {}; + return Object.fromEntries(await Promise.all(Object.entries(item).map(parseAuthorEphemeralPublicKey))); + } + async function parseAuthorEphemeralPublicKey([key, value]) { + const isEnumLike = Number.parseInt(key.toString(), 10); + if (!Number.isNaN(isEnumLike)) key = isEnumLike; + const result = await importAsymmetryKey(key, value, 'authorEphemeralPublicKey'); + return [ + key, + result + ]; + } +} +async function parseAES(aes) { + return (0,_masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .andThenAsync */ .ps)((0,_types__WEBPACK_IMPORTED_MODULE_0__/* .assertUint8Array */ .jY)(aes, 'aes', _types__WEBPACK_IMPORTED_MODULE_0__/* .CryptoException.InvalidCryptoKey */ .H3.InvalidCryptoKey), importAES256); +} +function importAsymmetryKey(algr, key1, name) { + return (0,_masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .andThenAsync */ .ps)((0,_types__WEBPACK_IMPORTED_MODULE_0__/* .assertUint8Array */ .jY)(key1, name, _types__WEBPACK_IMPORTED_MODULE_0__/* .CryptoException.InvalidCryptoKey */ .H3.InvalidCryptoKey), async (pubKey)=>{ + if (typeof algr === 'number') { + if (algr in _payload_types__WEBPACK_IMPORTED_MODULE_3__/* .EC_KeyCurveEnum */ .qx) { + if (algr === _payload_types__WEBPACK_IMPORTED_MODULE_3__/* .EC_KeyCurveEnum.secp256k1 */ .qx.secp256k1) { + pubKey = await (0,_masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .decompressSecp256k1KeyRaw */ .Yj)(pubKey); + } + const key = await importEC(pubKey, algr); + if (key.err) return key; + return (0,ts_results__WEBPACK_IMPORTED_MODULE_2__.Ok)({ + algr, + key: key.val + }); + } + } + return new _masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .CheckedError */ .iD(_types__WEBPACK_IMPORTED_MODULE_0__/* .CryptoException.UnsupportedAlgorithm */ .H3.UnsupportedAlgorithm, null).toErr(); + }); +} +var EncryptionKind; +(function(EncryptionKind) { + EncryptionKind[EncryptionKind["Public"] = 0] = "Public"; + EncryptionKind[EncryptionKind["PeerToPeer"] = 1] = "PeerToPeer"; +})(EncryptionKind || (EncryptionKind = {})); + + +/***/ }), + +/***/ 64759: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "q": () => (/* binding */ parse38) +/* harmony export */ }); +/* harmony import */ var _payload__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(91743); +/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(30181); +/* harmony import */ var ts_results__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(48160); +/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(53908); +/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(21198); +/* harmony import */ var _dimensiondev_kit__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(46123); +/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(44451); +/* eslint @dimensiondev/unicode/specific-set: ["error", { "only": "code" }] */ + + + + + + +const decodeUint8Array = (0,_utils__WEBPACK_IMPORTED_MODULE_3__/* .decodeUint8ArrayF */ .MD)(_types__WEBPACK_IMPORTED_MODULE_1__/* .PayloadException.InvalidPayload */ .T6.InvalidPayload, _types__WEBPACK_IMPORTED_MODULE_1__/* .PayloadException.DecodeFailed */ .T6.DecodeFailed); +const decodeUint8ArrayCrypto = (0,_utils__WEBPACK_IMPORTED_MODULE_3__/* .decodeUint8ArrayF */ .MD)(_types__WEBPACK_IMPORTED_MODULE_1__/* .CryptoException.InvalidCryptoKey */ .H3.InvalidCryptoKey, _types__WEBPACK_IMPORTED_MODULE_1__/* .CryptoException.InvalidCryptoKey */ .H3.InvalidCryptoKey); +const decodeTextCrypto = (0,_utils__WEBPACK_IMPORTED_MODULE_3__/* .decodeTextF */ .Z$)(_types__WEBPACK_IMPORTED_MODULE_1__/* .CryptoException.InvalidCryptoKey */ .H3.InvalidCryptoKey, _types__WEBPACK_IMPORTED_MODULE_1__/* .CryptoException.InvalidCryptoKey */ .H3.InvalidCryptoKey); +const JSONParse = (0,_utils__WEBPACK_IMPORTED_MODULE_3__/* .JSONParseF */ .h4)(_types__WEBPACK_IMPORTED_MODULE_1__/* .CryptoException.InvalidCryptoKey */ .H3.InvalidCryptoKey, _types__WEBPACK_IMPORTED_MODULE_1__/* .CryptoException.InvalidCryptoKey */ .H3.InvalidCryptoKey); +const importEC = _masknet_shared_base__WEBPACK_IMPORTED_MODULE_6__/* .CheckedError.withErr */ .iD.withErr(_utils__WEBPACK_IMPORTED_MODULE_3__/* .importEC_Key */ .OT, _types__WEBPACK_IMPORTED_MODULE_1__/* .CryptoException.InvalidCryptoKey */ .H3.InvalidCryptoKey); +async function parse38(payload) { + // #region Parse text + const header = '\u{1F3BC}4/4'; + if (!payload.startsWith(header)) return new _masknet_shared_base__WEBPACK_IMPORTED_MODULE_6__/* .CheckedError */ .iD(_types__WEBPACK_IMPORTED_MODULE_1__/* .PayloadException.InvalidPayload */ .T6.InvalidPayload, 'Unknown version').toErr(); + let rest = payload.slice(header.length); + // cut the tail + rest = rest.slice(0, rest.lastIndexOf(':||')); + const { AESKeyEncrypted , encryptedText , iv , signature , authorPublicKey , authorUserID , isPublic } = splitFields(rest); + // #endregion + // #region Normalization + const raw_iv = decodeUint8ArrayCrypto(iv).andThen(_utils__WEBPACK_IMPORTED_MODULE_3__/* .assertIVLengthEq16 */ .R_); + const raw_aes = decodeUint8ArrayCrypto(AESKeyEncrypted); + const encryption = isPublic ? { + type: 'public', + iv: raw_iv, + AESKey: await decodePublicSharedAESKey(raw_iv, raw_aes) + } : { + type: 'E2E', + iv: raw_iv, + ephemeralPublicKey: {}, + ownersAESKeyEncrypted: raw_aes + }; + const normalized = { + version: -38, + author: _masknet_shared_base__WEBPACK_IMPORTED_MODULE_6__/* .OptionalResult.None */ .E.None, + authorPublicKey: _masknet_shared_base__WEBPACK_IMPORTED_MODULE_6__/* .OptionalResult.None */ .E.None, + signature: _masknet_shared_base__WEBPACK_IMPORTED_MODULE_6__/* .OptionalResult.None */ .E.None, + encryption: (0,ts_results__WEBPACK_IMPORTED_MODULE_2__.Ok)(encryption), + encrypted: decodeUint8Array(encryptedText) + }; + if (authorUserID.err) { + normalized.author = authorUserID.mapErr(_masknet_shared_base__WEBPACK_IMPORTED_MODULE_6__/* .CheckedError.mapErr */ .iD.mapErr(_types__WEBPACK_IMPORTED_MODULE_1__/* .PayloadException.DecodeFailed */ .T6.DecodeFailed)); + } else if (authorUserID.val.some) { + normalized.author = _masknet_shared_base__WEBPACK_IMPORTED_MODULE_6__/* .ProfileIdentifier.from */ .WO.from(`person:${authorUserID.val.val}`).map((x)=>(0,ts_results__WEBPACK_IMPORTED_MODULE_2__/* .Some */ .bD)(x) + ).toResult(undefined).mapErr(_masknet_shared_base__WEBPACK_IMPORTED_MODULE_6__/* .CheckedError.mapErr */ .iD.mapErr(_types__WEBPACK_IMPORTED_MODULE_1__/* .PayloadException.DecodeFailed */ .T6.DecodeFailed)); + } + if (authorPublicKey) { + normalized.authorPublicKey = await decodeECDHPublicKey(authorPublicKey); + } + if (signature && raw_iv.ok && raw_aes.ok && normalized.encrypted.ok) { + const message = (0,_dimensiondev_kit__WEBPACK_IMPORTED_MODULE_5__/* .encodeText */ .YT)(`4/4|${AESKeyEncrypted}|${iv}|${encryptedText}`); + const sig = decodeUint8Array(signature); + if (sig.ok) { + normalized.signature = _masknet_shared_base__WEBPACK_IMPORTED_MODULE_6__/* .OptionalResult.Some */ .E.Some({ + signee: message, + signature: sig.val + }); + } else { + normalized.signature = sig; + } + } + return (0,ts_results__WEBPACK_IMPORTED_MODULE_2__.Ok)(normalized); +// #endregion +} +// ? Version 38:🎼4/4|AESKeyEncrypted|iv|encryptedText|signature|authorPublicKey?|publicShared?|authorIdentifier?:|| +function splitFields(raw) { + const [, AESKeyEncrypted = '', iv = '', encryptedText = '', signature, authorPublicKey, isPublic, authorUserIDRaw] = raw.split('|'); + const authorUserID = authorUserIDRaw ? ts_results__WEBPACK_IMPORTED_MODULE_2__/* .Result.wrap */ .x4.wrap(()=>(0,ts_results__WEBPACK_IMPORTED_MODULE_2__/* .Some */ .bD)(atob(authorUserIDRaw)) + ) : _masknet_shared_base__WEBPACK_IMPORTED_MODULE_6__/* .OptionalResult.None */ .E.None; + return { + AESKeyEncrypted, + encryptedText, + iv, + // "_" is used as placeholder + signature: signature === '_' ? undefined : signature, + authorPublicKey: authorPublicKey, + authorUserID, + isPublic: isPublic === '1' + }; +} +async function decodePublicSharedAESKey(iv, encryptedKey) { + if (iv.err) return iv; + if (encryptedKey.err) return encryptedKey; + const publicSharedKey = await (0,_shared__WEBPACK_IMPORTED_MODULE_4__/* .get_v38PublicSharedCryptoKey */ .w)(); + if (publicSharedKey.err) return publicSharedKey; + const import_AES_GCM_256 = _masknet_shared_base__WEBPACK_IMPORTED_MODULE_6__/* .CheckedError.withErr */ .iD.withErr(_utils__WEBPACK_IMPORTED_MODULE_3__/* .importAES */ .yj, _types__WEBPACK_IMPORTED_MODULE_1__/* .CryptoException.InvalidCryptoKey */ .H3.InvalidCryptoKey); + const decrypt = _masknet_shared_base__WEBPACK_IMPORTED_MODULE_6__/* .CheckedError.withErr */ .iD.withErr(_utils__WEBPACK_IMPORTED_MODULE_3__/* .decryptWithAES */ .PB, _types__WEBPACK_IMPORTED_MODULE_1__/* .CryptoException.InvalidCryptoKey */ .H3.InvalidCryptoKey); + const jwk_in_u8arr = await decrypt(publicSharedKey.val, iv.val, encryptedKey.val); + const jwk_in_text = await (0,_masknet_shared_base__WEBPACK_IMPORTED_MODULE_6__/* .andThenAsync */ .ps)(jwk_in_u8arr, decodeTextCrypto); + const jwk = await (0,_masknet_shared_base__WEBPACK_IMPORTED_MODULE_6__/* .andThenAsync */ .ps)(jwk_in_text, JSONParse); + const aes = await (0,_masknet_shared_base__WEBPACK_IMPORTED_MODULE_6__/* .andThenAsync */ .ps)(jwk, import_AES_GCM_256); + return aes; +} +async function decodeECDHPublicKey(compressedPublic) { + const key = await (0,_masknet_shared_base__WEBPACK_IMPORTED_MODULE_6__/* .andThenAsync */ .ps)(decodeUint8ArrayCrypto(compressedPublic), async (val)=>(await ts_results__WEBPACK_IMPORTED_MODULE_2__/* .Result.wrapAsync */ .x4.wrapAsync(()=>(0,_masknet_shared_base__WEBPACK_IMPORTED_MODULE_6__/* .decompressSecp256k1Point */ .pf)(val) + )).mapErr((e)=>new _masknet_shared_base__WEBPACK_IMPORTED_MODULE_6__/* .CheckedError */ .iD(_types__WEBPACK_IMPORTED_MODULE_1__/* .CryptoException.InvalidCryptoKey */ .H3.InvalidCryptoKey, e) + ) + ); + if (key.err) return key; + const { x , y } = key.val; + const jwk = { + crv: 'K-256', + ext: true, + x, + y, + key_ops: [ + 'deriveKey', + 'deriveBits' + ], + kty: 'EC' + }; + const imported = await importEC(jwk, _payload__WEBPACK_IMPORTED_MODULE_0__/* .EC_KeyCurveEnum.secp256k1 */ .qx.secp256k1); + if (imported.err) return imported; + return _masknet_shared_base__WEBPACK_IMPORTED_MODULE_6__/* .OptionalResult.Some */ .E.Some({ + algr: _payload__WEBPACK_IMPORTED_MODULE_0__/* .EC_KeyCurveEnum.secp256k1 */ .qx.secp256k1, + key: imported.val + }); +} + + +/***/ }), + +/***/ 46305: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "_": () => (/* binding */ parse39) +/* harmony export */ }); +/* harmony import */ var _version_40__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(43141); +/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(30181); +/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(44451); +/* eslint @dimensiondev/unicode/specific-set: ["error", { "only": "code" }] */ + + +// -39 payload is totally the same as -40. +// -40 uses unstable JSON stringify in E2E encryption, -39 fixes that. +// We can reuse the payload parser here. +// ? Payload format: (text format) +// ? Version 40:🎼2/4|ownersAESKeyEncrypted|iv|encryptedText|signature:|| +// ? Version 39:🎼3/4|ownersAESKeyEncrypted|iv|encryptedText|signature:|| +// ? Older version is lacking of signature, like: +// ? Version 40:🎼2/4|ownersAESKeyEncrypted|iv|encryptedText:|| +// ? Version 39:🎼3/4|ownersAESKeyEncrypted|iv|encryptedText:|| +async function parse39(payload) { + const v_40 = '\u{1F3BC}2/4'; + const v_39 = '\u{1F3BC}3/4'; + if (!payload.startsWith(v_39)) return new _masknet_shared_base__WEBPACK_IMPORTED_MODULE_2__/* .CheckedError */ .iD(_types__WEBPACK_IMPORTED_MODULE_1__/* .PayloadException.UnknownVersion */ .T6.UnknownVersion, null).toErr(); + const result = await (0,_version_40__WEBPACK_IMPORTED_MODULE_0__/* .parse40 */ .W)(payload.replace(v_39, v_40)); + return result.map((x)=>({ + ...x, + version: -39 + }) + ); +} + + +/***/ }), + +/***/ 43141: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "W": () => (/* binding */ parse40) +/* harmony export */ }); +/* harmony import */ var ts_results__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(48160); +/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(30181); +/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(53908); +/* harmony import */ var _dimensiondev_kit__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(46123); +/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(44451); + + + + + +const decodeUint8Array = (0,_utils__WEBPACK_IMPORTED_MODULE_2__/* .decodeUint8ArrayF */ .MD)(_types__WEBPACK_IMPORTED_MODULE_1__/* .PayloadException.InvalidPayload */ .T6.InvalidPayload, _types__WEBPACK_IMPORTED_MODULE_1__/* .PayloadException.DecodeFailed */ .T6.DecodeFailed); +// ? Payload format: (text format) +// ? Version 40:🎼2/4|ownersAESKeyEncrypted|iv|encryptedText|signature:|| +// ? Older version is lacking of signature, like: +// ? Version 40:🎼2/4|ownersAESKeyEncrypted|iv|encryptedText:|| +async function parse40(payload) { + // #region Parse string + const header = '\u{1F3BC}2/4|'; + if (!payload.startsWith(header)) return new _masknet_shared_base__WEBPACK_IMPORTED_MODULE_4__/* .CheckedError */ .iD(_types__WEBPACK_IMPORTED_MODULE_1__/* .PayloadException.DecodeFailed */ .T6.DecodeFailed, 'Unknown version').toErr(); + let rest = payload.slice(header.length); + // cut the tail + rest = rest.slice(0, rest.lastIndexOf(':||')); + const [ownersAESKeyEncrypted, iv, encryptedText, signature] = rest.split('|'); + // #endregion + // #region Normalization + const encryption = { + type: 'E2E', + ephemeralPublicKey: {}, + iv: decodeUint8Array(iv).andThen(_utils__WEBPACK_IMPORTED_MODULE_2__/* .assertIVLengthEq16 */ .R_), + ownersAESKeyEncrypted: decodeUint8Array(ownersAESKeyEncrypted) + }; + const normalized = { + version: -40, + author: _masknet_shared_base__WEBPACK_IMPORTED_MODULE_4__/* .OptionalResult.None */ .E.None, + authorPublicKey: _masknet_shared_base__WEBPACK_IMPORTED_MODULE_4__/* .OptionalResult.None */ .E.None, + signature: _masknet_shared_base__WEBPACK_IMPORTED_MODULE_4__/* .OptionalResult.None */ .E.None, + encryption: (0,ts_results__WEBPACK_IMPORTED_MODULE_0__.Ok)(encryption), + encrypted: decodeUint8Array(encryptedText) + }; + if (signature && encryption.iv.ok && encryption.ownersAESKeyEncrypted.ok && normalized.encrypted.ok) { + const message = (0,_dimensiondev_kit__WEBPACK_IMPORTED_MODULE_3__/* .encodeText */ .YT)(`4/4|${ownersAESKeyEncrypted}|${iv}|${encryptedText}`); + const sig = decodeUint8Array(signature); + if (sig.ok) { + normalized.signature = _masknet_shared_base__WEBPACK_IMPORTED_MODULE_4__/* .OptionalResult.Some */ .E.Some({ + signee: message, + signature: sig.val + }); + } else { + normalized.signature = sig; + } + } + return (0,ts_results__WEBPACK_IMPORTED_MODULE_0__.Ok)(normalized); +// #endregion +} + + +/***/ }), + +/***/ 61066: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + + +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "Ym": () => (/* reexport */ TwitterDecoder), + "FW": () => (/* binding */ socialNetworkDecoder), + "zl": () => (/* binding */ socialNetworkEncoder) +}); + +// UNUSED EXPORTS: __TwitterEncoder + +// EXTERNAL MODULE: ../encryption/src/payload/types.ts +var types = __webpack_require__(80326); +// EXTERNAL MODULE: ../shared-base/src/index.ts + 2 modules +var src = __webpack_require__(44451); +// EXTERNAL MODULE: ../../node_modules/.pnpm/ts-results@3.3.0/node_modules/ts-results/esm/index.js + 3 modules +var esm = __webpack_require__(48160); +;// CONCATENATED MODULE: ../encryption/src/social-network-encode-decode/twitter.ts + + +/** + * @link https://github.com/DimensionDev/Maskbook/issues/198 + */ function __TwitterEncoder(text) { + return `https://mask.io/?PostData_v1=${batchReplace(text, [ + [ + '\u{1F3BC}', + '%20' + ], + [ + ':||', + '%40' + ], + [ + '+', + '-' + ], + [ + '=', + '_' + ], + [ + /\|/g, + '.' + ], + ])}`; +} +function TwitterDecoder(raw) { + if (!raw) return esm/* None */.Hq; + if (!raw.includes('%20') || !raw.includes('%40')) return esm/* None */.Hq; + const payloadLink = (0,src/* parseURL */.Lk)(raw).map((x)=>x.replace(/\u2026$/, '') + ).filter((x)=>x.endsWith('%40') + )[0]; + try { + const { search , pathname } = new URL(payloadLink); + const payload = search ? search.slice(1) : pathname.slice(1); + if (!payload) return esm/* None */.Hq; + return (0,esm/* Some */.bD)(`\u{1F3BC}${batchReplace(payload// https://github.com/sindresorhus/eslint-plugin-unicorn/issues/1476 + // eslint-disable-next-line unicorn/better-regex + .replace(/^PostData_v\d=/i, '').replace(/^%20/, '').replace(/%40$/, ''), [ + [ + '-', + '+' + ], + [ + '_', + '=' + ], + [ + /\./g, + '|' + ], + ])}:||`); + } catch { + return esm/* None */.Hq; + } +} +function batchReplace(source, group) { + let storage = source; + for (const v of group){ + storage = storage.replace(v[0], v[1]); + } + return storage; +} + +;// CONCATENATED MODULE: ../encryption/src/social-network-encode-decode/index.ts + + +function socialNetworkDecoder(network, content) { + if (network === types/* SocialNetworkEnum.Twitter */.Gq.Twitter) return TwitterDecoder(content).map((x)=>[ + x + ] + ).unwrapOr([]); + const all = content.match(/(\u{1F3BC}[\w+/=|]+:\|\|)/giu); + if (all) return all; + return []; +} +function socialNetworkEncoder(network, content) { + if (network === types/* SocialNetworkEnum.Twitter */.Gq.Twitter) return __TwitterEncoder(content); + return content; +} + + + +/***/ }), + +/***/ 5903: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "AI": () => (/* binding */ currentSetupGuideStatus), +/* harmony export */ "Ct": () => (/* binding */ userGuideStatus), +/* harmony export */ "FX": () => (/* binding */ userPinExtension), +/* harmony export */ "JE": () => (/* binding */ bioDescription), +/* harmony export */ "OF": () => (/* binding */ appearanceSettings), +/* harmony export */ "Pg": () => (/* binding */ sayHelloShowed), +/* harmony export */ "VO": () => (/* binding */ currentPluginMinimalModeNOTEnabled), +/* harmony export */ "cn": () => (/* binding */ currentPersonaIdentifier), +/* harmony export */ "gG": () => (/* binding */ dismissVerifyNextID), +/* harmony export */ "i4": () => (/* binding */ launchPageSettings), +/* harmony export */ "lJ": () => (/* binding */ userGuideVersion), +/* harmony export */ "pQ": () => (/* binding */ languageSettings), +/* harmony export */ "tR": () => (/* binding */ pluginIDSettings), +/* harmony export */ "yO": () => (/* binding */ personalHomepage) +/* harmony export */ }); +/* harmony import */ var lodash_unified__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(23587); +/* harmony import */ var _masknet_theme__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(31939); +/* harmony import */ var _masknet_public_api__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(60718); +/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(44451); +/* harmony import */ var _masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(67938); +/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(30288); +/* harmony import */ var _createSettings__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(31202); + + + + + + + +const appearanceSettings = (0,_createSettings__WEBPACK_IMPORTED_MODULE_5__/* .createGlobalSettings */ .TI)('appearance', _masknet_theme__WEBPACK_IMPORTED_MODULE_0__/* .Appearance["default"] */ .um["default"]); +const languageSettings = (0,_createSettings__WEBPACK_IMPORTED_MODULE_5__/* .createGlobalSettings */ .TI)('language', _masknet_public_api__WEBPACK_IMPORTED_MODULE_1__/* .LanguageOptions.__auto__ */ .P7.__auto__); +languageSettings.addListener(_masknet_shared_base__WEBPACK_IMPORTED_MODULE_2__/* .updateLanguage */ .BF); +const pluginIDSettings = (0,_createSettings__WEBPACK_IMPORTED_MODULE_5__/* .createComplexGlobalSettings */ .w0)('PluginIdBySite', { + [_masknet_shared_base__WEBPACK_IMPORTED_MODULE_2__/* .EnhanceableSite.Twitter */ .Jk.Twitter]: _masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_3__/* .NetworkPluginID.PLUGIN_EVM */ .FF.PLUGIN_EVM, + [_masknet_shared_base__WEBPACK_IMPORTED_MODULE_2__/* .EnhanceableSite.Facebook */ .Jk.Facebook]: _masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_3__/* .NetworkPluginID.PLUGIN_EVM */ .FF.PLUGIN_EVM, + [_masknet_shared_base__WEBPACK_IMPORTED_MODULE_2__/* .EnhanceableSite.Instagram */ .Jk.Instagram]: _masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_3__/* .NetworkPluginID.PLUGIN_EVM */ .FF.PLUGIN_EVM, + [_masknet_shared_base__WEBPACK_IMPORTED_MODULE_2__/* .EnhanceableSite.OpenSea */ .Jk.OpenSea]: _masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_3__/* .NetworkPluginID.PLUGIN_EVM */ .FF.PLUGIN_EVM, + [_masknet_shared_base__WEBPACK_IMPORTED_MODULE_2__/* .EnhanceableSite.Minds */ .Jk.Minds]: _masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_3__/* .NetworkPluginID.PLUGIN_EVM */ .FF.PLUGIN_EVM, + [_masknet_shared_base__WEBPACK_IMPORTED_MODULE_2__/* .EnhanceableSite.Localhost */ .Jk.Localhost]: _masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_3__/* .NetworkPluginID.PLUGIN_EVM */ .FF.PLUGIN_EVM, + [_masknet_shared_base__WEBPACK_IMPORTED_MODULE_2__/* .ExtensionSite.Popup */ .v_.Popup]: _masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_3__/* .NetworkPluginID.PLUGIN_EVM */ .FF.PLUGIN_EVM, + [_masknet_shared_base__WEBPACK_IMPORTED_MODULE_2__/* .ExtensionSite.Dashboard */ .v_.Dashboard]: _masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_3__/* .NetworkPluginID.PLUGIN_EVM */ .FF.PLUGIN_EVM +}, lodash_unified__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z); +const userGuideVersion = (0,_createSettings__WEBPACK_IMPORTED_MODULE_5__/* .createGlobalSettings */ .TI)('userGuideVersion', 'v2'); +const currentSetupGuideStatus = (0,_createSettings__WEBPACK_IMPORTED_MODULE_5__/* .createNetworkSettings */ .Lk)('currentSetupGuideStatus', ''); +const userGuideStatus = (0,_createSettings__WEBPACK_IMPORTED_MODULE_5__/* .createNetworkSettings */ .Lk)('userGuideStatus', ''); +const sayHelloShowed = (0,_createSettings__WEBPACK_IMPORTED_MODULE_5__/* .createNetworkSettings */ .Lk)('sayHelloShowed', false); +const userPinExtension = (0,_createSettings__WEBPACK_IMPORTED_MODULE_5__/* .createGlobalSettings */ .TI)('userPinExtension', false); +const dismissVerifyNextID = (0,_createSettings__WEBPACK_IMPORTED_MODULE_5__/* .createComplexNetworkSettings */ .v7)('dismissVerifyNextID', {}, lodash_unified__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z); +const bioDescription = (0,_createSettings__WEBPACK_IMPORTED_MODULE_5__/* .createNetworkSettings */ .Lk)('bioDescription', ''); +const personalHomepage = (0,_createSettings__WEBPACK_IMPORTED_MODULE_5__/* .createNetworkSettings */ .Lk)('personalHomepage', ''); +// This is a misuse of concept "NetworkSettings" as "namespaced settings" +// The refactor is tracked in https://github.com/DimensionDev/Maskbook/issues/1884 +/** + * ! DO NOT use this directly to query the plugin status ! + * + * use `useActivatedPluginsSNSAdaptor().find((x) => x.ID === PLUGIN_ID)` or + * `useActivatedPluginsDashboard().find((x) => x.ID === PLUGIN_ID)` instead + */ // This was "currentPluginEnabled" before, but we used it to represent minimal mode now to make the settings be able to migrate. +const currentPluginMinimalModeNOTEnabled = (0,_createSettings__WEBPACK_IMPORTED_MODULE_5__/* .createNetworkSettings */ .Lk)('pluginsEnabled', true); +const launchPageSettings = (0,_createSettings__WEBPACK_IMPORTED_MODULE_5__/* .createGlobalSettings */ .TI)('launchPage', _types__WEBPACK_IMPORTED_MODULE_4__/* .LaunchPage.dashboard */ .z.dashboard); +const currentPersonaIdentifier = (0,_createSettings__WEBPACK_IMPORTED_MODULE_5__/* .createGlobalSettings */ .TI)('currentPersonaIdentifier', ''); +try { + // Migrate language settings + const lng = languageSettings.value; + if (lng === 'en') languageSettings.value = _masknet_public_api__WEBPACK_IMPORTED_MODULE_1__/* .LanguageOptions.enUS */ .P7.enUS; + else if (lng === 'zh') languageSettings.value = _masknet_public_api__WEBPACK_IMPORTED_MODULE_1__/* .LanguageOptions.zhCN */ .P7.zhCN; + else if (lng === 'ja') languageSettings.value = _masknet_public_api__WEBPACK_IMPORTED_MODULE_1__/* .LanguageOptions.jaJP */ .P7.jaJP; + else if (lng === 'ko') languageSettings.value = _masknet_public_api__WEBPACK_IMPORTED_MODULE_1__/* .LanguageOptions.koKR */ .P7.koKR; + else languageSettings.value = _masknet_public_api__WEBPACK_IMPORTED_MODULE_1__/* .LanguageOptions.__auto__ */ .P7.__auto__; +} catch {} + + +/***/ }), + +/***/ 45908: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "D": () => (/* binding */ useControlledDialog) +/* harmony export */ }); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(58757); + +function useControlledDialog() { + const [open, setOpen] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false); + return { + open, + setOpen, + onClose: ()=>setOpen(false) + , + onOpen: ()=>setOpen(true) + }; +} + + +/***/ }), + +/***/ 78831: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "H": () => (/* binding */ useMenu) +/* harmony export */ }); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(58757); +/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(63439); +/* harmony import */ var _masknet_theme__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(31939); +/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(31217); + + + + +/** + * A util hooks for easier to use ``s. + * @param menus Material UI `` elements + */ function useMenu(elements, anchorSibling = false, props, useShadowRoot = true) { + const [open, setOpen] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false); + const [anchorEl, setAnchorEl] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null); + const close = ()=>{ + setOpen(false); + setAnchorEl(null); + }; + const update = (0,react_use__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z)(); + return [ + /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(useShadowRoot ? _masknet_theme__WEBPACK_IMPORTED_MODULE_1__/* .ShadowRootMenu */ .dy : _mui_material__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, { + PaperProps: props?.paperProps, + MenuListProps: props?.menuListProps, + open, + anchorEl, + onClose: close, + onClick: close, + anchorOrigin: props?.anchorOrigin, + transformOrigin: props?.transformOrigin + }, elements?.map((element, key)=>/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.isValidElement)(element) ? /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.cloneElement)(element, { + ...element.props, + key + }) : element + )), + (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((anchorElOrEvent)=>{ + let element; + if (anchorElOrEvent instanceof HTMLElement) { + element = anchorElOrEvent; + } else { + element = anchorElOrEvent.currentTarget; + } + // when the essential content of currentTarget would be closed over, + // we can set the anchorEl with currentTarget's bottom sibling to avoid it. + const finalAnchor = anchorSibling ? element.nextElementSibling ?? undefined : element; + setAnchorEl(finalAnchor); + setOpen(true); + // HACK: it seems like anchor doesn't work correctly + // but a force repaint can solve the problem. + window.requestAnimationFrame(update); + }, []), + ]; +} + + +/***/ }), + +/***/ 70236: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "E": () => (/* binding */ useSwitcher) +/* harmony export */ }); +/* unused harmony export useSettingsSwitcher */ +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35667); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(58757); +/* harmony import */ var _masknet_shared_base_ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(80226); +/* harmony import */ var _extension_options_page_DashboardComponents_ActionButton__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(72288); +/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(76618); + + + + + +function useSettingsSwitcher(settings, options, resolver) { + const currentOption = useValueRef(settings); + const nextOption = useMemo(()=>{ + if (options.length === 0) return; + if (typeof currentOption === 'undefined') return options[0]; + const indexOf = options.indexOf(currentOption); + if (indexOf === -1) return; + return indexOf === options.length - 1 ? options[0] : options[indexOf + 1]; + }, [ + currentOption, + options + ]); + const onSwitch = useCallback(()=>{ + if (typeof nextOption !== 'undefined') settings.value = nextOption; + }, [ + nextOption + ]); + if (options.length <= 1) return null; + if (typeof nextOption === 'undefined') return null; + return /*#__PURE__*/ _jsxs(ActionButton, { + sx: { + marginTop: 1 + }, + color: "primary", + variant: "contained", + onClick: onSwitch, + children: [ + "Switch to ", + resolver(nextOption) + ] + }); +} +function useSwitcher(currentOption, onSwitch, options, resolver, fullWidth) { + const theme = (0,_mui_material__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z)(); + const nextOption = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>{ + if (options.length === 0) return; + if (typeof currentOption === 'undefined') return options[0]; + const indexOf = options.indexOf(currentOption); + if (indexOf === -1) return; + return indexOf === options.length - 1 ? options[0] : options[indexOf + 1]; + }, [ + currentOption, + options + ]); + if (options.length <= 1) return null; + if (typeof nextOption === 'undefined') return null; + return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_extension_options_page_DashboardComponents_ActionButton__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .ZP, { + fullWidth: fullWidth, + sx: { + marginTop: 1, + backgroundColor: theme.palette.maskColor?.dark, + '&:hover': { + backgroundColor: theme.palette.maskColor?.dark + }, + color: 'white' + }, + variant: "contained", + onClick: ()=>onSwitch(nextOption) + , + children: [ + "Switch to ", + resolver(nextOption) + ] + }); +} + + +/***/ }), + +/***/ 94201: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + + +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "$": () => (/* reexport */ getAssetAsBlobURL) +}); + +// EXTERNAL MODULE: ./src/extension/service.ts +var service = __webpack_require__(78778); +// EXTERNAL MODULE: ../shared-base/src/index.ts + 2 modules +var src = __webpack_require__(44451); +;// CONCATENATED MODULE: ./src/utils/suspends/getAssetAsBlobURL.ts + + +/** + * Fetch a file and turn it into blob URL. + * This function must run in React concurrent mode. + */ function getAssetAsBlobURL(url) { + return (0,src/* getAssetAsBlobURL */.$I)(url, service/* default.Helper.fetch */.ZP.Helper.fetch); +} + +;// CONCATENATED MODULE: ./src/utils/suspends/index.ts + + + +/***/ }), + +/***/ 17784: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "$o": () => (/* reexport safe */ _color_tools__WEBPACK_IMPORTED_MODULE_0__.$o), +/* harmony export */ "B6": () => (/* reexport safe */ _useErrorStyles__WEBPACK_IMPORTED_MODULE_3__.B), +/* harmony export */ "JN": () => (/* reexport safe */ _useClassicMaskSNSTheme__WEBPACK_IMPORTED_MODULE_5__.J), +/* harmony export */ "Nh": () => (/* reexport safe */ _useColorStyles__WEBPACK_IMPORTED_MODULE_2__.N), +/* harmony export */ "VJ": () => (/* reexport safe */ _useClassicMaskSNSTheme__WEBPACK_IMPORTED_MODULE_5__.V), +/* harmony export */ "_T": () => (/* reexport safe */ _color_tools__WEBPACK_IMPORTED_MODULE_0__._T), +/* harmony export */ "aF": () => (/* reexport safe */ _color_tools__WEBPACK_IMPORTED_MODULE_0__.aF), +/* harmony export */ "dF": () => (/* reexport safe */ _color_tools__WEBPACK_IMPORTED_MODULE_0__.dF), +/* harmony export */ "f2": () => (/* reexport safe */ _color_tools__WEBPACK_IMPORTED_MODULE_0__.f2), +/* harmony export */ "wj": () => (/* reexport safe */ _color_tools__WEBPACK_IMPORTED_MODULE_0__.wj), +/* harmony export */ "xr": () => (/* reexport safe */ _color_tools__WEBPACK_IMPORTED_MODULE_0__.xr) +/* harmony export */ }); +/* harmony import */ var _color_tools__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(74280); +/* harmony import */ var _MaskTheme__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9956); +/* harmony import */ var _useColorStyles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(24103); +/* harmony import */ var _useErrorStyles__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(5839); +/* harmony import */ var _useThemeLanguage__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(65095); +/* harmony import */ var _useClassicMaskSNSTheme__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(51602); +// Do not export more files. Those files are deprecated. + + + + + + + + +/***/ }), + +/***/ 51602: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "J": () => (/* binding */ useClassicMaskSNSPluginTheme), +/* harmony export */ "V": () => (/* binding */ useClassicMaskSNSTheme) +/* harmony export */ }); +/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(25105); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(58757); +/* harmony import */ var _social_network__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(82192); +/* harmony import */ var use_subscription__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(14257); +/* harmony import */ var _MaskTheme__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(9956); +/* harmony import */ var _useThemeLanguage__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(65095); +/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(44451); +/* harmony import */ var _dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(88967); +/* harmony import */ var _dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_9__); +/* harmony import */ var _masknet_shared_base_ui__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(80226); +/* harmony import */ var _settings_settings__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(5903); +/* harmony import */ var lodash_unified__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(9084); +/* harmony import */ var lodash_unified__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(46440); +/* harmony import */ var _social_network_adaptor_twitter_com_customization_twitter_color_schema_json__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(88674); +/* harmony import */ var immer__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(60232); + + + + + + + + + + + + + +const staticRef = (0,_masknet_shared_base__WEBPACK_IMPORTED_MODULE_5__/* .createSubscriptionFromValueRef */ ._H)(new _dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_9__.ValueRef('light')); +const defaultUseTheme = (t)=>t +; +/** + * @deprecated Should migrate to \@masknet/theme + */ function useClassicMaskSNSTheme() { + const provider = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(_social_network__WEBPACK_IMPORTED_MODULE_1__/* .activatedSocialNetworkUI.customization.paletteMode */ .LM.customization.paletteMode?.current || staticRef).current; + const usePostTheme = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(_social_network__WEBPACK_IMPORTED_MODULE_1__/* .activatedSocialNetworkUI.customization.useTheme */ .LM.customization.useTheme || defaultUseTheme).current; + const palette = (0,use_subscription__WEBPACK_IMPORTED_MODULE_2__.useSubscription)(provider); + const baseTheme = palette === 'dark' ? _MaskTheme__WEBPACK_IMPORTED_MODULE_3__/* .MaskDarkTheme */ .H : _MaskTheme__WEBPACK_IMPORTED_MODULE_3__/* .MaskLightTheme */ .C; + (0,immer__WEBPACK_IMPORTED_MODULE_10__/* .setAutoFreeze */ .Fl)(false); + const maskTheme = (0,immer__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .ZP)(baseTheme, (theme)=>{ + const colorSchema = _social_network_adaptor_twitter_com_customization_twitter_color_schema_json__WEBPACK_IMPORTED_MODULE_8__[theme.palette.mode]; + theme.palette.maskColor = colorSchema.maskColor; + }); + // TODO: support RTL? + const [localization, isRTL] = (0,_useThemeLanguage__WEBPACK_IMPORTED_MODULE_4__/* .useThemeLanguage */ .e)((0,_masknet_shared_base_ui__WEBPACK_IMPORTED_MODULE_6__/* .useValueRef */ .E)(_settings_settings__WEBPACK_IMPORTED_MODULE_7__/* .languageSettings */ .pQ)); + const theme1 = (0,_mui_material__WEBPACK_IMPORTED_MODULE_11__/* ["default"] */ .Z)(maskTheme, localization); + return usePostTheme(theme1); +} +function useClassicMaskSNSPluginTheme() { + const theme = useClassicMaskSNSTheme(); + return (0,_mui_material__WEBPACK_IMPORTED_MODULE_11__/* ["default"] */ .Z)((0,lodash_unified__WEBPACK_IMPORTED_MODULE_12__/* ["default"] */ .Z)((0,lodash_unified__WEBPACK_IMPORTED_MODULE_13__/* ["default"] */ .Z)(theme), { + components: { + MuiButton: { + defaultProps: { + variant: 'roundedContained' + } + } + } + })); +} + + +/***/ }), + +/***/ 24103: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "N": () => (/* binding */ useColorStyles) +/* harmony export */ }); +/* harmony import */ var _masknet_theme__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(31939); +/* harmony import */ var _mui_material_colors__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(15746); +/* harmony import */ var _mui_material_colors__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(92017); +/* harmony import */ var _mui_material_colors__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(94362); + + +const useColorStyles = (0,_masknet_theme__WEBPACK_IMPORTED_MODULE_0__/* .makeStyles */ .ZL)()((theme)=>{ + const dark = theme.palette.mode === 'dark'; + return { + error: { + color: dark ? _mui_material_colors__WEBPACK_IMPORTED_MODULE_1__/* ["default"][500] */ .Z[500] : _mui_material_colors__WEBPACK_IMPORTED_MODULE_1__/* ["default"][900] */ .Z[900] + }, + success: { + color: dark ? _mui_material_colors__WEBPACK_IMPORTED_MODULE_2__/* ["default"][500] */ .Z[500] : _mui_material_colors__WEBPACK_IMPORTED_MODULE_2__/* ["default"][800] */ .Z[800] + }, + info: { + color: dark ? _mui_material_colors__WEBPACK_IMPORTED_MODULE_3__/* ["default"][500] */ .Z[500] : _mui_material_colors__WEBPACK_IMPORTED_MODULE_3__/* ["default"][800] */ .Z[800] + } + }; +}); + + +/***/ }), + +/***/ 45813: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "S": () => (/* binding */ useRecentTransactions) +/* harmony export */ }); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(58757); +/* harmony import */ var use_subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(14257); +/* harmony import */ var _useWeb3State__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(12368); +/* harmony import */ var _utils_subscription__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(55437); + + + + +function useRecentTransactions(pluginID, status) { + const { Transaction } = (0,_useWeb3State__WEBPACK_IMPORTED_MODULE_2__/* .useWeb3State */ .d)(pluginID); + const transactions = (0,use_subscription__WEBPACK_IMPORTED_MODULE_1__.useSubscription)(Transaction?.transactions ?? _utils_subscription__WEBPACK_IMPORTED_MODULE_3__/* .EMPTY_ARRAY */ .LZ); + return (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(()=>{ + return (status ? transactions.filter((x)=>status === x.status + ) : transactions).map((x)=>({ + ...x, + _tx: x.candidates[x.indexId] + }) + ); + }, [ + status, + transactions + ]); +} + + +/***/ }), + +/***/ 77758: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "$": () => (/* binding */ useReverseAddress) +/* harmony export */ }); +/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(58500); +/* harmony import */ var _useChainId__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(45087); +/* harmony import */ var _useWeb3State__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12368); + + + +function useReverseAddress(pluginID, address) { + const chainId = (0,_useChainId__WEBPACK_IMPORTED_MODULE_0__/* .useChainId */ .x)(pluginID); + const { NameService , Others } = (0,_useWeb3State__WEBPACK_IMPORTED_MODULE_1__/* .useWeb3State */ .d)(pluginID); + return (0,react_use__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z)(async ()=>{ + if (!chainId || !address || !Others?.isValidAddress?.(address) || !NameService) return; + return NameService.reverse?.(chainId, address); + }, [ + address, + chainId, + NameService + ]); +} + + +/***/ }), + +/***/ 95169: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + + +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "r8": () => (/* reexport */ createGlobalState/* createGlobalState */.r), + "pv": () => (/* reexport */ useObservableMapSet/* useObservableValues */.p), + "F$": () => (/* reexport */ useRemoteControlledDialog/* useRemoteControlledDialog */.F), + "S8": () => (/* reexport */ useScrollBottomEvent/* useScrollBottomEvent */.S), + "E": () => (/* reexport */ useValueRef) +}); + +// UNUSED EXPORTS: useAim, useValueRefDelayed + +// EXTERNAL MODULE: ../shared-base-ui/src/hooks/createGlobalState.ts +var createGlobalState = __webpack_require__(30807); +// EXTERNAL MODULE: ../shared-base-ui/src/hooks/useAim.ts +var useAim = __webpack_require__(56324); +// EXTERNAL MODULE: ../shared-base-ui/src/hooks/useObservableMapSet.ts +var useObservableMapSet = __webpack_require__(83152); +// EXTERNAL MODULE: ../shared-base-ui/src/hooks/useRemoteControlledDialog.ts +var useRemoteControlledDialog = __webpack_require__(526); +// EXTERNAL MODULE: ../shared-base-ui/src/hooks/useScrollBottomEvent.ts +var useScrollBottomEvent = __webpack_require__(30780); +// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.1.0/node_modules/react/index.js +var react = __webpack_require__(58757); +// EXTERNAL MODULE: ../../node_modules/.pnpm/use-subscription@1.6.0/node_modules/use-subscription/index.js +var use_subscription = __webpack_require__(14257); +;// CONCATENATED MODULE: ../shared-base-ui/src/hooks/useValueRef.ts + + +function useValueRef(ref) { + const subscription = (0,react.useMemo)(()=>({ + getCurrentValue: ()=>ref.value + , + subscribe: (callback)=>ref.addListener(callback) + }) + , [ + ref + ]); + return (0,use_subscription.useSubscription)(subscription); +} +function useValueRefDelayed(ref, latency = 500) { + const subscription = useMemo(()=>({ + getCurrentValue: ()=>ref.value + , + subscribe: (callback)=>{ + return ref.addListener((newVal, oldVal)=>{ + setTimeout(()=>callback(newVal, oldVal) + , latency); + }); + } + }) + , [ + ref, + latency + ]); + return useSubscription(subscription); +} + +;// CONCATENATED MODULE: ../shared-base-ui/src/hooks/index.ts + + + + + + + + +/***/ }), + +/***/ 11337: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "m": () => (/* binding */ PopupRoutes) +/* harmony export */ }); +var PopupRoutes; +(function(PopupRoutes) { + PopupRoutes["Root"] = '/'; + PopupRoutes["Wallet"] = '/wallet'; + PopupRoutes["ImportWallet"] = '/wallet/import'; + PopupRoutes["AddDeriveWallet"] = '/wallet/addDerive'; + PopupRoutes["WalletSettings"] = '/wallet/settings'; + PopupRoutes["WalletRename"] = '/wallet/rename'; + PopupRoutes["DeleteWallet"] = '/wallet/delete'; + PopupRoutes["CreateWallet"] = '/wallet/create'; + PopupRoutes["SwitchWallet"] = '/wallet/switch'; + PopupRoutes["SelectWallet"] = '/wallet/select'; + PopupRoutes["WalletRecovered"] = '/wallet/recovered'; + PopupRoutes["LegacyWalletRecovered"] = '/wallet/legacy-recovered'; + PopupRoutes["BackupWallet"] = '/wallet/backup'; + PopupRoutes["AddToken"] = '/wallet/addToken'; + PopupRoutes["WalletSignRequest"] = '/wallet/sign'; + PopupRoutes["GasSetting"] = '/wallet/gas'; + PopupRoutes["TokenDetail"] = '/wallet/tokenDetail'; + PopupRoutes["ContractInteraction"] = '/wallet/contract-interaction'; + PopupRoutes["Unlock"] = '/wallet/unlock'; + PopupRoutes["Transfer"] = '/wallet/transfer'; + PopupRoutes["SetPaymentPassword"] = '/wallet/password'; + PopupRoutes["ReplaceTransaction"] = '/wallet/replace'; + PopupRoutes["Personas"] = '/personas'; + PopupRoutes["Logout"] = '/personas/logout'; + PopupRoutes["PersonaRename"] = '/personas/rename'; + PopupRoutes["SelectPersona"] = '/personas/select'; + PopupRoutes["SocialAccounts"] = '/personas/accounts'; + PopupRoutes["AccountDetail"] = '/personas/accounts/detail'; + PopupRoutes["ConnectedWallets"] = '/personas/connected-wallets'; + PopupRoutes["PersonaSignRequest"] = '/personas/sign-request'; + PopupRoutes["PermissionAwareRedirect"] = '/redirect'; + PopupRoutes["RequestPermission"] = '/request-permission'; + PopupRoutes["ThirdPartyRequestPermission"] = '/3rd-request-permission'; + PopupRoutes["SignRequest"] = '/sign-request'; + PopupRoutes["Swap"] = '/swap'; + PopupRoutes["ConnectWallet"] = '/wallet/connect'; + PopupRoutes["VerifyWallet"] = '/personas/verify'; +})(PopupRoutes || (PopupRoutes = {})); + + +/***/ }), + +/***/ 99594: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "Y_": () => (/* binding */ relativeRouteOf), +/* harmony export */ "mZ": () => (/* reexport safe */ _PopupRoutes__WEBPACK_IMPORTED_MODULE_0__.m), +/* harmony export */ "vq": () => (/* reexport safe */ _DashboardRoutes__WEBPACK_IMPORTED_MODULE_1__.v) +/* harmony export */ }); +/* harmony import */ var _PopupRoutes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11337); +/* harmony import */ var _DashboardRoutes__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(89364); + + +function relativeRouteOf(parent) { + return (child)=>{ + if (!child.startsWith(parent)) throw new Error(); + return child.slice(parent.length).replace(/^\//, ''); + }; +} + + +/***/ }), + +/***/ 80681: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + + +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "po": () => (/* reexport */ Flatten/* FlattenTypedMessage */.p), + "al": () => (/* reexport */ ParseLinkTransformer), + "gO": () => (/* reexport */ composed/* composeTransformers */.g), + "Ab": () => (/* reexport */ binary_encode/* decodeTypedMessageFromDocument */.A), + "WR": () => (/* reexport */ deprecated_encode/* decodeTypedMessageV38ToV40Format */.W), + "vg": () => (/* reexport */ context/* emptyTransformationContext */.v), + "F9": () => (/* reexport */ binary_encode/* encodeTypedMessageToDocument */.F), + "Hu": () => (/* reexport */ deprecated_encode/* encodeTypedMessageV38Format */.H), + "Vc": () => (/* reexport */ utils/* extractTextFromTypedMessage */.Vc), + "ss": () => (/* reexport */ visitor/* forEachTypedMessageChild */.s), + "bj": () => (/* reexport */ extension/* isTypedMessageAnchor */.bj), + "YN": () => (/* reexport */ core/* isTypedMessageEmpty */.YN), + "Hz": () => (/* reexport */ utils/* isTypedMessageEqual */.Hz), + "Rz": () => (/* reexport */ core/* isTypedMessageText */.Rz), + "Jv": () => (/* reexport */ extension/* makeTypedMessageAnchor */.Jv), + "WM": () => (/* reexport */ core/* makeTypedMessageEmpty */.WM), + "as": () => (/* reexport */ core/* makeTypedMessageImage */.as), + "Ng": () => (/* reexport */ core/* makeTypedMessagePromise */.Ng), + "P": () => (/* reexport */ core/* makeTypedMessageText */.P), + "Zw": () => (/* reexport */ core/* makeTypedMessageTuple */.Zw), + "n_": () => (/* reexport */ core/* makeTypedMessageTupleFromList */.n_), + "IJ": () => (/* reexport */ visitor/* visitEachTypedMessageChild */.I) +}); + +// UNUSED EXPORTS: createMaskPayloadTransform, createTransformationContext, extractImageFromTypedMessage, isCoreTypedMessages, isNonSerializableTypedMessageWithAlt, isSerializableTypedMessage, isTypedMessageImage, isTypedMessageMaskPayload, isTypedMessagePromise, isTypedMessageTextV1, isTypedMessageTuple, isTypedMessageTupleSerializable, isTypedMessageUnknown, isWellKnownExtensionTypedMessages, isWellKnownTypedMessages, makeTypedMessageMaskPayload, makeTypedMessageSerializableTupleFromList, makeTypedMessageTupleSerializable, makeTypedMessageUnknown + +// EXTERNAL MODULE: ../typed-message/base/core/index.ts + 2 modules +var core = __webpack_require__(88973); +// EXTERNAL MODULE: ../typed-message/base/extension/index.ts + 1 modules +var extension = __webpack_require__(61436); +// EXTERNAL MODULE: ../typed-message/base/binary-encode/index.ts + 3 modules +var binary_encode = __webpack_require__(96458); +// EXTERNAL MODULE: ../typed-message/base/deprecated-encode/index.ts +var deprecated_encode = __webpack_require__(60178); +// EXTERNAL MODULE: ../typed-message/base/utils/index.ts +var utils = __webpack_require__(97637); +// EXTERNAL MODULE: ../typed-message/base/visitor/index.ts +var visitor = __webpack_require__(59460); +// EXTERNAL MODULE: ../typed-message/base/transformer/composed.ts +var composed = __webpack_require__(33801); +// EXTERNAL MODULE: ../typed-message/base/transformer/context.ts +var context = __webpack_require__(18548); +// EXTERNAL MODULE: ../typed-message/base/transformer/Flatten.ts +var Flatten = __webpack_require__(91810); +// EXTERNAL MODULE: ../typed-message/base/utils/parseLink.ts +var parseLink = __webpack_require__(11514); +;// CONCATENATED MODULE: ../typed-message/base/transformer/ParseLink.ts + + + + +function ParseLinkTransformer(message, context) { + if ((0,core/* isTypedMessageText */.Rz)(message)) { + const parsed = (0,parseLink/* parseLink */.V)(message.content); + if (parsed.length === 1 && parsed[0].type === 'text') return message; + return (0,core/* makeTypedMessageTupleSerializable */.kT)(parsed.map((i)=>{ + if (i.type === 'text') return (0,core/* makeTypedMessageText */.P)(i.content); + return (0,extension/* makeTypedMessageAnchor */.Jv)(i.category, i.content, i.content); + }), message.meta); + } + return (0,visitor/* visitEachTypedMessageChild */.I)(message, ParseLinkTransformer, context); +} + +// EXTERNAL MODULE: ../typed-message/base/transformer/MaskPayload/index.ts +var MaskPayload = __webpack_require__(75058); +;// CONCATENATED MODULE: ../typed-message/base/transformer/index.ts + + + + + + +// EXTERNAL MODULE: ../typed-message/base/utils/internal.ts +var internal = __webpack_require__(88554); +;// CONCATENATED MODULE: ../typed-message/base/index.ts + + + + + + + + + + + +const isWellKnownTypedMessages = (0,internal/* composeSome */.Vm)(core/* isCoreTypedMessages */.ez, extension/* isWellKnownExtensionTypedMessages */.SY); + + +/***/ }), + +/***/ 18548: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "v": () => (/* binding */ emptyTransformationContext) +/* harmony export */ }); +/* unused harmony export createTransformationContext */ +function createTransformationContext() { + return Object.freeze({}); +} +const emptyTransformationContext = createTransformationContext(); + + +/***/ }), + +/***/ 22036: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "V": () => (/* binding */ extractTextFromTypedMessage) +/* harmony export */ }); +/* unused harmony export extractImageFromTypedMessage */ +/* harmony import */ var _core_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(88973); +/* harmony import */ var _extension_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(61436); +/* harmony import */ var ts_results__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(48160); +/* harmony import */ var _visitor_index_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(59460); + + + + +/** + * Get inner text from a TypedMessage + * @param message message + */ function extractTextFromTypedMessage(message1, options) { + if (!message1) return ts_results__WEBPACK_IMPORTED_MODULE_2__/* .None */ .Hq; + const text = []; + function visitor(message) { + if ((0,_core_index_js__WEBPACK_IMPORTED_MODULE_0__/* .isTypedMessageText */ .Rz)(message)) text.push(message.content); + else if ((0,_extension_index_js__WEBPACK_IMPORTED_MODULE_1__/* .isTypedMessageAnchor */ .bj)(message)) { + text.push(message.content); + if (options?.linkAsText) text.push(`(${message.href})`); + } else (0,_visitor_index_js__WEBPACK_IMPORTED_MODULE_3__/* .forEachTypedMessageChild */ .s)(message, visitor); + } + visitor(message1); + (0,_visitor_index_js__WEBPACK_IMPORTED_MODULE_3__/* .forEachTypedMessageChild */ .s)(message1, visitor); + if (text.length) return (0,ts_results__WEBPACK_IMPORTED_MODULE_2__/* .Some */ .bD)(text.join(' ')); + return ts_results__WEBPACK_IMPORTED_MODULE_2__/* .None */ .Hq; +} +function extractImageFromTypedMessage(message2) { + if (!message2) return []; + const image = []; + function visitor(message) { + if (isTypedMessageImage(message)) return void image.push(message.image); + return forEachTypedMessageChild(message, visitor); + } + visitor(message2); + forEachTypedMessageChild(message2, visitor); + return image; +} + + +/***/ }), + +/***/ 97637: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "Hz": () => (/* binding */ isTypedMessageEqual), +/* harmony export */ "Vc": () => (/* reexport safe */ _extract_js__WEBPACK_IMPORTED_MODULE_0__.V), +/* harmony export */ "c3": () => (/* binding */ isNonSerializableTypedMessageWithAlt), +/* harmony export */ "fV": () => (/* binding */ isSerializableTypedMessage) +/* harmony export */ }); +/* harmony import */ var _extract_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(22036); +/* harmony import */ var lodash_unified__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(23587); + + +function isNonSerializableTypedMessageWithAlt(x) { + const y = x; + if (y.serializable !== false) return false; + if (!y.alt) return false; + return isSerializableTypedMessage(y.alt); +} +function isSerializableTypedMessage(x) { + if (x.serializable) return true; + return isNonSerializableTypedMessageWithAlt(x); +} +/** + * This is a tree compare algorithm, may need to find a more efficient one from NPM + */ function isTypedMessageEqual(message1, message2) { + if (message1.type !== message2.type) return false; + if (message1.meta !== message2.meta) return false; + // perform a deep equal + return (0,lodash_unified__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)(message1, message2); +} + + +/***/ }), + +/***/ 82153: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "s": () => (/* binding */ forEachTypedMessageChild) +/* harmony export */ }); +/* harmony import */ var _core_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(88973); +/* harmony import */ var _utils_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(97637); +/* harmony import */ var _extension_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(61436); + + + +function forEachTypedMessageChild(node, visitor) { + let stop; + if ((0,_core_index_js__WEBPACK_IMPORTED_MODULE_0__/* .isTypedMessageTuple */ .bZ)(node)) { + for (const each of node.items){ + stop = visitor(each); + if (stop) return; + } + } else if ((0,_core_index_js__WEBPACK_IMPORTED_MODULE_0__/* .isTypedMessagePromise */ .KV)(node)) { + // if Promise has a resolved value, we ignore it's alt. + if (node.promise.value) visitor(node.promise.value); + else if (node.alt) visitor(node.alt); + } else if ((0,_extension_index_js__WEBPACK_IMPORTED_MODULE_2__/* .isTypedMessageMaskPayload */ .$6)(node)) { + visitor(node.message); + } else if ((0,_utils_index_js__WEBPACK_IMPORTED_MODULE_1__/* .isNonSerializableTypedMessageWithAlt */ .c3)(node)) { + visitor(node.alt); + } +} + + +/***/ }), + +/***/ 57368: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "I": () => (/* binding */ visitEachTypedMessageChild) +/* harmony export */ }); +/* harmony import */ var _core_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(88973); +/* harmony import */ var _utils_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(97637); +/* harmony import */ var _extension_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(61436); + + + +function visitEachTypedMessageChild(node, visitor, context) { + if ((0,_core_index_js__WEBPACK_IMPORTED_MODULE_0__/* .isTypedMessageTuple */ .bZ)(node)) { + const after = node.items.flatMap((x)=>{ + const next = visitor(x, context); + if ((0,_core_index_js__WEBPACK_IMPORTED_MODULE_0__/* .isTypedMessageTuple */ .bZ)(next)) return next.items; + return next; + }); + if (after.every(_utils_index_js__WEBPACK_IMPORTED_MODULE_1__/* .isSerializableTypedMessage */ .fV)) { + return (0,_core_index_js__WEBPACK_IMPORTED_MODULE_0__/* .makeTypedMessageTupleSerializable */ .kT)(after, node.meta); + } + return (0,_core_index_js__WEBPACK_IMPORTED_MODULE_0__/* .makeTypedMessageTuple */ .Zw)(after, node.meta); + } else if ((0,_core_index_js__WEBPACK_IMPORTED_MODULE_0__/* .isTypedMessagePromise */ .KV)(node)) { + // we ignore alt if promise is resolved. + if (node.promise.value) return visitor(node.promise.value, context); + else if (node.alt) return (0,_core_index_js__WEBPACK_IMPORTED_MODULE_0__/* .makeTypedMessagePromise */ .Ng)(node.promise, visitor(node.alt, context)); + return node; + } else if ((0,_extension_index_js__WEBPACK_IMPORTED_MODULE_2__/* .isTypedMessageMaskPayload */ .$6)(node)) { + const next = visitor(node.message, context); + return (0,_extension_index_js__WEBPACK_IMPORTED_MODULE_2__/* .makeTypedMessageMaskPayload */ .Jq)(next, node.meta); + } else if ((0,_utils_index_js__WEBPACK_IMPORTED_MODULE_1__/* .isNonSerializableTypedMessageWithAlt */ .c3)(node)) { + const alt = visitor(node.alt, context); + if (!(0,_utils_index_js__WEBPACK_IMPORTED_MODULE_1__/* .isSerializableTypedMessage */ .fV)(alt)) { + console.warn('[@masknet/typed-message] You must return a serializable message in this position. Original:', node, 'Transformed child "alt":', alt); + // ignore the transform result + return node; + } + return { + ...node, + alt + }; + } else { + // return node with no child + return node; + } +} + + +/***/ }) + +}]); \ No newline at end of file diff --git a/DevelopmentPod/MaskbookPlugin/maskbook/js/3939.js b/DevelopmentPod/MaskbookPlugin/maskbook/js/3939.js new file mode 100644 index 00000000..9e24d3ac --- /dev/null +++ b/DevelopmentPod/MaskbookPlugin/maskbook/js/3939.js @@ -0,0 +1,2064 @@ +"use strict"; +(globalThis["webpackChunk_masknet_extension"] = globalThis["webpackChunk_masknet_extension"] || []).push([[3939],{ + +/***/ 88299: +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +/** + * @license React + * react-jsx-runtime.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +var f=__webpack_require__(58757),k=Symbol.for("react.element"),l=Symbol.for("react.fragment"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0}; +function q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=""+g);void 0!==a.key&&(e=""+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q; + + +/***/ }), + +/***/ 73742: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "M1": () => (/* binding */ pasteText), +/* harmony export */ "Mx": () => (/* binding */ pasteImage), +/* harmony export */ "X2": () => (/* binding */ pasteInstagram), +/* harmony export */ "ed": () => (/* binding */ hookInputUploadOnce), +/* harmony export */ "iJ": () => (/* binding */ inputText), +/* harmony export */ "ju": () => (/* binding */ injectedPhantomProvider), +/* harmony export */ "pb": () => (/* binding */ injectedCoin98SolanaProvider), +/* harmony export */ "yR": () => (/* binding */ injectedSolflareProvider) +/* harmony export */ }); +/* unused harmony exports injectedCoin98EVMProvider, injectedMetaMaskProvider, injectedMathWalletProvider, injectedWalletLinkProvider */ +/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(43906); +/* harmony import */ var _Coin98__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(45169); +/* harmony import */ var _Phantom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(34240); +/* harmony import */ var _Solflare__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(14732); +/* harmony import */ var _MetaMask__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(24142); +/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(28383); +/* harmony import */ var _MathWallet__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(42362); +/* harmony import */ var _WalletLink__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(36859); + + + + + + + + +const injectedCoin98EVMProvider = new _Coin98__WEBPACK_IMPORTED_MODULE_1__/* .Coin98Provider */ .v(_Coin98__WEBPACK_IMPORTED_MODULE_1__/* .Coin98ProviderType.EVM */ .E.EVM); +const injectedCoin98SolanaProvider = new _Coin98__WEBPACK_IMPORTED_MODULE_1__/* .Coin98Provider */ .v(_Coin98__WEBPACK_IMPORTED_MODULE_1__/* .Coin98ProviderType.Solana */ .E.Solana); +const injectedPhantomProvider = new _Phantom__WEBPACK_IMPORTED_MODULE_2__/* .PhantomProvider */ .p(); +const injectedSolflareProvider = new _Solflare__WEBPACK_IMPORTED_MODULE_3__/* .SolflareProvider */ .B(); +const injectedMetaMaskProvider = new _MetaMask__WEBPACK_IMPORTED_MODULE_4__/* .MetaMaskProvider */ .Y(); +const injectedMathWalletProvider = new _MathWallet__WEBPACK_IMPORTED_MODULE_6__/* .MathWalletProvider */ .W(); +const injectedWalletLinkProvider = new _WalletLink__WEBPACK_IMPORTED_MODULE_7__/* .WalletLinkProvider */ .J(); +function pasteText(text) { + (0,_utils__WEBPACK_IMPORTED_MODULE_5__/* .sendEvent */ .qP)('paste', text); +} +function pasteImage(image) { + (0,_utils__WEBPACK_IMPORTED_MODULE_5__/* .sendEvent */ .qP)('pasteImage', Array.from(image)); +} +function pasteInstagram(url) { + (0,_utils__WEBPACK_IMPORTED_MODULE_5__/* .sendEvent */ .qP)('instagramUpload', url); +} +function inputText(text) { + (0,_utils__WEBPACK_IMPORTED_MODULE_5__/* .sendEvent */ .qP)('input', text); +} +function hookInputUploadOnce(format, fileName, image, triggerOnActiveElementNow = false) { + (0,_utils__WEBPACK_IMPORTED_MODULE_5__/* .sendEvent */ .qP)('hookInputUploadOnce', format, fileName, Array.from(image), triggerOnActiveElementNow); +} +document.addEventListener(_shared__WEBPACK_IMPORTED_MODULE_0__/* .CustomEventId */ .OV, (e)=>{ + const r = (0,_shared__WEBPACK_IMPORTED_MODULE_0__/* .decodeEvent */ .Vu)(e.detail); + if (r[1].length < 1) return; + switch(r[0]){ + case 'resolvePromise': + return (0,_utils__WEBPACK_IMPORTED_MODULE_5__/* .resolvePromise */ .LD)(...r[1]); + case 'rejectPromise': + return (0,_utils__WEBPACK_IMPORTED_MODULE_5__/* .rejectPromise */ .Eu)(...r[1]); + case 'web3BridgeEmitEvent': + const [pathname, eventName, data] = r[1]; + const provider = [ + injectedCoin98EVMProvider, + injectedCoin98SolanaProvider, + injectedPhantomProvider, + injectedMetaMaskProvider, + injectedMathWalletProvider, + injectedWalletLinkProvider, + ].find((x)=>x.pathname === pathname + ); + provider?.emit(eventName, data); + return; + case 'web3BridgeBindEvent': + case 'web3BridgeSendRequest': + case 'web3BridgeExecute': + case 'web3UntilBridgeOnline': + case 'web3BridgePrimitiveAccess': + case 'input': + case 'paste': + case 'pasteImage': + case 'instagramUpload': + case 'hookInputUploadOnce': + break; + default: + const neverEvent = r[0]; + console.log('[@masknet/injected-script]', neverEvent, 'not handled'); + } +}); + + +/***/ }), + +/***/ 43906: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "Nu": () => (/* binding */ encodeEvent), +/* harmony export */ "OV": () => (/* binding */ CustomEventId), +/* harmony export */ "Vu": () => (/* binding */ decodeEvent) +/* harmony export */ }); +const CustomEventId = 'c8a6c18e-f6a3-472a-adf3-5335deb80db6'; +const { parse , stringify } = JSON; +const { isArray } = Array; +function encodeEvent(key, args) { + return stringify([ + key, + args + ]); +} +function decodeEvent(data) { + const result = parse(data); + // Do not throw new Error cause it requires a global lookup. + // eslint-disable-next-line + if (!isEventItemBeforeSerialization(result)) throw null; + return result; +} +function isEventItemBeforeSerialization(data) { + if (!isArray(data)) return false; + if (data.length !== 2) return false; + if (typeof data[0] !== 'string') return false; + if (!isArray(data[1])) return false; + return true; +} + + +/***/ }), + +/***/ 61937: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "r": () => (/* reexport safe */ _download__WEBPACK_IMPORTED_MODULE_0__.r) +/* harmony export */ }); +/* harmony import */ var _download__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(42886); + + + +/***/ }), + +/***/ 94670: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "_H": () => (/* reexport safe */ _kv_storage__WEBPACK_IMPORTED_MODULE_2__._H), +/* harmony export */ "ql": () => (/* reexport safe */ _messages__WEBPACK_IMPORTED_MODULE_0__.q), +/* harmony export */ "rs": () => (/* reexport safe */ _helpers__WEBPACK_IMPORTED_MODULE_3__.r), +/* harmony export */ "uU": () => (/* reexport safe */ _kv_storage__WEBPACK_IMPORTED_MODULE_2__.uU), +/* harmony export */ "vU": () => (/* reexport safe */ _flags__WEBPACK_IMPORTED_MODULE_1__.vU) +/* harmony export */ }); +/* harmony import */ var _messages__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(29130); +/* harmony import */ var _flags__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(39820); +/* harmony import */ var _kv_storage__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(25683); +/* harmony import */ var _helpers__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(61937); + + + + + + +/***/ }), + +/***/ 82192: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "BE": () => (/* reexport safe */ _define__WEBPACK_IMPORTED_MODULE_2__.BE), +/* harmony export */ "Du": () => (/* reexport safe */ _utils__WEBPACK_IMPORTED_MODULE_0__.D), +/* harmony export */ "EJ": () => (/* reexport safe */ _ui__WEBPACK_IMPORTED_MODULE_1__.globalUIState), +/* harmony export */ "LM": () => (/* reexport safe */ _ui__WEBPACK_IMPORTED_MODULE_1__.activatedSocialNetworkUI), +/* harmony export */ "ZZ": () => (/* reexport safe */ _utils__WEBPACK_IMPORTED_MODULE_0__.Z) +/* harmony export */ }); +/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(25513); +/* harmony import */ var _ui__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(58248); +/* harmony import */ var _define__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(20940); + + + + + + +/***/ }), + +/***/ 4004: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "q": () => (/* binding */ Avatar) +/* harmony export */ }); +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35667); +/* harmony import */ var _mui_material_Avatar_Avatar__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(3808); +/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(76618); +/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(44451); + + + + +function Avatar({ person , ...props }) { + const { avatar , nickname , identifier } = person; + const name = identifier.userId || nickname || ''; + const [first, last] = name.split(' '); + const theme = (0,_mui_material__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z)().palette.mode; + return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_mui_material_Avatar_Avatar__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, { + "aria-label": name, + src: avatar, + style: { + backgroundColor: (0,_masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .generateContactAvatarColor */ .eP)(identifier.toText(), theme) + }, + ...props, + children: [ + first[0], + (last || '')[0] + ] + }); +} + + +/***/ }), + +/***/ 49723: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "S": () => (/* binding */ useLocationChange) +/* harmony export */ }); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(58757); + +function useLocationChange(handler) { + (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>{ + window.addEventListener('locationchange', handler); + return ()=>window.removeEventListener('locationchange', handler) + ; + }, [ + handler + ]); +} + + +/***/ }), + +/***/ 93455: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + + +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "qE": () => (/* reexport */ Avatar/* Avatar */.q), + "ql": () => (/* reexport */ messages/* MaskMessages */.q), + "aW": () => (/* reexport */ collectNodeText/* collectNodeText */.a), + "_r": () => (/* reexport */ collectNodeText/* collectTwitterEmoji */._), + "ou": () => (/* reexport */ renderInShadowRoot/* createReactRootShadowed */.o), + "GR": () => (/* reexport */ utils/* downloadUrl */.GR), + "$I": () => (/* reexport */ suspends/* getAssetAsBlobURL */.$), + "dF": () => (/* reexport */ theme/* getBackgroundColor */.dF), + "c_": () => (/* reexport */ getTextUILength/* getTextUILength */.c), + "sC": () => (/* reexport */ type_transform/* hasPayloadLike */.s), + "bF": () => (/* reexport */ utils/* pasteImageToActiveElements */.bF), + "Vc": () => (/* reexport */ renderInShadowRoot/* setupShadowRootPortal */.V), + "cc": () => (/* reexport */ getTextUILength/* sliceTextByUILength */.L), + "fy": () => (/* reexport */ watcher/* startWatch */.f), + "ft": () => (/* reexport */ dom/* untilElementAvailable */.f), + "JN": () => (/* reexport */ theme/* useClassicMaskSNSPluginTheme */.JN), + "D2": () => (/* reexport */ useControlledDialog/* useControlledDialog */.D), + "M1": () => (/* reexport */ i18n_next_ui/* useI18N */.M), + "ZK": () => (/* reexport */ i18n_next_ui/* useLanguage */.Z), + "SL": () => (/* reexport */ useLocationChange/* useLocationChange */.S), + "IN": () => (/* reexport */ useMatchXS/* useMatchXS */.I), + "H9": () => (/* reexport */ useMenu/* useMenu */.H), + "eD": () => (/* reexport */ useQueryNavigatorPermission), + "Ei": () => (/* reexport */ useSettingSwitcher/* useSwitcher */.E) +}); + +// UNUSED EXPORTS: MaskDarkTheme, MaskLightTheme, asyncIteratorToArray, createNormalReactRoot, extraPermissions, fromRGB, getForegroundColor, isDark, isDarkTheme, nthChild, regexMatch, selectElementContents, shade, toRGB, useClassicMaskSNSTheme, useColorStyles, useErrorStyles, useSettingsSwitcher, useSuspense, useThemeLanguage + +// EXTERNAL MODULE: ./src/utils/components/Avatar.tsx +var Avatar = __webpack_require__(4004); +;// CONCATENATED MODULE: ./src/utils/components/index.ts + + +// EXTERNAL MODULE: ./src/utils/debug/index.ts +var debug = __webpack_require__(55802); +// EXTERNAL MODULE: ./src/utils/hooks/useControlledDialog.ts +var useControlledDialog = __webpack_require__(45908); +// EXTERNAL MODULE: ./src/utils/hooks/useMatchXS.ts +var useMatchXS = __webpack_require__(9178); +// EXTERNAL MODULE: ./src/utils/hooks/useMenu.tsx +var useMenu = __webpack_require__(78831); +// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.1.0/node_modules/react/index.js +var react = __webpack_require__(58757); +// EXTERNAL MODULE: ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/hasIn.js + 2 modules +var hasIn = __webpack_require__(61451); +// EXTERNAL MODULE: ./shared/index.ts +var shared = __webpack_require__(94670); +;// CONCATENATED MODULE: ./src/utils/hooks/useQueryNavigatorPermission.ts +/** This file is published under MIT License */ + + +const q = [ + 'query', + 'request', + 'revoke' +]; +function checkPermissionApiUsability(type) { + const r = {}; + for (const v of q){ + r[v] = (0,hasIn/* default */.Z)(navigator, `permissions.${v}`); + } + if (type) { + return r[type]; + } + return r; +} +function useQueryNavigatorPermission(needRequest, name) { + const [permission, updatePermission] = (0,react.useState)('prompt'); + (0,react.useEffect)(()=>{ + // TODO: Only camera related APi need to check Flags.has_no_WebRTC + if (!needRequest || permission !== 'prompt' || shared/* Flags.has_no_WebRTC */.vU.has_no_WebRTC) return; + let permissionStatus; + const handleChange = function() { + updatePermission(this.state); + }; + if (checkPermissionApiUsability('query')) { + navigator.permissions// @ts-expect-error https://github.com/microsoft/TypeScript-DOM-lib-generator/issues/1029#issuecomment-898868275 + .query({ + name + }).then((p)=>{ + permissionStatus = p; + permissionStatus.addEventListener('change', handleChange); + updatePermission(permissionStatus.state); + }).catch(()=>{ + // for some user agents which implemented `query` method + // but rise an error if specific permission name dose not supported + updatePermission('granted'); + }); + } else if (checkPermissionApiUsability('request')) { + navigator.permissions// @ts-expect-error https://github.com/microsoft/TypeScript-DOM-lib-generator/issues/1029#issuecomment-898868275 + .request({ + name + }).then((p)=>{ + updatePermission(p.state); + }).catch(()=>{ + updatePermission('granted'); + }); + } else { + updatePermission('granted'); + } + return ()=>permissionStatus?.removeEventListener('change', handleChange) + ; + }, [ + name, + needRequest, + permission + ]); + return permission; +} + +// EXTERNAL MODULE: ./src/utils/hooks/useSettingSwitcher.tsx +var useSettingSwitcher = __webpack_require__(70236); +// EXTERNAL MODULE: ./src/utils/hooks/useLocationChange.ts +var useLocationChange = __webpack_require__(49723); +;// CONCATENATED MODULE: ./src/utils/hooks/index.ts + + + + + + + + +// EXTERNAL MODULE: ./src/utils/shadow-root/renderInShadowRoot.tsx +var renderInShadowRoot = __webpack_require__(16660); +;// CONCATENATED MODULE: ./src/utils/shadow-root/index.ts + + +// EXTERNAL MODULE: ./src/utils/suspends/index.ts + 1 modules +var suspends = __webpack_require__(94201); +// EXTERNAL MODULE: ./src/utils/type-transform/index.ts +var type_transform = __webpack_require__(44887); +// EXTERNAL MODULE: ./src/utils/dom.ts +var dom = __webpack_require__(21158); +// EXTERNAL MODULE: ./src/utils/getTextUILength.ts +var getTextUILength = __webpack_require__(58379); +// EXTERNAL MODULE: ./src/utils/i18n-next-ui.ts +var i18n_next_ui = __webpack_require__(97926); +// EXTERNAL MODULE: ./src/utils/messages.ts +var messages = __webpack_require__(95175); +// EXTERNAL MODULE: ./src/utils/createNormalReactRoot.tsx +var createNormalReactRoot = __webpack_require__(54409); +// EXTERNAL MODULE: ./src/utils/theme/index.ts +var theme = __webpack_require__(17784); +// EXTERNAL MODULE: ./src/utils/utils.ts +var utils = __webpack_require__(47675); +// EXTERNAL MODULE: ./src/utils/watcher.ts +var watcher = __webpack_require__(93995); +// EXTERNAL MODULE: ./src/utils/collectNodeText.ts +var collectNodeText = __webpack_require__(25986); +;// CONCATENATED MODULE: ./src/utils/index.ts + + + + + + + + + + + + + + + + + + +/***/ }), + +/***/ 95175: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "q": () => (/* reexport safe */ _shared__WEBPACK_IMPORTED_MODULE_0__.ql) +/* harmony export */ }); +/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(94670); + + + +/***/ }), + +/***/ 16660: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "V": () => (/* binding */ setupShadowRootPortal), +/* harmony export */ "o": () => (/* binding */ createReactRootShadowed) +/* harmony export */ }); +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35667); +/* harmony import */ var _masknet_theme__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(31939); +/* harmony import */ var _UIRoot__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(4597); +/* harmony import */ var _theme__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(17784); + + + + +const captureEvents = [ + 'paste', + 'keydown', + 'keypress', + 'keyup', + 'drag', + 'dragend', + 'dragenter', + 'dragleave', + 'dragover', + 'dragstart', + 'change', +]; +const setupShadowRootPortal = ()=>{ + const shadow = (0,_masknet_theme__WEBPACK_IMPORTED_MODULE_1__/* .setupPortalShadowRoot */ .d_)({ + mode: 'closed' + }); + createReactRootShadowed(shadow, { + key: 'css-vars' + }).render(/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_masknet_theme__WEBPACK_IMPORTED_MODULE_1__/* .CSSVariableInjector */ .US, {})); +}; +// https://github.com/DimensionDev/Maskbook/issues/3265 with fast refresh or import order? +const createReactRootShadowed_raw = (0,_masknet_theme__WEBPACK_IMPORTED_MODULE_1__/* .createReactRootShadowedPartial */ .zV)({ + preventEventPropagationList: captureEvents, + wrapJSX (jsx) { + return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_UIRoot__WEBPACK_IMPORTED_MODULE_2__/* .MaskUIRoot */ .Y, { + useTheme: _theme__WEBPACK_IMPORTED_MODULE_3__/* .useClassicMaskSNSTheme */ .VJ, + kind: "sns", + children: [ + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_masknet_theme__WEBPACK_IMPORTED_MODULE_1__/* .CSSVariableInjector */ .US, {}), + jsx + ] + }); + } +}); +function createReactRootShadowed(...args) { + return createReactRootShadowed_raw(...args); +} + + +/***/ }), + +/***/ 47675: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "GR": () => (/* binding */ downloadUrl), +/* harmony export */ "Ms": () => (/* binding */ selectElementContents), +/* harmony export */ "ZB": () => (/* binding */ regexMatch), +/* harmony export */ "bF": () => (/* binding */ pasteImageToActiveElements) +/* harmony export */ }); +/* harmony import */ var _masknet_injected_script__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(73742); +/* harmony import */ var lodash_unified__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(32139); +/* harmony import */ var _extension_service__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(78778); +/** + * Prefer function declaration than const f = () => ... + * in this file please. + */ + + +/** + * Download given url return as Blob + */ async function downloadUrl(url) { + try { + if (url.startsWith(browser.runtime.getURL(''))) { + return _extension_service__WEBPACK_IMPORTED_MODULE_1__/* ["default"].Helper.fetch */ .ZP.Helper.fetch(url); + } + } catch {} + const res = await fetch(url); + if (!res.ok) throw new Error('Fetch failed.'); + return res.blob(); +} +/** + * paste image to activeElements + * @param image + */ async function pasteImageToActiveElements(image) { + (0,_masknet_injected_script__WEBPACK_IMPORTED_MODULE_0__/* .pasteImage */ .Mx)(new Uint8Array(await image.arrayBuffer())); +} +/** + * Select all text in a node + * @param el Element + */ function selectElementContents(el) { + const range = document.createRange(); + range.selectNodeContents(el); + const sel = globalThis.getSelection(); + sel.removeAllRanges(); + sel.addRange(range); + return sel; +} +function regexMatch(input, pattern, index = 1) { + const r = input.match(pattern); + if ((0,lodash_unified__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z)(r)) return null; + if (index === null) { + return r; + } + return r[index]; +} + + +/***/ }), + +/***/ 26675: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "x": () => (/* binding */ useChainColor) +/* harmony export */ }); +/* harmony import */ var _useChainId__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(45087); +/* harmony import */ var _useWeb3State__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12368); + + +function useChainColor(pluginID, expectedChainId) { + const chainId = (0,_useChainId__WEBPACK_IMPORTED_MODULE_0__/* .useChainId */ .x)(pluginID, expectedChainId); + const { Others } = (0,_useWeb3State__WEBPACK_IMPORTED_MODULE_1__/* .useWeb3State */ .d)(pluginID); + return Others?.chainResolver.chainColor?.(chainId) ?? 'transparent'; +} + + +/***/ }), + +/***/ 75080: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "d": () => (/* binding */ useChainIdMainnet) +/* harmony export */ }); +/* harmony import */ var _useChainId__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(45087); +/* harmony import */ var _useWeb3State__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12368); + + +function useChainIdMainnet(pluginID, expectedChainId) { + const chainId = (0,_useChainId__WEBPACK_IMPORTED_MODULE_0__/* .useChainId */ .x)(pluginID, expectedChainId); + const { Others } = (0,_useWeb3State__WEBPACK_IMPORTED_MODULE_1__/* .useWeb3State */ .d)(pluginID); + return Others?.chainResolver.isMainnet?.(chainId) ?? false; +} + + +/***/ }), + +/***/ 3307: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "a": () => (/* binding */ useChainIdValid) +/* harmony export */ }); +/* harmony import */ var _useChainId__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(45087); +/* harmony import */ var _useWeb3State__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12368); +/* harmony import */ var _useAccount__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(72128); + + + +function useChainIdValid(pluginID, expectedChainId) { + const chainId = (0,_useChainId__WEBPACK_IMPORTED_MODULE_0__/* .useChainId */ .x)(pluginID, expectedChainId); + const account = (0,_useAccount__WEBPACK_IMPORTED_MODULE_2__/* .useAccount */ .m)(pluginID); + const { Others } = (0,_useWeb3State__WEBPACK_IMPORTED_MODULE_1__/* .useWeb3State */ .d)(pluginID); + return (!account || Others?.chainResolver.isValid?.(chainId, "production" === 'development')) ?? false; +} + + +/***/ }), + +/***/ 19199: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "V": () => (/* binding */ useNetworkDescriptor) +/* harmony export */ }); +/* harmony import */ var _useNetworkType__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(40969); +/* harmony import */ var _Context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(46390); +/* harmony import */ var _manager_store__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(93996); + + + +function useNetworkDescriptor(expectedPluginID, expectedChainIdOrNetworkTypeOrID) { + const pluginID = (0,_Context__WEBPACK_IMPORTED_MODULE_1__/* .useCurrentWeb3NetworkPluginID */ .$f)(expectedPluginID); + const networkType = (0,_useNetworkType__WEBPACK_IMPORTED_MODULE_0__/* .useNetworkType */ .b)(pluginID); + return (0,_manager_store__WEBPACK_IMPORTED_MODULE_2__/* .getPluginDefine */ ._W)(pluginID)?.declareWeb3Networks?.find((x)=>[ + x.chainId, + x.type, + x.ID + ].includes((expectedChainIdOrNetworkTypeOrID ?? networkType) ?? '') + ); +} + + +/***/ }), + +/***/ 45428: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "H": () => (/* binding */ useNonFungibleAssets) +/* harmony export */ }); +/* harmony import */ var _masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(67938); +/* harmony import */ var _useAccount__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(72128); +/* harmony import */ var _useWeb3Hub__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(94227); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(58757); +/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(44451); +/* harmony import */ var _useNetworkDescriptors__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(3859); + + + + + + +function useNonFungibleAssets(pluginID, schemaType, options) { + const [assets, setAssets] = (0,react__WEBPACK_IMPORTED_MODULE_3__.useState)(_masknet_shared_base__WEBPACK_IMPORTED_MODULE_4__/* .EMPTY_LIST */ .rP); + const [done, setDone] = (0,react__WEBPACK_IMPORTED_MODULE_3__.useState)(false); + const [loading, toggleLoading] = (0,react__WEBPACK_IMPORTED_MODULE_3__.useState)(false); + const [error, setError] = (0,react__WEBPACK_IMPORTED_MODULE_3__.useState)(); + const account = (0,_useAccount__WEBPACK_IMPORTED_MODULE_1__/* .useAccount */ .m)(pluginID); + const hub = (0,_useWeb3Hub__WEBPACK_IMPORTED_MODULE_2__/* .useWeb3Hub */ .h)(pluginID, options); + const networks = (0,_useNetworkDescriptors__WEBPACK_IMPORTED_MODULE_5__/* .useNetworkDescriptors */ .p)(pluginID); + // create iterator + const iterator = (0,react__WEBPACK_IMPORTED_MODULE_3__.useMemo)(()=>{ + if (!account && !options?.account || !hub?.getNonFungibleTokens || !networks) return; + setAssets(_masknet_shared_base__WEBPACK_IMPORTED_MODULE_4__/* .EMPTY_LIST */ .rP); + setDone(false); + return (0,_masknet_shared_base__WEBPACK_IMPORTED_MODULE_4__/* .flattenAsyncIterator */ .DA)(networks.filter((x)=>x.isMainnet + ).filter((x)=>options?.chainId ? x.chainId === options?.chainId : true + ).map((x)=>{ + return (0,_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .pageableToIterator */ .J)(async (indicator)=>{ + if (!hub?.getNonFungibleTokens) return; + return hub?.getNonFungibleTokens(options?.account ?? account, { + indicator, + size: 50, + ...options, + chainId: x.chainId + }); + }); + })); + }, [ + hub?.getNonFungibleTokens, + account, + JSON.stringify(options), + networks.length + ]); + const next = (0,react__WEBPACK_IMPORTED_MODULE_3__.useCallback)(async ()=>{ + if (!iterator || done) return; + const batchResult = []; + toggleLoading(true); + try { + for (const v of Array.from({ + length: options?.size ?? 36 + })){ + const { value , done: iteratorDone } = await iterator.next(); + if (value instanceof Error) { + // Controlled error + setError(value.message); + break; + } else { + if (iteratorDone) { + setDone(true); + break; + } + if (!iteratorDone && value) { + batchResult.push(value); + } + } + } + } catch (error_) { + // Uncontrolled error + setError(error_); + setDone(true); + } + toggleLoading(false); + setAssets((pred)=>[ + ...pred, + ...batchResult + ] + ); + }, [ + iterator, + done + ]); + // Execute once after next update + (0,react__WEBPACK_IMPORTED_MODULE_3__.useEffect)(()=>{ + if (next) next(); + }, [ + next + ]); + const retry = (0,react__WEBPACK_IMPORTED_MODULE_3__.useCallback)(()=>{ + setAssets(_masknet_shared_base__WEBPACK_IMPORTED_MODULE_4__/* .EMPTY_LIST */ .rP); + setDone(false); + }, []); + return { + value: assets.filter((x)=>options?.chainId ? x.chainId === options?.chainId : true + ), + next, + loading, + done, + retry, + error + }; +} + + +/***/ }), + +/***/ 41623: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "f": () => (/* binding */ useProviderDescriptor) +/* harmony export */ }); +/* harmony import */ var _useProviderType__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(52892); +/* harmony import */ var _Context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(46390); +/* harmony import */ var _manager_store__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(93996); + + + +function useProviderDescriptor(expectedPluginID, expectedProviderTypeOrID) { + const pluginID = (0,_Context__WEBPACK_IMPORTED_MODULE_1__/* .useCurrentWeb3NetworkPluginID */ .$f)(expectedPluginID); + const providerType = (0,_useProviderType__WEBPACK_IMPORTED_MODULE_0__/* .useProviderType */ ._)(pluginID); + return (0,_manager_store__WEBPACK_IMPORTED_MODULE_2__/* .getPluginDefine */ ._W)(pluginID)?.declareWeb3Providers?.find((x)=>[ + x.type, + x.ID + ].includes((expectedProviderTypeOrID ?? providerType) ?? '') + ); +} + + +/***/ }), + +/***/ 84702: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "z": () => (/* binding */ useSocialAddressListAll) +/* harmony export */ }); +/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(44451); +/* harmony import */ var _masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(67938); +/* harmony import */ var lru_cache__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(85478); +/* harmony import */ var lru_cache__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(lru_cache__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(58500); +/* harmony import */ var _useWeb3State__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(12368); + + + + + +const addressCache = new (lru_cache__WEBPACK_IMPORTED_MODULE_2___default())({ + max: 500, + ttl: 2 * 60 * 1000 +}); +/** + * Get all social addresses under of all networks. + */ function useSocialAddressListAll(identity, sorter) { + // TODO: to add flow + const { IdentityService: EVM_IdentityService } = (0,_useWeb3State__WEBPACK_IMPORTED_MODULE_3__/* .useWeb3State */ .d)(_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .NetworkPluginID.PLUGIN_EVM */ .FF.PLUGIN_EVM); + const { IdentityService: SolanaIdentityService } = (0,_useWeb3State__WEBPACK_IMPORTED_MODULE_3__/* .useWeb3State */ .d)(_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .NetworkPluginID.PLUGIN_SOLANA */ .FF.PLUGIN_SOLANA); + return (0,react_use__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z)(async ()=>{ + const userId = identity?.identifier?.userId; + if (!userId || userId === '$unknown') return _masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .EMPTY_LIST */ .rP; + let cached = addressCache.get(userId); + if (!cached) { + cached = Promise.allSettled([ + EVM_IdentityService, + SolanaIdentityService + ].map((x)=>x?.lookup(identity) ?? [] + )); + addressCache.set(userId, cached); + } + const allSettled = await cached; + const listOfAddress = allSettled.flatMap((x)=>x.status === 'fulfilled' ? x.value : [] + ); + return sorter && listOfAddress.length ? listOfAddress.sort(sorter) : listOfAddress; + }, [ + identity, + sorter, + EVM_IdentityService?.lookup, + SolanaIdentityService?.lookup + ]); +} + + +/***/ }), + +/***/ 21627: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "Fb": () => (/* binding */ FileInfoV1ToV2), +/* harmony export */ "Gd": () => (/* binding */ makeFileKeySigned), +/* harmony export */ "ri": () => (/* binding */ FileInfoMetadataReader), +/* harmony export */ "u": () => (/* binding */ resolveGatewayAPI) +/* harmony export */ }); +/* harmony import */ var _masknet_typed_message_dom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(30003); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(94529); +/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(8634); +/* harmony import */ var _schema_v1_json__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(30460); +/* harmony import */ var _schema_v2_json__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(10857); +/* harmony import */ var lodash_unified__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(29330); +/* harmony import */ var _dimensiondev_kit__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(46123); +/* harmony import */ var _masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(67938); + + + + + + + + +const reader_v1 = (0,_masknet_typed_message_dom__WEBPACK_IMPORTED_MODULE_0__/* .createTypedMessageMetadataReader */ .Bi)(_constants__WEBPACK_IMPORTED_MODULE_1__/* .META_KEY_1 */ .ki, _schema_v1_json__WEBPACK_IMPORTED_MODULE_3__); +const reader_v2 = (0,_masknet_typed_message_dom__WEBPACK_IMPORTED_MODULE_0__/* .createTypedMessageMetadataReader */ .Bi)(_constants__WEBPACK_IMPORTED_MODULE_1__/* .META_KEY_2 */ .lw, _schema_v2_json__WEBPACK_IMPORTED_MODULE_4__); +function FileInfoMetadataReader(meta) { + const v2 = reader_v2(meta); + if (v2.ok) return v2; + return reader_v1(meta).map(FileInfoV1ToV2); +} +function FileInfoV1ToV2(info) { + return { + ...info, + type: 'file', + provider: 'arweave' + }; +} +async function makeFileKeySigned(fileKey) { + if ((0,lodash_unified__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z)(fileKey)) { + return null; + } + const encodedKey = (0,_dimensiondev_kit__WEBPACK_IMPORTED_MODULE_5__/* .encodeText */ .YT)(fileKey); + const key = await crypto.subtle.generateKey({ + name: 'HMAC', + hash: { + name: 'SHA-256' + } + }, true, [ + 'sign', + 'verify' + ]); + const exportedKey = await crypto.subtle.exportKey('raw', key); + const signed = await crypto.subtle.sign({ + name: 'HMAC' + }, key, encodedKey); + return [ + signed, + exportedKey + ].map(_dimensiondev_kit__WEBPACK_IMPORTED_MODULE_5__/* .encodeArrayBuffer */ .ll); +} +const resolveGatewayAPI = (0,_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_6__/* .createLookupTableResolver */ .FG)({ + [_types__WEBPACK_IMPORTED_MODULE_2__/* .Provider.arweave */ .z.arweave]: 'https://arweave.net', + [_types__WEBPACK_IMPORTED_MODULE_2__/* .Provider.ipfs */ .z.ipfs]: 'https://infura-ipfs.io/ipfs', + [_types__WEBPACK_IMPORTED_MODULE_2__/* .Provider.swarm */ .z.swarm]: 'https://bee-2.gateway.ethswarm.org/bzz' +}, ()=>'Unknown provider' +); + + +/***/ }), + +/***/ 58044: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + + +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "SV": () => (/* reexport */ ErrorBoundary), + "N3": () => (/* reexport */ context/* ErrorBoundaryBuildInfoContext */.N) +}); + +// UNUSED EXPORTS: CrashUI, withErrorBoundary + +// EXTERNAL MODULE: ../shared-base-ui/src/components/ErrorBoundary/CrashUI.tsx + 2 modules +var CrashUI = __webpack_require__(53747); +// EXTERNAL MODULE: ../shared-base-ui/src/components/ErrorBoundary/context.ts +var context = __webpack_require__(49831); +// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.1.0/node_modules/react/jsx-runtime.js +var jsx_runtime = __webpack_require__(35667); +// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.1.0/node_modules/react/index.js +var react = __webpack_require__(58757); +;// CONCATENATED MODULE: ../shared-base-ui/src/components/ErrorBoundary/ErrorBoundary.tsx + + + +const map = new WeakMap(); +/** + * Return the ErrorBoundary wrapped version of given Component + * @param Component The component that need to be wrapped with ErrorBoundary + */ function withErrorBoundary(Component1) { + if (map.has(Component1)) return map.get(Component1); + const C = /*#__PURE__*/ forwardRef((props, ref)=>/*#__PURE__*/ _jsx(ErrorBoundary, { + children: /*#__PURE__*/ _jsx(Component1, { + ...props, + ref: ref + }) + }) + ); + map.set(Component1, C); + return C; +} +class ErrorBoundary extends react.Component { + static getDerivedStateFromError(error) { + return { + error + }; + } + render() { + if (!this.state.error) return /*#__PURE__*/ (0,jsx_runtime.jsx)(jsx_runtime.Fragment, { + children: this.props.children + }); + return /*#__PURE__*/ (0,jsx_runtime.jsx)(CrashUI/* CrashUI */.O, { + subject: "Mask", + onRetry: ()=>this.setState({ + error: null + }) + , + ...this.props, + ...this.normalizedError + }); + } + get normalizedError() { + let stack = ''; + let type = 'UnknownError'; + let message = 'unknown error'; + try { + stack = String(this.state.error.stack) || ''; + stack = stack.replace(/webpack-internal:.+node_modules\//g, 'npm:'); + // remove webpack-internal:/// + stack = stack.replace(/webpack-internal:\/{3}/g, ''); + } catch {} + try { + type = String(this.state.error.name) || ''; + } catch {} + try { + message = String(this.state.error.message) || ''; + } catch {} + return { + stack, + type, + message + }; + } + constructor(...args){ + super(...args); + this.state = { + error: null + }; + } +} + +;// CONCATENATED MODULE: ../shared-base-ui/src/components/ErrorBoundary/index.ts + + + + +;// CONCATENATED MODULE: ../shared-base-ui/src/components/index.ts + + + +/***/ }), + +/***/ 526: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "F": () => (/* binding */ useRemoteControlledDialog) +/* harmony export */ }); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(58757); +/* harmony import */ var uuid__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(32513); + + +/** + * Use a dialog state controlled by remote + */ function useRemoteControlledDialog(event1, onUpdateByRemote, tabType = 'self') { + const [HOOK_ID] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(uuid__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z) // create an uuid for every hook + ; + const [open, setOpen] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false); + (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>event1.on((_ev)=>{ + const event = _ev; + // ignore the event from the same hook + if (event.hookId === HOOK_ID) return; + setOpen(event.open); + onUpdateByRemote?.(_ev); + }) + , [ + onUpdateByRemote, + event1, + HOOK_ID + ]); + const timer = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null); + const onUpdateByLocal = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((ev)=>{ + setOpen(ev.open); + const timer_ = timer.current; + if (timer_ !== null) clearTimeout(timer_); + timer.current = setTimeout(()=>{ + const payload = { + hookId: HOOK_ID, + ...ev + }; + tabType === 'self' ? event1.sendToLocal(payload) : event1.sendToVisiblePages(payload); + }, 100); + }, [ + event1, + tabType, + HOOK_ID + ]); + const openDialog = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(()=>{ + onUpdateByLocal({ + open: true + }); + }, []); + const closeDialog = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(()=>{ + onUpdateByLocal({ + open: false + }); + }, []); + return { + open, + openDialog, + closeDialog, + setDialog: onUpdateByLocal + }; +} + + +/***/ }), + +/***/ 13339: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "GM": () => (/* binding */ serializer), +/* harmony export */ "tr": () => (/* binding */ registerSerializableClass) +/* harmony export */ }); +/* unused harmony export __DEBUG__ONLY__enableCryptoKeySerialization */ +/* harmony import */ var typeson__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(14084); +/* harmony import */ var ts_results__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(48160); +/* harmony import */ var bignumber_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(42263); +/* harmony import */ var bignumber_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(bignumber_js__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var typeson_registry__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(78874); +/* harmony import */ var _Identifier__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(57041); +/* harmony import */ var _response__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(16761); +/* harmony import */ var _readableStream__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(40025); +/* harmony import */ var _request__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(5294); +/// + + + +// @ts-ignore + + + + + +const pendingRegister = new Set(); +let typeson; +function setup() { + const { default: BigNumber } = bignumber_js__WEBPACK_IMPORTED_MODULE_2__; + // https://github.com/dfahlander/typeson-registry/issues/27 + typeson = new typeson__WEBPACK_IMPORTED_MODULE_0__/* .Typeson */ .oy({ + cyclic: false + }); + typeson.register(typeson_registry__WEBPACK_IMPORTED_MODULE_3__/* .builtin */ .j0); + typeson.register(typeson_registry__WEBPACK_IMPORTED_MODULE_3__/* .specialNumbers */ .so); + typeson.register([ + typeson_registry__WEBPACK_IMPORTED_MODULE_3__/* .blob */ .Ik, + typeson_registry__WEBPACK_IMPORTED_MODULE_3__/* .file */ .tP, + typeson_registry__WEBPACK_IMPORTED_MODULE_3__/* .filelist */ .Jj, + typeson_registry__WEBPACK_IMPORTED_MODULE_3__/* .imagebitmap */ .xA + ]); + typeson.register({ + None: [ + (x)=>x === ts_results__WEBPACK_IMPORTED_MODULE_1__/* .None */ .Hq + , + ()=>'None' + , + ()=>ts_results__WEBPACK_IMPORTED_MODULE_1__/* .None */ .Hq + ] + }); + addClass('Ok', ts_results__WEBPACK_IMPORTED_MODULE_1__.Ok); + addClass('Err', ts_results__WEBPACK_IMPORTED_MODULE_1__/* .Err */ .UG); + addClass('Some', ts_results__WEBPACK_IMPORTED_MODULE_1__/* .Some */ .bD); + addClass('BigNumber', BigNumber); + typeson.register({ + Identifier: [ + (x)=>x instanceof _Identifier__WEBPACK_IMPORTED_MODULE_4__/* .Identifier */ .xb + , + (x)=>x.toText() + , + (x)=>_Identifier__WEBPACK_IMPORTED_MODULE_4__/* .Identifier.from */ .xb.from(x).unwrap() + ], + ReadableStream: [ + ..._readableStream__WEBPACK_IMPORTED_MODULE_6__/* .readableStreamRegedit */ .t5 + ], + Response: [ + ..._response__WEBPACK_IMPORTED_MODULE_5__/* .responseRegedit */ .R7 + ], + Request: [ + ..._request__WEBPACK_IMPORTED_MODULE_7__/* .requestRegedit */ .qf + ] + }); + for (const a of pendingRegister)a(); +} +const serializer = { + serialization (from) { + if (!typeson) setup(); + return typeson.encapsulate(from); + }, + // cspell:disable-next-line + deserialization (to) { + if (!typeson) setup(); + return typeson.revive(to); + } +}; +/** THIS MUST NOT BE USED OUTSIDE OF A DEBUGGER CONTEXT */ function __DEBUG__ONLY__enableCryptoKeySerialization() { + if (!typeson) setup(); + typeson.register(cryptokey); +} +function registerSerializableClass(name, a, b, c) { + if (typeson) { + if (b) typeson.register({ + [name]: [ + a, + b, + c + ] + }); + else addClass(name, a); + } else { + if (b) pendingRegister.add(()=>typeson.register({ + [name]: [ + a, + b, + c + ] + }) + ); + else pendingRegister.add(()=>addClass(name, a) + ); + } +} +function addClass(name, constructor) { + Object.defineProperty(constructor, 'name', { + configurable: true, + enumerable: false, + writable: false, + value: name + }); + typeson.register({ + [name]: [ + (x)=>x instanceof constructor + , + // eslint-disable-next-line @typescript-eslint/no-loop-func + (x1)=>{ + const y = Object.assign({}, x1); + Object.getOwnPropertySymbols(y).forEach((x)=>Reflect.deleteProperty(y, x) + ); + return typeson.encapsulate(y); + }, + // eslint-disable-next-line @typescript-eslint/no-loop-func + (x)=>{ + const y = typeson.revive(x); + Object.setPrototypeOf(y, constructor.prototype); + return y; + }, + ] + }); +} + + +/***/ }), + +/***/ 68043: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "B": () => (/* binding */ getLocalImplementation), +/* harmony export */ "k": () => (/* binding */ getLocalImplementationExotic) +/* harmony export */ }); +// key = channel; value = local implementation +const RPCCache = new WeakMap(); +/** + * This function provides a localImplementation that is HMR ready. + * To update, call this function with the SAME CHANNEL object. + * It will "clone" all methods that impl returns. + * @param isBackground If the current environment is background. + * @param name The name of the local implementation, used for logging + * @param impl The implementation. Can be an async function. + * @param ref The reference object that must be the same if you're updating. + */ async function getLocalImplementation(isBackground, name, impl, ref) { + if (!isBackground) return {}; + const isUpdate = RPCCache.has(ref); + const localImpl = RPCCache.get(ref) || {}; + RPCCache.set(ref, localImpl); + const result = await impl(); + for (const key of Object.keys(localImpl)){ + if (!Reflect.has(result, key)) { + delete localImpl[key]; + isUpdate && console.log(`[HMR] ${name}.${key} removed.`); + } else if (result[key] !== localImpl[key]) { + isUpdate && console.log(`[HMR] ${name}.${key} updated.`); + } + } + for (const key1 of Object.keys(result)){ + if (!Reflect.has(localImpl, key1)) isUpdate && console.log(`[HMR] ${name}.${key1} added.`); + Object.defineProperty(localImpl, key1, { + configurable: true, + enumerable: true, + value: result[key1] + }); + } + return localImpl; +} +async function getLocalImplementationExotic(isBackground, name, impl, ref) { + if (!isBackground) return {}; + RPCCache.set(ref, await impl()); + return new Proxy({}, { + get (_, key) { + if (key === 'then') return; + // @ts-ignore + return RPCCache.get(ref)?.[key]; + } + }); +} + + +/***/ }), + +/***/ 37245: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "q": () => (/* binding */ I18NextProviderHMR) +/* harmony export */ }); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(58757); +/* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(94282); +/* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(51344); +/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(44451); + + + +react_i18next__WEBPACK_IMPORTED_MODULE_2__/* .initReactI18next.init */ .Db.init(_masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .i18NextInstance */ .BV); +const I18NextProviderHMR = false ? 0 : react_i18next__WEBPACK_IMPORTED_MODULE_3__/* .I18nextProvider */ .a; + + +/***/ }), + +/***/ 7736: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "Q": () => (/* binding */ SharedContextProvider) +/* harmony export */ }); +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35667); +/* harmony import */ var _base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(22017); +/* harmony import */ var _common__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(64781); +/* harmony import */ var _evm__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(15285); + + + + +const SharedContextProvider = ({ children })=>{ + return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_base__WEBPACK_IMPORTED_MODULE_1__/* .BaseSharedUIProvider */ .bP, { + children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_common__WEBPACK_IMPORTED_MODULE_2__/* .CommonUIProvider */ .ci, { + children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_evm__WEBPACK_IMPORTED_MODULE_3__/* .EvmSharedUIProvider */ .QQ, { + children: children + }) + }) + }); +}; + + +/***/ }), + +/***/ 8600: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "Z": () => (/* binding */ MaskColorVar), +/* harmony export */ "n": () => (/* binding */ getMaskColor) +/* harmony export */ }); +/* harmony import */ var lodash_unified__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(34936); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(46768); + + +function getMaskColor(theme) { + if (theme.palette.mode === 'dark') return _constants__WEBPACK_IMPORTED_MODULE_0__/* .DarkColor */ .I; + return _constants__WEBPACK_IMPORTED_MODULE_0__/* .LightColor */ .C; +} +const MaskColorVar = new Proxy({ + __proto__: null +}, { + get (target, key) { + if (target[key]) return target[key]; + if (typeof key !== 'string') throw new TypeError(); + const cssVar = (0,lodash_unified__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)(key); + target[key] = (defaultValue)=>{ + // it might be an object when used in styled components. + if (typeof defaultValue !== 'string') defaultValue = undefined; + const x = `var(--mask-${cssVar}${defaultValue ? ', ' + defaultValue : ''})`; + return x; + }; + target[key][Symbol.toPrimitive] = ()=>`var(--mask-${cssVar})` + ; + target[key].alpha = (alpha)=>`rgba(var(--mask-${cssVar}-fragment), ${alpha})` + ; + return target[key]; + } +}); + + +/***/ }), + +/***/ 95499: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "Df": () => (/* reexport safe */ _Dialog__WEBPACK_IMPORTED_MODULE_0__.D), +/* harmony export */ "tE": () => (/* reexport safe */ _DialogStack__WEBPACK_IMPORTED_MODULE_2__.t), +/* harmony export */ "yu": () => (/* reexport safe */ _DialogStack__WEBPACK_IMPORTED_MODULE_2__.y) +/* harmony export */ }); +/* harmony import */ var _Dialog__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(13217); +/* harmony import */ var _DialogTitle__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(49433); +/* harmony import */ var _DialogStack__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(70950); + + + + + +/***/ }), + +/***/ 48054: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "S": () => (/* binding */ LoadingBase) +/* harmony export */ }); +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35667); +/* harmony import */ var _masknet_icons__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(60989); +/* harmony import */ var _UIHelper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(84432); + + + +const useStyles = (0,_UIHelper__WEBPACK_IMPORTED_MODULE_1__/* .makeStyles */ .ZL)()({ + animated: { + '@keyframes loadingAnimation': { + '0%': { + transform: 'rotate(0deg)' + }, + '100%': { + transform: 'rotate(360deg)' + } + }, + animation: 'loadingAnimation 1s linear infinite' + } +}); +const LoadingBase = (props)=>{ + const { classes } = useStyles(); + return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_masknet_icons__WEBPACK_IMPORTED_MODULE_2__/* .LoadingBaseIcon */ .N, { + ...props, + className: `${classes.animated} ${props.className}` + }); +}; + + +/***/ }), + +/***/ 18822: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "D9": () => (/* reexport safe */ _PopupSnackbar__WEBPACK_IMPORTED_MODULE_7__.D9), +/* harmony export */ "Ii": () => (/* binding */ useCustomSnackbar), +/* harmony export */ "YO": () => (/* binding */ CustomSnackbarProvider), +/* harmony export */ "wT": () => (/* reexport safe */ notistack__WEBPACK_IMPORTED_MODULE_3__.wT) +/* harmony export */ }); +/* unused harmony export CustomSnackbarContent */ +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35667); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(58757); +/* harmony import */ var tss_react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(82737); +/* harmony import */ var notistack__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(27466); +/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(48941); +/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(21784); +/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(83849); +/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_4__); +/* harmony import */ var _mui_icons_material__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(27692); +/* harmony import */ var _mui_icons_material_Warning__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(37341); +/* harmony import */ var _mui_icons_material_Info__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(80922); +/* harmony import */ var _mui_icons_material_Done__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(31363); +/* harmony import */ var _masknet_icons__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(95789); +/* harmony import */ var _masknet_icons__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(78258); +/* harmony import */ var _UIHelper__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(84432); +/* harmony import */ var _CSSVariables__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(88762); +/* harmony import */ var _PopupSnackbar__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(15938); + + + + + + + + + + + + + + + +const useStyles = (0,_UIHelper__WEBPACK_IMPORTED_MODULE_5__/* .makeStyles */ .ZL)()((theme, { offsetY }, refs)=>{ + const { palette } = theme; + const isDark = palette.mode === 'dark'; + const spinningAnimationKeyFrames = tss_react__WEBPACK_IMPORTED_MODULE_2__/* .keyframes */ .F4` +to { + transform: rotate(360deg) +}`; + const title = { + color: _CSSVariables__WEBPACK_IMPORTED_MODULE_6__/* .MaskColorVar.textPrimary */ .ZN.textPrimary, + fontWeight: 400, + fontSize: 14, + lineHeight: '20px' + }; + const message = { + color: _CSSVariables__WEBPACK_IMPORTED_MODULE_6__/* .MaskColorVar.textSecondary */ .ZN.textSecondary, + fontWeight: 400, + display: 'flex', + alignItems: 'center', + fontSize: 12 + }; + const defaultVariant = { + background: isDark ? '#17191D' : '#F7F9FA', + color: isDark ? '#D9D9D9' : '#0F1419', + [`& .${refs.title}`]: { + color: isDark ? '#D9D9D9' : palette.grey['800'] + } + }; + const success = { + backgroundColor: '#60DFAB', + color: '#ffffff', + [`& .${refs.title}`]: { + color: 'inherit' + }, + [`& .${refs.message}`]: { + color: 'inherit' + } + }; + const error = { + background: '#FF5F5F', + color: '#ffffff', + [`& .${refs.title}`]: { + color: 'inherit' + }, + [`& .${refs.message}`]: { + color: 'inherit' + } + }; + const info = { + background: '#8CA3C7', + color: '#ffffff', + [`& .${refs.title}`]: { + color: 'inherit' + }, + [`& .${refs.message}`]: { + color: 'inherit' + } + }; + const warning = { + backgroundColor: '#FFB915', + color: '#ffffff', + [`& .${refs.title}`]: { + color: 'inherit' + }, + [`& .${refs.message}`]: { + color: 'inherit' + } + }; + return { + root: { + zIndex: 9999, + transform: typeof offsetY !== 'undefined' ? `translateY(${offsetY}px)` : 'none', + color: _CSSVariables__WEBPACK_IMPORTED_MODULE_6__/* .MaskColorVar.textLight */ .ZN.textLight, + pointerEvents: 'inherit' + }, + content: { + alignItems: 'center', + padding: theme.spacing(1.5, 2), + borderRadius: 12, + width: 380, + flexWrap: 'nowrap !important', + [`&.${success.ref}`]: { + background: _CSSVariables__WEBPACK_IMPORTED_MODULE_6__/* .MaskColorVar.greenMain */ .ZN.greenMain, + color: _CSSVariables__WEBPACK_IMPORTED_MODULE_6__/* .MaskColorVar.lightestBackground */ .ZN.lightestBackground + }, + [`&.${error.ref}`]: { + background: _CSSVariables__WEBPACK_IMPORTED_MODULE_6__/* .MaskColorVar.redMain */ .ZN.redMain, + color: _CSSVariables__WEBPACK_IMPORTED_MODULE_6__/* .MaskColorVar.lightestBackground */ .ZN.lightestBackground, + title: { + color: 'inherit' + } + }, + [`&.${info.ref}`]: { + color: _CSSVariables__WEBPACK_IMPORTED_MODULE_6__/* .MaskColorVar.lightestBackground */ .ZN.lightestBackground + }, + [`&.${warning.ref}`]: { + color: '#ffffff' + } + }, + default: defaultVariant, + success, + error, + info, + warning, + icon: { + display: 'flex', + alignItems: 'center', + justifyContent: 'center' + }, + spinning: { + display: 'flex', + animation: `${spinningAnimationKeyFrames} 2s infinite linear` + }, + action: { + marginLeft: 'auto' + }, + closeButton: { + color: 'inherit' + }, + texts: { + marginLeft: theme.spacing(2) + }, + title, + message, + link: { + display: 'flex', + marginLeft: theme.spacing(0.5) + } + }; +}); +const IconMap = { + default: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_icons_material_Info__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, { + color: "inherit" + }), + success: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_icons_material_Done__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .Z, { + color: "inherit" + }), + error: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_masknet_icons__WEBPACK_IMPORTED_MODULE_10__/* .RiskIcon */ .w, {}), + warning: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_icons_material_Warning__WEBPACK_IMPORTED_MODULE_11__/* ["default"] */ .Z, { + color: "inherit" + }), + info: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_icons_material_Info__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, { + color: "inherit" + }) +}; +const CustomSnackbarContent = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.forwardRef)((props, ref)=>{ + const classes = (0,_UIHelper__WEBPACK_IMPORTED_MODULE_5__/* .useStylesExtends */ .Bc)(useStyles({ + offsetY: props.offsetY + }), props); + const snackbar = (0,notistack__WEBPACK_IMPORTED_MODULE_3__/* .useSnackbar */ .Ds)(); + const loadingIcon = /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_masknet_icons__WEBPACK_IMPORTED_MODULE_12__/* .LoadingIcon */ .H, { + color: "inherit", + className: classes.spinning + }); + const variantIcon = props.processing ? loadingIcon : props.variant ? IconMap[props.variant] : null; + let renderedAction = /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_13__/* ["default"] */ .Z, { + className: classes.closeButton, + onClick: ()=>snackbar.closeSnackbar(props.id) + , + children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_icons_material__WEBPACK_IMPORTED_MODULE_14__/* ["default"] */ .Z, {}) + }); + if (props.action) { + renderedAction = typeof props.action === 'function' ? props.action(props.id) : props.action; + } + return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(notistack__WEBPACK_IMPORTED_MODULE_3__/* .SnackbarContent */ .No, { + ref: ref, + className: classnames__WEBPACK_IMPORTED_MODULE_4___default()(classes.content, classes[props.variant]), + children: [ + variantIcon && /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", { + className: classes.icon, + children: variantIcon + }), + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", { + className: classes.texts, + children: [ + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_15__/* ["default"] */ .Z, { + className: classes.title, + variant: "h2", + children: props.title + }), + props.message && /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_15__/* ["default"] */ .Z, { + className: classes.message, + variant: "body1", + children: props.message + }) + ] + }), + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", { + className: classes.action, + children: renderedAction + }) + ] + }); +}); +const CustomSnackbarProvider = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.memo)(({ offsetY , ...rest })=>{ + const ref = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null); + const { classes } = useStyles({ + offsetY + }); + const onDismiss = (key)=>()=>{ + ref.current?.closeSnackbar(key); + } + ; + return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(notistack__WEBPACK_IMPORTED_MODULE_3__/* .SnackbarProvider */ .wT, { + ref: ref, + maxSnack: 30, + disableWindowBlurListener: true, + anchorOrigin: { + vertical: 'top', + horizontal: 'right' + }, + hideIconVariant: true, + content: (key, title)=>/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(CustomSnackbarContent, { + id: key, + variant: rest.variant ?? 'default', + title: title, + offsetY: offsetY + }) + , + action: (key)=>/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_13__/* ["default"] */ .Z, { + size: "large", + onClick: onDismiss(key), + sx: { + color: 'inherit' + }, + children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_icons_material__WEBPACK_IMPORTED_MODULE_14__/* ["default"] */ .Z, { + color: "inherit" + }) + }) + , + classes: { + containerRoot: classes.root, + variantSuccess: classes.success, + variantError: classes.error, + variantInfo: classes.info, + variantWarning: classes.warning + }, + ...rest + }); +}); +function useCustomSnackbar() { + const { enqueueSnackbar , closeSnackbar } = (0,notistack__WEBPACK_IMPORTED_MODULE_3__/* .useSnackbar */ .Ds)(); + const showSnackbar = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)((text, options = { + variant: 'default' + })=>{ + const { processing , message , variant , ...rest } = options; + return enqueueSnackbar(text, { + variant: options.variant, + content: (key, title)=>{ + return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(CustomSnackbarContent, { + variant: variant ?? 'default', + id: key, + title: title, + message: message, + processing: processing, + action: rest.action, + classes: rest.classes + }); + }, + ...rest + }); + }, [ + enqueueSnackbar + ]); + return { + showSnackbar, + closeSnackbar + }; +} + + +/***/ }), + +/***/ 59728: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "ad": () => (/* binding */ usePortalShadowRoot), +/* harmony export */ "d_": () => (/* binding */ setupPortalShadowRoot), +/* harmony export */ "lr": () => (/* binding */ createShadowRootForwardedComponent), +/* harmony export */ "vg": () => (/* binding */ createShadowRootForwardedPopperComponent) +/* harmony export */ }); +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35667); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(58757); +/* harmony import */ var _Contexts__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(6414); + +/* eslint-disable react-hooks/rules-of-hooks */ + +let mountingPoint; +let mountingShadowRoot; +function setupPortalShadowRoot(init) { + if (mountingShadowRoot) return mountingShadowRoot; + mountingShadowRoot = document.body.appendChild(document.createElement('div')).attachShadow(init); + mountingPoint = mountingShadowRoot.appendChild(document.createElement('div')); + return mountingShadowRoot; +} +/** + * Render to a React Portal in to the page needs this hook. It will provide a wrapped container that provides ShadowRoot isolation and CSS support for it. + * + * The return value can only be used once! + * @param renderer A function that want to use PortalShadowRoot + * @example + * const picker = usePortalShadowRoot((container) => ( + * {}} + * renderInput={(props) => } + * /> + * )) + */ function usePortalShadowRoot(renderer) { + const disabled = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)((0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(_Contexts__WEBPACK_IMPORTED_MODULE_2__/* .DisableShadowRootContext */ .AZ)).current; + // we ignore the changes on this property during multiple render + // so we can violates the React hooks rule and still be safe. + if (disabled) return renderer(undefined); + const sheets = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(_Contexts__WEBPACK_IMPORTED_MODULE_2__/* .StyleSheetsContext */ .EP); + const signal = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null); + const preventEventPropagationList = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(_Contexts__WEBPACK_IMPORTED_MODULE_2__/* .PreventEventPropagationListContext */ .gt); + const { container: container1 } = useRefInit(()=>{ + signal.current = new AbortController(); + const portal = PortalShadowRoot(); + const root = document.createElement('div'); + root.dataset.portalShadowRoot = ''; + const shadow = root.attachShadow({ + mode: 'open' + }); + const stop = (e)=>e.stopPropagation() + ; + for (const each of preventEventPropagationList){ + shadow.addEventListener(each, stop, { + signal: signal.current.signal + }); + } + const container = shadow.appendChild(document.createElement('main')); + sheets.map((x)=>x.addContainer(shadow) + ); + // This is proved to be important to the correct portal orders... + Object.defineProperty(container, 'appendChild', { + configurable: true, + writable: true, + value: (child)=>{ + if (!root.parentElement) portal.appendChild(root); + Node.prototype.appendChild.call(container, child); + return child; + } + }); + Object.defineProperty(container, 'removeChild', { + configurable: true, + writable: true, + value: (child)=>{ + Node.prototype.removeChild.call(container, child); + if (container.childElementCount === 0) portal.removeChild(root); + return child; + } + }); + return { + container + }; + }); + return renderer(container1); +} +function createShadowRootForwardedComponent(Component) { + return /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.forwardRef)((props, ref)=>{ + return usePortalShadowRoot((container)=>/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Component, { + container: container, + ...props, + ref: ref + }) + ); + }); +} +function createShadowRootForwardedPopperComponent(Component) { + return /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.forwardRef)((props, ref)=>{ + return usePortalShadowRoot((container)=>{ + return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Component, { + ...props, + PopperProps: { + container, + ...props.PopperProps + }, + ref: ref + }); + }); + }); +} +/** + * ! Do not export ! + */ function PortalShadowRoot() { + if (location.protocol.includes('extension')) return document.body; + if (globalThis.location.hostname === 'localhost') return document.body; + if (!mountingPoint) throw new TypeError('Please call setupPortalShadowRoot first'); + return mountingPoint; +} +function useRefInit(f) { + const ref = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(undefined); + if (!ref.current) ref.current = f(); + return ref.current; +} + + +/***/ }), + +/***/ 62998: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "Q": () => (/* reexport safe */ _ShadowRootIsolation__WEBPACK_IMPORTED_MODULE_2__.Q), +/* harmony export */ "ad": () => (/* reexport safe */ _Portal__WEBPACK_IMPORTED_MODULE_1__.ad), +/* harmony export */ "d_": () => (/* reexport safe */ _Portal__WEBPACK_IMPORTED_MODULE_1__.d_), +/* harmony export */ "zV": () => (/* reexport safe */ _createReactRootShadowed__WEBPACK_IMPORTED_MODULE_0__.z) +/* harmony export */ }); +/* harmony import */ var _createReactRootShadowed__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(42519); +/* harmony import */ var _Portal__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(59728); +/* harmony import */ var _ShadowRootIsolation__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(18499); +/* harmony import */ var _Contexts__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6414); + + + + + + +/***/ }), + +/***/ 99176: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + + +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "Y": () => (/* reexport */ useTabs) +}); + +// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.1.0/node_modules/react/index.js +var react = __webpack_require__(58757); +;// CONCATENATED MODULE: ../theme/src/hooks/useTabs.tsx + +/** + * @example + * const [currentTab, onChange, tabs, setTab] = useTab('tab1', 'tab2', 'tab3') + * return ( + * + * + * + * + * + * + * Item One + * Item Two + * Item Three + * + * ) + */ function useTabs(defaultTab, ...possibleTabs) { + const [currentTab, setTab] = (0,react.useState)(defaultTab); + const enum_ = { + [defaultTab]: defaultTab + }; + possibleTabs.forEach((t)=>enum_[t] = t + ); + const onChange = (0,react.useCallback)((event, value)=>{ + setTab(value); + }, []); + return [ + currentTab, + onChange, + enum_, + setTab + ]; +} + +;// CONCATENATED MODULE: ../theme/src/hooks/index.ts + + + +/***/ }), + +/***/ 93179: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "Bi": () => (/* binding */ createTypedMessageMetadataReader), +/* harmony export */ "mC": () => (/* binding */ createRenderWithMetadata), +/* harmony export */ "r1": () => (/* binding */ editTypedMessageMeta) +/* harmony export */ }); +/* unused harmony exports getKnownMetadataKeys, getMetadataSchema, registerMetadataSchema, readTypedMessageMetadataUntyped, isDataMatchJSONSchema, editMetadata, renderWithMetadataUntyped */ +/* harmony import */ var ts_results__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(48160); +/* harmony import */ var z_schema__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(63740); +/* harmony import */ var z_schema__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(z_schema__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var immer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(60232); + + + +(0,immer__WEBPACK_IMPORTED_MODULE_2__/* .enableMapSet */ .MD)(); +const metadataSchemaStore = new Map(); +function getKnownMetadataKeys() { + return [ + ...metadataSchemaStore.keys() + ]; +} +function getMetadataSchema(key) { + return metadataSchemaStore.has(key) ? Some(metadataSchemaStore.get(key)) : None; +} +/** + * Register your metadata with a JSON Schema so we can validate the schema for you. + * @param key Metadata key + * @param jsonSchema JSON Schema to validate the metadata + */ function registerMetadataSchema(key, jsonSchema) { + metadataSchemaStore.set(key, jsonSchema); +} +/** + * Create a TypedMessage metadata reader for your plugin + * @param key Metadata key + * @param jsonSchema JSON Schema to validate the metadata + * @example + * export const getFilePluginMetadata = createTypedMessageMetadataReader('plugin.meta.key', schema) + * getFilePluginMetadata(meta) + */ function createTypedMessageMetadataReader(key, jsonSchema) { + if (jsonSchema) registerMetadataSchema(key, jsonSchema); + return (meta)=>readTypedMessageMetadataUntyped(meta, key) + ; +} +/** + * The raw parser of metadata reader + * @param meta Metadata object + * @param key Metadata key + * @param jsonSchema JSON Schema to validate the metadata + */ function readTypedMessageMetadataUntyped(meta, key, jsonSchema) { + if (!meta) return ts_results__WEBPACK_IMPORTED_MODULE_0__/* .Err.EMPTY */ .UG.EMPTY; + if (!meta.has(key)) return ts_results__WEBPACK_IMPORTED_MODULE_0__/* .Err.EMPTY */ .UG.EMPTY; + if (metadataSchemaStore.has(key) && !jsonSchema) jsonSchema = metadataSchemaStore.get(key); + const data = meta.get(key); + if (!jsonSchema) console.warn('You should add a JSON Schema to verify the metadata in the TypedMessage'); + else { + const match = isDataMatchJSONSchema(data, jsonSchema); + if (match.err) { + console.warn('The problematic metadata is dropped', data, 'errors:', match.val); + return ts_results__WEBPACK_IMPORTED_MODULE_0__/* .Err.EMPTY */ .UG.EMPTY; + } + } + return (0,ts_results__WEBPACK_IMPORTED_MODULE_0__.Ok)(data); +} +function isDataMatchJSONSchema(data, jsonSchema) { + const validator = new (z_schema__WEBPACK_IMPORTED_MODULE_1___default())({}); + if (!validator.validate(data, jsonSchema)) return (0,ts_results__WEBPACK_IMPORTED_MODULE_0__/* .Err */ .UG)(validator.getLastErrors()); + return ts_results__WEBPACK_IMPORTED_MODULE_0__.Ok.EMPTY; +} +/** + * Create a render of Metadata. + * @param metadataReader A metadata reader (can be return value of createTypedMessageMetadataReader) + */ function createRenderWithMetadata(metadataReader) { + return (metadata, render)=>{ + const message = metadataReader(metadata); + if (message.ok) return render(message.val); + return null; + }; +} +function editMetadata(metadata, edit) { + return (0,immer__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .ZP)(metadata || new Map(), (e)=>void edit(e) + ); +} +function editTypedMessageMeta(typedMessage, edit) { + const meta = editMetadata(typedMessage.meta, edit); + return { + ...typedMessage, + meta: meta.size === 0 ? undefined : meta + }; +} +/** + * Render with metadata + * @param metadata Metadata + * @param key Metadata key + * @param render The render + * @param jsonSchema JSON Schema to validate the metadata + */ function renderWithMetadataUntyped(metadata, key, render, jsonSchema) { + const message = readTypedMessageMetadataUntyped(metadata, key, jsonSchema); + if (message.ok) return render(message.val); + return null; +} + + +/***/ }), + +/***/ 6947: +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +/** + * @license React + * use-subscription.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +var e=__webpack_require__(58757),g=Object.assign; +exports.useSubscription=function(a){var c=a.getCurrentValue,d=a.subscribe,b=e.useState(function(){return{getCurrentValue:c,subscribe:d,value:c()}});a=b[0];var f=b[1];b=a.value;if(a.getCurrentValue!==c||a.subscribe!==d)b=c(),f({getCurrentValue:c,subscribe:d,value:b});e.useDebugValue(b);e.useEffect(function(){function b(){if(!a){var b=c();f(function(a){return a.getCurrentValue!==c||a.subscribe!==d||a.value===b?a:g({},a,{value:b})})}}var a=!1,h=d(b);b();return function(){a=!0;h()}},[c,d]);return b}; + + +/***/ }) + +}]); \ No newline at end of file diff --git a/DevelopmentPod/MaskbookPlugin/maskbook/js/5954.js b/DevelopmentPod/MaskbookPlugin/maskbook/js/5954.js deleted file mode 100644 index 5336bf3c..00000000 --- a/DevelopmentPod/MaskbookPlugin/maskbook/js/5954.js +++ /dev/null @@ -1,2631 +0,0 @@ -"use strict"; -(globalThis["webpackChunk_masknet_extension"] = globalThis["webpackChunk_masknet_extension"] || []).push([[5954],{ - -/***/ 25789: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "default": () => (/* export default binding */ __WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -function toVal(mix) { - var k, y, str=''; - - if (typeof mix === 'string' || typeof mix === 'number') { - str += mix; - } else if (typeof mix === 'object') { - if (Array.isArray(mix)) { - for (k=0; k < mix.length; k++) { - if (mix[k]) { - if (y = toVal(mix[k])) { - str && (str += ' '); - str += y; - } - } - } - } else { - for (k in mix) { - if (mix[k]) { - str && (str += ' '); - str += k; - } - } - } - } - - return str; -} - -/* harmony default export */ function __WEBPACK_DEFAULT_EXPORT__() { - var i=0, tmp, x, str=''; - while (i < arguments.length) { - if (tmp = arguments[i++]) { - if (x = toVal(tmp)) { - str && (str += ' '); - str += x - } - } - } - return str; -} - - -/***/ }), - -/***/ 60232: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "Fl": () => (/* binding */ cr), -/* harmony export */ "MD": () => (/* binding */ T), -/* harmony export */ "ZP": () => (__WEBPACK_DEFAULT_EXPORT__), -/* harmony export */ "sc": () => (/* binding */ L) -/* harmony export */ }); -/* unused harmony exports Immer, applyPatches, castDraft, castImmutable, createDraft, current, enableAllPlugins, enableES5, enablePatches, finishDraft, freeze, isDraft, isDraftable, nothing, original, produce, produceWithPatches, setUseProxies */ -function r(r){for(var e=arguments.length,n=Array(e>1?e-1:0),t=1;t3?e.i-4:e.i:Array.isArray(r)?1:l(r)?2:s(r)?3:0}function a(r,e){return 2===o(r)?r.has(e):Object.prototype.hasOwnProperty.call(r,e)}function u(r,e){return 2===o(r)?r.get(e):r[e]}function f(r,e,n){var t=o(r);2===t?r.set(e,n):3===t?(r.delete(e),r.add(n)):r[e]=n}function c(r,e){return r===e?0!==r||1/r==1/e:r!=r&&e!=e}function l(r){return X&&r instanceof Map}function s(r){return q&&r instanceof Set}function v(r){return r.o||r.t}function p(r){if(Array.isArray(r))return Array.prototype.slice.call(r);var e=er(r);delete e[Q];for(var n=rr(e),t=0;t1){var a={configurable:!0,writable:!0,value:b};Object.defineProperties(r,{set:a,add:a,clear:a,delete:a})}return Object.freeze(r),t&&i(r,(function(r,e){return d(e,!0)}),!0),r}function b(){r(2)}function h(r){return null==r||"object"!=typeof r||Object.isFrozen(r)}function y(e){var n=nr[e];return n||r(18,e),n}function m(r,e){nr[r]||(nr[r]=e)}function _(){return true||0,U}function g(r,e){e&&(y("Patches"),r.u=[],r.l=[],r.s=e)}function w(r){j(r),r.v.forEach(S),r.v=null}function j(r){r===U&&(U=r.p)}function O(r){return U={v:[],p:U,h:r,m:!0,_:0}}function S(r){var e=r[Q];0===e.i||1===e.i?e.g():e.j=!0}function P(e,t){t._=t.v.length;var i=t.v[0],o=void 0!==e&&e!==i;return t.h.O||y("ES5").S(t,e,o),o?(i[Q].P&&(w(t),r(4)),n(e)&&(e=M(t,e),t.p||x(t,e)),t.u&&y("Patches").M(i[Q].t,e,t.u,t.l)):e=M(t,i,[]),w(t),t.u&&t.s(t.u,t.l),e!==H?e:void 0}function M(r,e,n){if(h(e))return e;var t=e[Q];if(!t)return i(e,(function(i,o){return A(r,t,e,i,o,n)}),!0),e;if(t.A!==r)return e;if(!t.P)return x(r,t.t,!0),t.t;if(!t.k){t.k=!0,t.A._--;var o=4===t.i||5===t.i?t.o=p(t.I):t.o;i(3===t.i?new Set(o):o,(function(e,i){return A(r,t,o,e,i,n)})),x(r,o,!1),n&&r.u&&y("Patches").R(t,n,r.u,r.l)}return t.o}function A(t,i,o,u,c,l){if( false&&0,e(c)){var s=M(t,c,l&&i&&3!==i.i&&!a(i.D,u)?l.concat(u):void 0);if(f(o,u,s),!e(s))return;t.m=!1}if(n(c)&&!h(c)){if(!t.h.F&&t._<1)return;M(t,c),i&&i.A.p||x(t,c)}}function x(r,e,n){void 0===n&&(n=!1),r.h.F&&r.m&&d(e,n)}function k(r,e){var n=r[Q];return(n?v(n):r)[e]}function z(r,e){if(e in r)for(var n=Object.getPrototypeOf(r);n;){var t=Object.getOwnPropertyDescriptor(n,e);if(t)return t;n=Object.getPrototypeOf(n)}}function I(r){r.P||(r.P=!0,r.p&&I(r.p))}function E(r){r.o||(r.o=p(r.t))}function R(r,e,n){var t=l(e)?y("MapSet").N(e,n):s(e)?y("MapSet").T(e,n):r.O?function(r,e){var n=Array.isArray(r),t={i:n?1:0,A:e?e.A:_(),P:!1,k:!1,D:{},p:e,t:r,I:null,o:null,g:null,C:!1},i=t,o=tr;n&&(i=[t],o=ir);var a=Proxy.revocable(i,o),u=a.revoke,f=a.proxy;return t.I=f,t.g=u,f}(e,n):y("ES5").J(e,n);return(n?n.A:_()).v.push(t),t}function D(t){return e(t)||r(22,t),function r(e){if(!n(e))return e;var t,a=e[Q],c=o(e);if(a){if(!a.P&&(a.i<4||!y("ES5").K(a)))return a.t;a.k=!0,t=F(e,c),a.k=!1}else t=F(e,c);return i(t,(function(e,n){a&&u(a.t,e)===n||f(t,e,r(n))})),3===c?new Set(t):t}(t)}function F(r,e){switch(e){case 2:return new Map(r);case 3:return Array.from(r)}return p(r)}function N(){function n(r,e){var n=l[r];return n?n.enumerable=e:l[r]=n={configurable:!0,enumerable:e,get:function(){var e=this[Q];return false&&0,tr.get(e,r)},set:function(e){var n=this[Q]; false&&0,tr.set(n,r,e)}},n}function t(r){for(var e=r.length-1;e>=0;e--){var n=r[e][Q];if(!n.P)switch(n.i){case 5:u(n)&&I(n);break;case 4:o(n)&&I(n)}}}function o(r){for(var e=r.t,n=r.I,t=rr(n),i=t.length-1;i>=0;i--){var o=t[i];if(o!==Q){var u=e[o];if(void 0===u&&!a(e,o))return!0;var f=n[o],l=f&&f[Q];if(l?l.t!==u:!c(f,u))return!0}}var s=!!e[Q];return t.length!==rr(e).length+(s?0:1)}function u(r){var e=r.I;if(e.length!==r.t.length)return!0;var n=Object.getOwnPropertyDescriptor(e,e.length-1);if(n&&!n.get)return!0;for(var t=0;t1?n-1:0),o=1;o1?n-1:0),o=1;o=0;t--){var i=n[t];if(0===i.path.length&&"replace"===i.op){r=i.value;break}}t>-1&&(n=n.slice(t+1));var o=y("Patches").$;return e(r)?o(r,n):this.produce(r,(function(r){return o(r,n)}))},t}(),ar=new or,ur=ar.produce,fr=ar.produceWithPatches.bind(ar),cr=ar.setAutoFreeze.bind(ar),lr=ar.setUseProxies.bind(ar),sr=ar.applyPatches.bind(ar),vr=ar.createDraft.bind(ar),pr=ar.finishDraft.bind(ar);/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ur); -//# sourceMappingURL=immer.esm.js.map - - -/***/ }), - -/***/ 52222: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "EK": () => (/* reexport safe */ _social_network_encode_decode__WEBPACK_IMPORTED_MODULE_2__.EK), -/* harmony export */ "FW": () => (/* reexport safe */ _social_network_encode_decode__WEBPACK_IMPORTED_MODULE_2__.FW), -/* harmony export */ "Ft": () => (/* reexport safe */ _image_steganography__WEBPACK_IMPORTED_MODULE_3__.Ft), -/* harmony export */ "G6": () => (/* reexport safe */ _encryption__WEBPACK_IMPORTED_MODULE_1__.G6), -/* harmony export */ "Gq": () => (/* reexport safe */ _payload__WEBPACK_IMPORTED_MODULE_0__.Gq), -/* harmony export */ "HI": () => (/* reexport safe */ _encryption__WEBPACK_IMPORTED_MODULE_1__.HI), -/* harmony export */ "Mk": () => (/* reexport safe */ _image_steganography__WEBPACK_IMPORTED_MODULE_3__.Mk), -/* harmony export */ "OF": () => (/* reexport safe */ _encryption__WEBPACK_IMPORTED_MODULE_1__.OF), -/* harmony export */ "Pj": () => (/* reexport safe */ _encryption__WEBPACK_IMPORTED_MODULE_1__.Pj), -/* harmony export */ "VC": () => (/* reexport safe */ _payload__WEBPACK_IMPORTED_MODULE_0__.VC), -/* harmony export */ "WZ": () => (/* reexport safe */ _payload__WEBPACK_IMPORTED_MODULE_0__.WZ), -/* harmony export */ "Ym": () => (/* reexport safe */ _social_network_encode_decode__WEBPACK_IMPORTED_MODULE_2__.Ym), -/* harmony export */ "cV": () => (/* reexport safe */ _encryption__WEBPACK_IMPORTED_MODULE_1__.cV), -/* harmony export */ "gO": () => (/* reexport safe */ _encryption__WEBPACK_IMPORTED_MODULE_1__.gO), -/* harmony export */ "oX": () => (/* reexport safe */ _image_steganography__WEBPACK_IMPORTED_MODULE_3__.oX), -/* harmony export */ "pe": () => (/* reexport safe */ _encryption__WEBPACK_IMPORTED_MODULE_1__.pe), -/* harmony export */ "qx": () => (/* reexport safe */ _payload__WEBPACK_IMPORTED_MODULE_0__.qx), -/* harmony export */ "zl": () => (/* reexport safe */ _social_network_encode_decode__WEBPACK_IMPORTED_MODULE_2__.zl) -/* harmony export */ }); -/* harmony import */ var _payload__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(79807); -/* harmony import */ var _encryption__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(31420); -/* harmony import */ var _social_network_encode_decode__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(19586); -/* harmony import */ var _image_steganography__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(95203); -/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(62435); - - - - - - -// TODO: remove them in the future - - - -/***/ }), - -/***/ 56045: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - - -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - "d": () => (/* reexport */ saveFileFromBuffer), - "r": () => (/* reexport */ saveFileFromUrl) -}); - -;// CONCATENATED MODULE: ./shared/helpers/download.ts -// TODO: maybe fallback to normal HTML save file? -async function saveFileFromUrl(url, fileName) { - await browser.downloads.download({ - url, - filename: fileName, - saveAs: true - }); -} -async function saveFileFromBuffer(file, mimeType, fileName) { - const blob = new Blob([ - file - ], { - type: mimeType - }); - const url = URL.createObjectURL(blob); - await saveFileFromUrl(url, fileName); -} - -;// CONCATENATED MODULE: ./shared/helpers/index.ts - - - -/***/ }), - -/***/ 95095: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "$s": () => (/* binding */ NFT_AVATAR_DB_NAME), -/* harmony export */ "EA": () => (/* binding */ NFT_AVATAR_DB_NAME_STORAGE), -/* harmony export */ "Uu": () => (/* binding */ PLUGIN_ID), -/* harmony export */ "kW": () => (/* binding */ NFT_AVATAR_JSON_SERVER), -/* harmony export */ "vu": () => (/* binding */ RSS3_KEY_SNS) -/* harmony export */ }); -/* unused harmony exports NFT_CONTRACT_JSON_VERIFIED_SERVER, PLUGIN_NAME, PLUGIN_DESCRIPTION */ -/* harmony import */ var _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(79936); - -const NFT_AVATAR_JSON_SERVER = 'https://configuration.r2d2.to/com.maskbook.avatar.json'; -const NFT_AVATAR_DB_NAME = 'com.maskbook.user'; -const NFT_AVATAR_DB_NAME_STORAGE = 'com.maskbook.user.storage'; -const NFT_CONTRACT_JSON_VERIFIED_SERVER = 'https://configuration.r2d2.to/com.maskbook.verified_nft.json'; -const PLUGIN_ID = _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__/* .PluginId.Avatar */ .je.Avatar; -const PLUGIN_NAME = 'Avatar'; -const PLUGIN_DESCRIPTION = 'NFT Avatar'; -var RSS3_KEY_SNS; -(function(RSS3_KEY_SNS) { - RSS3_KEY_SNS["TWITTER"] = '_nfts'; - RSS3_KEY_SNS["FACEBOOK"] = '_facebook_nfts'; - RSS3_KEY_SNS["INSTAGRAM"] = '_instagram_nfts'; -})(RSS3_KEY_SNS || (RSS3_KEY_SNS = {})); - - -/***/ }), - -/***/ 80917: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "AI": () => (/* binding */ currentSetupGuideStatus), -/* harmony export */ "Ct": () => (/* binding */ userGuideStatus), -/* harmony export */ "FX": () => (/* binding */ userPinExtension), -/* harmony export */ "JE": () => (/* binding */ bioDescription), -/* harmony export */ "OF": () => (/* binding */ appearanceSettings), -/* harmony export */ "Pg": () => (/* binding */ sayHelloShowed), -/* harmony export */ "VO": () => (/* binding */ currentPluginMinimalModeNOTEnabled), -/* harmony export */ "cn": () => (/* binding */ currentPersonaIdentifier), -/* harmony export */ "gG": () => (/* binding */ dismissVerifyNextID), -/* harmony export */ "i4": () => (/* binding */ launchPageSettings), -/* harmony export */ "pQ": () => (/* binding */ languageSettings), -/* harmony export */ "tR": () => (/* binding */ pluginIDSettings), -/* harmony export */ "yO": () => (/* binding */ personalHomepage) -/* harmony export */ }); -/* harmony import */ var _createSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(24646); -/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(84717); -/* harmony import */ var _masknet_theme__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(30232); -/* harmony import */ var _masknet_public_api__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(97096); -/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(78144); -/* harmony import */ var _plugins_EVM_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(29729); -/* harmony import */ var lodash_unified__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(23587); - - - - - - - -const appearanceSettings = (0,_createSettings__WEBPACK_IMPORTED_MODULE_0__/* .createGlobalSettings */ .TI)('appearance', _masknet_theme__WEBPACK_IMPORTED_MODULE_2__/* .Appearance["default"] */ .um["default"]); -const languageSettings = (0,_createSettings__WEBPACK_IMPORTED_MODULE_0__/* .createGlobalSettings */ .TI)('language', _masknet_public_api__WEBPACK_IMPORTED_MODULE_3__/* .LanguageOptions.__auto__ */ .P7.__auto__); -languageSettings.addListener(_masknet_shared_base__WEBPACK_IMPORTED_MODULE_4__/* .updateLanguage */ .BF); -const pluginIDSettings = (0,_createSettings__WEBPACK_IMPORTED_MODULE_0__/* .createGlobalSettings */ .TI)('pluginID', _plugins_EVM_constants__WEBPACK_IMPORTED_MODULE_5__/* .PLUGIN_ID */ .Uu); -const currentSetupGuideStatus = (0,_createSettings__WEBPACK_IMPORTED_MODULE_0__/* .createNetworkSettings */ .Lk)('currentSetupGuideStatus', ''); -const userGuideStatus = (0,_createSettings__WEBPACK_IMPORTED_MODULE_0__/* .createNetworkSettings */ .Lk)('userGuideStatus', ''); -const sayHelloShowed = (0,_createSettings__WEBPACK_IMPORTED_MODULE_0__/* .createNetworkSettings */ .Lk)('sayHelloShowed', false); -const userPinExtension = (0,_createSettings__WEBPACK_IMPORTED_MODULE_0__/* .createGlobalSettings */ .TI)('userPinExtension', false); -const dismissVerifyNextID = (0,_createSettings__WEBPACK_IMPORTED_MODULE_0__/* .createComplexNetworkSettings */ .v7)('dismissVerifyNextID', {}, lodash_unified__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z); -const bioDescription = (0,_createSettings__WEBPACK_IMPORTED_MODULE_0__/* .createNetworkSettings */ .Lk)('bioDescription', ''); -const personalHomepage = (0,_createSettings__WEBPACK_IMPORTED_MODULE_0__/* .createNetworkSettings */ .Lk)('personalHomepage', ''); -// This is a misuse of concept "NetworkSettings" as "namespaced settings" -// The refactor is tracked in https://github.com/DimensionDev/Maskbook/issues/1884 -/** - * ! DO NOT use this directly to query the plugin status ! - * - * use `useActivatedPluginsSNSAdaptor().find((x) => x.ID === PLUGIN_ID)` or - * `useActivatedPluginsDashboard().find((x) => x.ID === PLUGIN_ID)` instead - */ // This was "currentPluginEnabled" before, but we used it to represent minimal mode now to make the settings be able to migrate. -const currentPluginMinimalModeNOTEnabled = (0,_createSettings__WEBPACK_IMPORTED_MODULE_0__/* .createNetworkSettings */ .Lk)('pluginsEnabled', true); -const launchPageSettings = (0,_createSettings__WEBPACK_IMPORTED_MODULE_0__/* .createGlobalSettings */ .TI)('launchPage', _types__WEBPACK_IMPORTED_MODULE_1__/* .LaunchPage.dashboard */ .z.dashboard); -const currentPersonaIdentifier = (0,_createSettings__WEBPACK_IMPORTED_MODULE_0__/* .createGlobalSettings */ .TI)('currentPersonaIdentifier', ''); -try { - // Migrate language settings - const lng = languageSettings.value; - if (lng === 'en') languageSettings.value = _masknet_public_api__WEBPACK_IMPORTED_MODULE_3__/* .LanguageOptions.enUS */ .P7.enUS; - else if (lng === 'zh') languageSettings.value = _masknet_public_api__WEBPACK_IMPORTED_MODULE_3__/* .LanguageOptions.zhCN */ .P7.zhCN; - else if (lng === 'ja') languageSettings.value = _masknet_public_api__WEBPACK_IMPORTED_MODULE_3__/* .LanguageOptions.jaJP */ .P7.jaJP; - else if (lng === 'ko') languageSettings.value = _masknet_public_api__WEBPACK_IMPORTED_MODULE_3__/* .LanguageOptions.koKR */ .P7.koKR; - else languageSettings.value = _masknet_public_api__WEBPACK_IMPORTED_MODULE_3__/* .LanguageOptions.__auto__ */ .P7.__auto__; -} catch {} - - -/***/ }), - -/***/ 6277: -/***/ ((__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) => { - - -// EXTERNAL MODULE: ./src/social-network/index.ts -var social_network = __webpack_require__(3747); -// EXTERNAL MODULE: ./src/social-network-adaptor/facebook.com/base.ts -var base = __webpack_require__(1650); -;// CONCATENATED MODULE: ./src/social-network-adaptor/facebook.com/index.ts - - -(0,social_network/* defineSocialNetworkUI */.BE)({ - ...base/* facebookBase */.qv, - load: ()=>Promise.all(/* import() */[__webpack_require__.e(5638), __webpack_require__.e(2698), __webpack_require__.e(7871), __webpack_require__.e(9759), __webpack_require__.e(3294), __webpack_require__.e(2486), __webpack_require__.e(8136), __webpack_require__.e(6912), __webpack_require__.e(2245), __webpack_require__.e(3102), __webpack_require__.e(2092), __webpack_require__.e(8595), __webpack_require__.e(1314), __webpack_require__.e(1151), __webpack_require__.e(4894)]).then(__webpack_require__.bind(__webpack_require__, 64894)) - , - hotModuleReload (callback) { - if (false) {} - } -}); -(0,social_network/* defineSocialNetworkWorker */.tr)({ - ...base/* facebookWorkerBase */.XO, - load: ()=>__webpack_require__.e(/* import() */ 329).then(__webpack_require__.bind(__webpack_require__, 27288)) - , - hotModuleReload (callback) { - if (false) {} - } -}); - -// EXTERNAL MODULE: ./src/social-network-adaptor/twitter.com/base.ts -var twitter_com_base = __webpack_require__(37732); -;// CONCATENATED MODULE: ./src/social-network-adaptor/twitter.com/index.ts - - -(0,social_network/* defineSocialNetworkUI */.BE)({ - ...twitter_com_base/* twitterBase */.oQ, - load: ()=>Promise.all(/* import() */[__webpack_require__.e(5638), __webpack_require__.e(2698), __webpack_require__.e(7871), __webpack_require__.e(9759), __webpack_require__.e(3294), __webpack_require__.e(2486), __webpack_require__.e(8136), __webpack_require__.e(6912), __webpack_require__.e(7696), __webpack_require__.e(2245), __webpack_require__.e(3102), __webpack_require__.e(2092), __webpack_require__.e(8595), __webpack_require__.e(8106), __webpack_require__.e(1314), __webpack_require__.e(1151), __webpack_require__.e(3169)]).then(__webpack_require__.bind(__webpack_require__, 5756)) - , - hotModuleReload (callback) { - if (false) {} - } -}); -(0,social_network/* defineSocialNetworkWorker */.tr)({ - ...twitter_com_base/* twitterWorkerBase */.x, - load: ()=>__webpack_require__.e(/* import() */ 7807).then(__webpack_require__.bind(__webpack_require__, 47807)) - , - hotModuleReload (callback) { - if (false) {} - } -}); - -// EXTERNAL MODULE: ./src/social-network-adaptor/instagram.com/base.ts -var instagram_com_base = __webpack_require__(93505); -;// CONCATENATED MODULE: ./src/social-network-adaptor/instagram.com/index.ts - - -(0,social_network/* defineSocialNetworkUI */.BE)({ - ...instagram_com_base/* instagramBase */.j, - load: ()=>Promise.all(/* import() */[__webpack_require__.e(5638), __webpack_require__.e(2698), __webpack_require__.e(7871), __webpack_require__.e(9759), __webpack_require__.e(3294), __webpack_require__.e(6739), __webpack_require__.e(8136), __webpack_require__.e(6912), __webpack_require__.e(3102), __webpack_require__.e(2092), __webpack_require__.e(8595), __webpack_require__.e(1151), __webpack_require__.e(6839)]).then(__webpack_require__.bind(__webpack_require__, 77876)) - , - hotModuleReload (callback) { - if (false) {} - } -}); -(0,social_network/* defineSocialNetworkWorker */.tr)({ - ...instagram_com_base/* instagramWorkerBase */.x, - load: ()=>__webpack_require__.e(/* import() */ 5458).then(__webpack_require__.bind(__webpack_require__, 75458)) - , - hotModuleReload (callback) { - if (false) {} - } -}); - -// EXTERNAL MODULE: ./src/social-network-adaptor/minds.com/base.ts -var minds_com_base = __webpack_require__(8727); -;// CONCATENATED MODULE: ./src/social-network-adaptor/minds.com/index.ts - - -(0,social_network/* defineSocialNetworkUI */.BE)({ - ...minds_com_base/* mindsBase */.NE, - load: ()=>Promise.all(/* import() */[__webpack_require__.e(5638), __webpack_require__.e(2698), __webpack_require__.e(7871), __webpack_require__.e(9759), __webpack_require__.e(3294), __webpack_require__.e(2486), __webpack_require__.e(8136), __webpack_require__.e(6912), __webpack_require__.e(2245), __webpack_require__.e(3102), __webpack_require__.e(2092), __webpack_require__.e(8595), __webpack_require__.e(1314), __webpack_require__.e(510)]).then(__webpack_require__.bind(__webpack_require__, 80510)) - , - hotModuleReload (callback) { - if (false) {} - } -}); -(0,social_network/* defineSocialNetworkWorker */.tr)({ - ...minds_com_base/* mindsWorkerBase */.fy, - load: ()=>__webpack_require__.e(/* import() */ 5605).then(__webpack_require__.bind(__webpack_require__, 75605)) - , - hotModuleReload (callback) { - if (false) {} - } -}); - -// EXTERNAL MODULE: ./src/social-network-adaptor/opensea.io/base.ts -var opensea_io_base = __webpack_require__(69118); -;// CONCATENATED MODULE: ./src/social-network-adaptor/opensea.io/index.ts - - -(0,social_network/* defineSocialNetworkUI */.BE)({ - ...opensea_io_base/* openseaBase */.W, - load: ()=>Promise.all(/* import() */[__webpack_require__.e(5638), __webpack_require__.e(7871), __webpack_require__.e(9759), __webpack_require__.e(3294), __webpack_require__.e(8136), __webpack_require__.e(6912), __webpack_require__.e(3102), __webpack_require__.e(2092), __webpack_require__.e(8595), __webpack_require__.e(6388)]).then(__webpack_require__.bind(__webpack_require__, 16388)) - , - hotModuleReload (callback) { - if (false) {} - } -}); -(0,social_network/* defineSocialNetworkWorker */.tr)({ - ...opensea_io_base/* openseaWorkerBase */.G, - load: ()=>__webpack_require__.e(/* import() */ 3787).then(__webpack_require__.bind(__webpack_require__, 33787)) - , - hotModuleReload (callback) { - if (false) {} - } -}); - -;// CONCATENATED MODULE: ./src/social-network-adaptor/index.ts - - - - - - - -/***/ }), - -/***/ 8727: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "NE": () => (/* binding */ mindsBase), -/* harmony export */ "fy": () => (/* binding */ mindsWorkerBase) -/* harmony export */ }); -/* unused harmony export isMinds */ -/* harmony import */ var _masknet_shared__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2666); -/* harmony import */ var _masknet_encryption__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(52222); - - -const origins = [ - 'https://www.minds.com/*', - 'https://minds.com/*', - 'https://cdn.minds.com/*' -]; -const mindsBase = { - networkIdentifier: _masknet_shared__WEBPACK_IMPORTED_MODULE_0__/* .MINDS_ID */ .fN, - encryptionNetwork: _masknet_encryption__WEBPACK_IMPORTED_MODULE_1__/* .SocialNetworkEnum.Minds */ .Gq.Minds, - declarativePermissions: { - origins - }, - shouldActivate (location) { - return location.hostname.endsWith('minds.com'); - } -}; -function isMinds(ui) { - return ui.networkIdentifier === MINDS_ID; -} -const mindsWorkerBase = { - ...mindsBase, - gunNetworkHint: 'minds-' -}; - - -/***/ }), - -/***/ 69118: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "G": () => (/* binding */ openseaWorkerBase), -/* harmony export */ "W": () => (/* binding */ openseaBase) -/* harmony export */ }); -/* harmony import */ var _masknet_shared__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2666); -/* harmony import */ var _masknet_encryption__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(52222); - - -const origins = [ - 'https://opensea.io/*' -]; -const openseaBase = { - networkIdentifier: _masknet_shared__WEBPACK_IMPORTED_MODULE_0__/* .OPENSEA_ID */ .Df, - encryptionNetwork: _masknet_encryption__WEBPACK_IMPORTED_MODULE_1__/* .SocialNetworkEnum.Unknown */ .Gq.Unknown, - declarativePermissions: { - origins - }, - shouldActivate (location) { - return location.host.endsWith(_masknet_shared__WEBPACK_IMPORTED_MODULE_0__/* .OPENSEA_ID */ .Df); - }, - notReadyForProduction: true -}; -const openseaWorkerBase = { - ...openseaBase, - gunNetworkHint: '' -}; - - -/***/ }), - -/***/ 97216: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "b": () => (/* binding */ isMobileTwitter) -/* harmony export */ }); -/* unused harmony export twitterDomain */ -const isMobileTwitter = !!navigator.userAgent.match(/Mobile|mobile/); -const twitterDomain = (/* unused pure expression or super */ null && (isMobileTwitter ? 'https://mobile.twitter.com/' : 'https://twitter.com/')); - - -/***/ }), - -/***/ 74372: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "Wu": () => (/* binding */ hasEditor), -/* harmony export */ "iv": () => (/* binding */ isCompose), -/* harmony export */ "kt": () => (/* binding */ getEditorContent), -/* harmony export */ "uf": () => (/* binding */ hasFocus) -/* harmony export */ }); -/* unused harmony export isMobile */ -/* harmony import */ var _selector__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(43399); - -const getEditorContent = ()=>{ - const editorNode = (0,_selector__WEBPACK_IMPORTED_MODULE_0__/* .postEditorDraftContentSelector */ .Y5)().evaluate(); - if (!editorNode) return ''; - if (editorNode.tagName.toLowerCase() === 'div') return editorNode.innerText; - return editorNode.value; -}; -const isMobile = ()=>globalThis.location.host.includes('mobile') -; -const isCompose = ()=>globalThis.location.pathname.includes('compose') -; -const hasFocus = (x)=>x.evaluate() === document.activeElement -; -const hasEditor = ()=>!!(0,_selector__WEBPACK_IMPORTED_MODULE_0__/* .postEditorDraftContentSelector */ .Y5)().evaluate() -; - - -/***/ }), - -/***/ 43399: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "$3": () => (/* binding */ searchProfileSaveSelector), -/* harmony export */ "$P": () => (/* binding */ searchProfessionalButtonSelector), -/* harmony export */ "$_": () => (/* binding */ postEditorContentInPopupSelector), -/* harmony export */ "Ab": () => (/* binding */ searchTweetAvatarSelector), -/* harmony export */ "Dc": () => (/* binding */ searchTwitterAvatarNFTSelector), -/* harmony export */ "Du": () => (/* binding */ rootSelector), -/* harmony export */ "FK": () => (/* binding */ searchProfileSetAvatarSelector), -/* harmony export */ "Fe": () => (/* binding */ searchProfileTabSelector), -/* harmony export */ "Fv": () => (/* binding */ searchTwitterAvatarNFTLinkSelector), -/* harmony export */ "Hk": () => (/* binding */ searchAppBarBackSelector), -/* harmony export */ "IQ": () => (/* binding */ personalHomepageSelector), -/* harmony export */ "JN": () => (/* binding */ searchProfileTabListSelector), -/* harmony export */ "Kq": () => (/* binding */ searchSelfAvatarSelector), -/* harmony export */ "L2": () => (/* binding */ searchProfileTabListLastChildSelector), -/* harmony export */ "Ls": () => (/* binding */ searchAvatarSelector), -/* harmony export */ "N7": () => (/* binding */ searchTwitterAvatarLinkSelector), -/* harmony export */ "NN": () => (/* binding */ searchReplyToolbarSelector), -/* harmony export */ "Ps": () => (/* binding */ postEditorInTimelineSelector), -/* harmony export */ "QG": () => (/* binding */ composeAnchorSelector), -/* harmony export */ "QK": () => (/* binding */ bioPageUserIDSelector), -/* harmony export */ "R9": () => (/* binding */ searchResultHeadingSelector), -/* harmony export */ "Rd": () => (/* binding */ postEditorInPopupSelector), -/* harmony export */ "Rj": () => (/* binding */ profileBioSelector), -/* harmony export */ "S": () => (/* binding */ searchAllProfileTabSelector), -/* harmony export */ "Sn": () => (/* binding */ searchSelfNicknameSelector), -/* harmony export */ "WU": () => (/* binding */ sideBarProfileSelector), -/* harmony export */ "XD": () => (/* binding */ postsContentSelector), -/* harmony export */ "XL": () => (/* binding */ searchTwitterAvatarOpenFilesSelector), -/* harmony export */ "Y5": () => (/* binding */ postEditorDraftContentSelector), -/* harmony export */ "YG": () => (/* binding */ floatingBioCardSelector), -/* harmony export */ "YX": () => (/* binding */ searchProfileEmptySelector), -/* harmony export */ "ag": () => (/* binding */ headingTextSelector), -/* harmony export */ "at": () => (/* binding */ profileFollowButtonSelector), -/* harmony export */ "b2": () => (/* binding */ profileMenuButtonSelector), -/* harmony export */ "bQ": () => (/* binding */ searchRetweetAvatarSelector), -/* harmony export */ "ch": () => (/* binding */ toolBoxInSideBarSelector), -/* harmony export */ "dA": () => (/* binding */ searchNFTAvatarSelector), -/* harmony export */ "nS": () => (/* binding */ newPostButtonSelector), -/* harmony export */ "p$": () => (/* binding */ searchTwitterAvatarSelector), -/* harmony export */ "pz": () => (/* binding */ searchAvatarMetaSelector), -/* harmony export */ "r$": () => (/* binding */ searchNewTweetButtonSelector), -/* harmony export */ "rf": () => (/* binding */ searchNickNameSelector), -/* harmony export */ "rk": () => (/* binding */ postsImageSelector), -/* harmony export */ "s8": () => (/* binding */ searchSelfHandleSelector), -/* harmony export */ "tk": () => (/* binding */ isReplyPageSelector), -/* harmony export */ "uy": () => (/* binding */ bioPageUserNickNameSelector), -/* harmony export */ "vL": () => (/* binding */ postAvatarsContentSelector), -/* harmony export */ "wP": () => (/* binding */ searchEditProfileSelector), -/* harmony export */ "xH": () => (/* binding */ composeAnchorTextSelector), -/* harmony export */ "xx": () => (/* binding */ searchProfileTabPageSelector), -/* harmony export */ "yR": () => (/* binding */ timelinePostContentSelector), -/* harmony export */ "zA": () => (/* binding */ searchProfileTabLoseConnectionPageSelector) -/* harmony export */ }); -/* unused harmony exports querySelector, searchProfileSelector, searchProfileActiveTabSelector, searchProfileActiveTabStatusLineSelector, searchProfileActiveTabLabelSelector, searchForegroundColorSelector, bioCardSelector, postEditorToolbarSelector, twitterMainAvatarSelector, searchProfileAvatarSelector, searchProfileAvatarParentSelector, searchAvatarSelectorInput, searchAvatarSelectorImage, searchUseCellSelector, searchRejectReplyTextSelector */ -/* harmony import */ var _dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(85646); -/* harmony import */ var _dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _isMobile__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(97216); -/* harmony import */ var _postBox__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(74372); - - - -const querySelector = (selector, singleMode = true)=>{ - const ls = new _dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_2__.LiveSelector().querySelector(selector); - return singleMode ? ls.enableSingleMode() : ls; -}; -const querySelectorAll = (selector)=>{ - return new _dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_2__.LiveSelector().querySelectorAll(selector); -}; -// #region "Enhanced Profile" -const searchProfileSelector = ()=>querySelector('[aria-label][role="navigation"]') -; -const searchProfileTabListLastChildSelector = ()=>querySelector('[data-testid="primaryColumn"] div + [role="navigation"][aria-label] [data-testid="ScrollSnap-nextButtonWrapper"]') -; -const searchProfileTabPageSelector = ()=>querySelector('[data-testid="primaryColumn"] [role="navigation"] + * > div[aria-label]:not([role="progressbar"])') -; -const searchProfileTabLoseConnectionPageSelector = ()=>querySelector('[data-testid="primaryColumn"] [role="navigation"] + * > div[dir="auto"]:not([role="progressbar"])') -; -const searchProfileEmptySelector = ()=>querySelector('[data-testid="primaryColumn"] [data-testid="emptyState"]') -; -const searchProfileActiveTabSelector = ()=>querySelector('[aria-label][role="navigation"] [role="tablist"] [role="tab"][aria-selected="true"]') -; -const searchProfileTabSelector = ()=>querySelector('[aria-label][role="navigation"] [role="tablist"] [role="tab"][aria-selected="false"]') -; -const searchAllProfileTabSelector = ()=>querySelector('[aria-label][role="navigation"] [role="tablist"] [role="tab"]') -; -const searchAppBarBackSelector = ()=>querySelector('[data-testid="app-bar-back"] > div') -; -const searchProfileActiveTabStatusLineSelector = ()=>querySelector('[aria-label][role="navigation"] [role="tablist"] [role="tab"][aria-selected="true"] > div > div') -; -const searchProfileActiveTabLabelSelector = ()=>querySelector('[aria-label][role="navigation"] [role="tablist"] [role="tab"][aria-selected="true"] > div') -; -const searchProfileTabListSelector = ()=>querySelectorAll('[aria-label][role="navigation"] [role="tablist"][data-testid="ScrollSnap-List"] a') -; -const searchForegroundColorSelector = ()=>querySelector('[data-testid="primaryColumn"] > div > div > div > div > div > div > div > div > div > div') -; -const searchNewTweetButtonSelector = ()=>{ - const q = querySelector('[data-testid="FloatingActionButtons_Tweet_Button"]'); - if (q.evaluate()) return q; - return querySelector('[data-testid="SideNav_NewTweet_Button"]'); -}; -const searchNickNameSelector = ()=>querySelector('[data-testid="primaryColumn"] [data-testid="UserName"] div[dir="auto"] > span > span') -; -const searchAvatarSelector = ()=>querySelector('[data-testid="primaryColumn"] a[href$="/photo"] img[src*="profile_images"]') -; -const searchNFTAvatarSelector = ()=>querySelector('[data-testid="primaryColumn"] a[href$="/nft"] img[src*="profile_images"]') -; -const searchAvatarMetaSelector = ()=>querySelector('head > meta[property="og:image"]:last-child') -; -const profileFollowButtonSelector = ()=>querySelector('[data-testid="primaryColumn"] [aria-haspopup="menu"][data-testid="userActions"] ~ [data-testid="placementTracking"]') -; -// To get margin bottom of menu button, and apply it to tip button to align it. -const profileMenuButtonSelector = ()=>querySelector('[data-testid="primaryColumn"] [aria-haspopup="menu"][data-testid="userActions"]') -; -const searchEditProfileSelector = ()=>querySelector('[data-testid="primaryColumn"] a[href="/settings/profile"]') -; -const bioCardSelector = (singleMode = true)=>querySelector([ - '.profile', - 'a[href*="header_photo"] ~ div', - 'div[data-testid="primaryColumn"] > div > div:last-child > div > div > div > div ~ div' - ].join(), singleMode) -; -// #endregion -const rootSelector = ()=>querySelector('#react-root') -; -// `aside *` selectors are for mobile mode -const composeAnchorSelector = ()=>querySelector([ - 'header[role=banner] a[href="/compose/tweet"]', - 'aside a[href="/compose/tweet"]', - // can't see the compose button on share popup, use the tweetButton instead - '[role=main] [role=button][data-testid=tweetButton]', - ].join()) -; -const composeAnchorTextSelector = ()=>querySelector('header[role=banner] a[href="/compose/tweet"] div[dir],aside a[href="/compose/tweet"] div[dir]') -; -const headingTextSelector = ()=>querySelector('[role="banner"] [role="heading"]') -; -const postEditorContentInPopupSelector = ()=>querySelector('#react-root div') -; -const postEditorInPopupSelector = ()=>querySelector('div[data-testid="toolBar"] div[data-testid="geoButton"]') -; -const toolBoxInSideBarSelector = ()=>querySelector('[role="banner"] [role="navigation"] > div') -; -const sideBarProfileSelector = ()=>querySelector('[role="banner"] [role="navigation"] [aria-label="Lists"] > div') -; -const postEditorInTimelineSelector = ()=>querySelector('[role="main"] :not(aside) > [role="progressbar"] ~ div [role="button"][aria-label]:nth-child(6)') -; -const isReplyPageSelector = ()=>!!location.pathname.match(/^\/\w+\/status\/\d+$/) -; -const postEditorDraftContentSelector = ()=>{ - if (location.pathname === '/compose/tweet') { - return querySelector('[contenteditable][aria-label][spellcheck],textarea[aria-label][spellcheck]'); - } - if (isReplyPageSelector()) { - return querySelector('[data-testid="tweetTextarea_0"]'); - } - return ((0,_postBox__WEBPACK_IMPORTED_MODULE_1__/* .isCompose */ .iv)() ? postEditorInPopupSelector() : postEditorInTimelineSelector()).querySelector('.public-DraftEditor-content, [contenteditable][aria-label][spellcheck]'); -}; -const searchResultHeadingSelector = ()=>querySelector('[role="main"] [data-testid="primaryColumn"] [role="region"] > [role="heading"]') -; -const postEditorToolbarSelector = ()=>querySelector('[data-testid="toolBar"] > div > *:last-child') -; -const twitterMainAvatarSelector = ()=>querySelector('[data-testid="toolBar"]').closest(4).querySelector('div > a > div > :nth-child(2) > div') -; -const newPostButtonSelector = ()=>querySelector('[data-testid="SideNav_NewTweet_Button"]') -; -const profileBioSelector = ()=>querySelector('[data-testid="UserDescription"]') -; -const personalHomepageSelector = ()=>querySelector('[data-testid="UserUrl"]') -; -const bioPageUserNickNameSelector = ()=>querySelector('[data-testid="UserDescription"]').map((x)=>x.parentElement?.parentElement?.previousElementSibling - ).querySelector('div[dir]') -; -const bioPageUserIDSelector = (selector)=>selector().map((x)=>x.parentElement?.nextElementSibling?.innerText?.replace('@', '') - ) -; -const floatingBioCardSelector = ()=>querySelector('[style~="left:"] a[role=link] > div:first-child > div:first-child > div:first-child[dir="auto"]') -; -const postsImageSelector = (node)=>new _dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_2__.LiveSelector([ - node - ]).querySelectorAll([ - '[data-testid="tweet"] > div > div img[src*="media"]', - '[data-testid="tweet"] ~ div img[src*="media"]' - ].join()) -; -const timelinePostContentSelector = ()=>querySelectorAll([ - '[data-testid="tweet"] div + div div[lang]', - '[data-testid="tweet"] div + div div[data-testid="card.wrapper"]' - ].join()) -; -const postsContentSelector = ()=>querySelectorAll([ - // tweets on timeline page - '[data-testid="tweet"] div + div div[lang]', - '[data-testid="tweet"] div + div div[data-testid="card.wrapper"]', - // tweets on detailed page - '[data-testid="tweet"] + div > div:first-child div[lang]', - '[data-testid="tweet"] + div > div div[data-testid="card.wrapper"]', - // quoted tweets - '[data-testid="tweet"] + div div[role="link"] div[lang]', - '[data-testid="tweet"] > div:last-child div[role="link"] div[lang]', - // reply-tweets - '[data-testid="tweet"] + div div div[lang][dir]', - ].join()).concat(querySelectorAll('[data-testid="tweet"] > div:last-child').map((x)=>{ - const textElement = x.querySelector('[role="group"]')?.parentElement?.querySelector('div[lang]'); - if (textElement) return textElement; - // There's no textElement as there's only a twitter summary card parsed by a single url. - const summaryCardElement = x.querySelector('[role="group"]')?.parentElement?.querySelector('[data-testid="card.wrapper"]')?.previousElementSibling; - return summaryCardElement; - })) -; -const postAvatarsContentSelector = ()=>querySelectorAll('[data-testid="tweet"] > div > div > div > :nth-child(2)') -; -// #region self info -const searchSelfHandleSelector = ()=>{ - return querySelector([ - '[data-testid="SideNav_AccountSwitcher_Button"] [dir="ltr"] span', - '#layers [role="group"] [role="dialog"] [role="link"] [dir="ltr"] span' - ].join()); -}; -const searchSelfNicknameSelector = ()=>{ - return querySelector([ - '[data-testid="SideNav_AccountSwitcher_Button"] [dir="auto"] span span', - '#layers [role="group"] [role="dialog"] [role="link"] span span' - ].join()); -}; -const searchSelfAvatarSelector = ()=>{ - return querySelector([ - '#layers ~ div [role="banner"] [role="button"] img', - '[data-testid="DashButton_ProfileIcon_Link"] [role="presentation"] img', - '#layers [role="group"] [role="dialog"] [role="link"] img' - ].join()); -}; -// #endregion -// #region twitter nft avatar -const searchProfileAvatarSelector = ()=>{ - return querySelectorAll('[data-testid="fileInput"]').at(1).closest(4); -}; -const searchProfileAvatarParentSelector = ()=>querySelectorAll('[data-testid="fileInput"]').at(1).closest(2).evaluate()[0].firstChild?.firstChild?.lastChild?.firstChild -; -const searchAvatarSelectorInput = ()=>querySelectorAll('[data-testid="fileInput"]').at(1).closest(2).querySelector('div > div > :nth-child(2) > div > :first-child') -; -const searchAvatarSelectorImage = ()=>querySelectorAll('[data-testid="fileInput"]').at(1).closest(2).querySelector('div > div > :nth-child(2) > div > img') -; -const searchTwitterAvatarOpenFilesSelector = ()=>querySelectorAll('[data-testid="fileInput"]').at(1) -; -const searchProfileSaveSelector = ()=>querySelector('[data-testid="Profile_Save_Button"]') -; -const searchProfessionalButtonSelector = ()=>querySelector('[data-testid*="ProfessionalButton"]') -; -const searchProfileSetAvatarSelector = ()=>_isMobile__WEBPACK_IMPORTED_MODULE_0__/* .isMobileTwitter */ .b ? searchProfessionalButtonSelector().closest(4).querySelector('div > div:nth-child(2) >div > div:nth-child(2)') : querySelector('[data-testid^="ProfileBirthdate"]').closest(5).querySelector('div > div:nth-child(2) > div:nth-child(2)') -; -// #endregion -// #region avatar selector -const searchTwitterAvatarLinkSelector = ()=>querySelector('[data-testid="UserProfileHeader_Items"]').closest(2).querySelector('div a') -; -const searchTwitterAvatarSelector = ()=>querySelector('a[href$="/photo"]').querySelector('img').closest(1) -; -// #endregion -// #region twitter avatar -const searchUseCellSelector = ()=>querySelector('[data-testid="UserCell"]') -; -// #endregion -const searchTweetAvatarSelector = ()=>querySelector('[data-testid="tweetButtonInline"]').closest(7) -; -const searchRetweetAvatarSelector = ()=>querySelector('[data-testid="tweetButton"]').closest(6) -; -const searchTwitterAvatarNFTSelector = ()=>querySelector('a[href$="/nft"]').closest(1).querySelector('a div:nth-child(3) > div') -; -const searchTwitterAvatarNFTLinkSelector = ()=>querySelector('a[href$="/nft"]') -; -const searchReplyToolbarSelector = ()=>querySelector('div[data-testid="primaryColumn"] div[data-testid="toolBar"]').querySelector('div[data-testid="geoButton"]') -; -const searchRejectReplyTextSelector = ()=>querySelector('div[data-testid="tweetTextarea_0"] > div > div > div > span') -; - - -/***/ }), - -/***/ 3747: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "BE": () => (/* reexport safe */ _define__WEBPACK_IMPORTED_MODULE_2__.BE), -/* harmony export */ "C8": () => (/* reexport safe */ _worker__WEBPACK_IMPORTED_MODULE_3__.C), -/* harmony export */ "Du": () => (/* reexport safe */ _utils__WEBPACK_IMPORTED_MODULE_0__.Du), -/* harmony export */ "EJ": () => (/* reexport safe */ _ui__WEBPACK_IMPORTED_MODULE_1__.globalUIState), -/* harmony export */ "LB": () => (/* reexport safe */ _define__WEBPACK_IMPORTED_MODULE_2__.LB), -/* harmony export */ "LM": () => (/* reexport safe */ _ui__WEBPACK_IMPORTED_MODULE_1__.activatedSocialNetworkUI), -/* harmony export */ "ZZ": () => (/* reexport safe */ _utils__WEBPACK_IMPORTED_MODULE_0__.ZZ), -/* harmony export */ "gE": () => (/* reexport safe */ _ui__WEBPACK_IMPORTED_MODULE_1__.loadSocialNetworkUI), -/* harmony export */ "tr": () => (/* reexport safe */ _define__WEBPACK_IMPORTED_MODULE_2__.tr) -/* harmony export */ }); -/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(30821); -/* harmony import */ var _ui__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(10888); -/* harmony import */ var _define__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(57601); -/* harmony import */ var _worker__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(9805); - - - - - - - -/***/ }), - -/***/ 30821: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "Du": () => (/* binding */ creator), -/* harmony export */ "MJ": () => (/* binding */ managedStateCreator), -/* harmony export */ "ZZ": () => (/* binding */ stateCreator) -/* harmony export */ }); -/* harmony import */ var _dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(85646); -/* harmony import */ var _dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(78144); - - -// By this pattern, I hope we can enforce all providers to use this pattern to init. -// const friendsRef = stateCreator.friendsRef() -// return { friendsRef } -// Therefore they may aware they have the ability to fill in the ref. -// If I design it like this: -// const state = stateCreator() -// return state -// People might not aware they need to fill the new state. -const stateCreator = { - friends: ()=>new _dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_1__.ValueRef(new _masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .IdentifierMap */ .qD(new Map(), _masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .ProfileIdentifier */ .WO)) - , - profiles: ()=>new _dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_1__.ValueRef([]) -}; -function managedStateCreator() { - return {}; -} -const creator = { - EmptyIdentityResolveProviderState: ()=>new _dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_1__.ValueRef({ - identifier: _masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .ProfileIdentifier.unknown */ .WO.unknown - }) - , - EmptyPostProviderState: ()=>new _masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .ObservableWeakMap */ .$f() -}; - - -/***/ }), - -/***/ 86742: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "_": () => (/* binding */ collectTwitterEmoji), -/* harmony export */ "a": () => (/* binding */ collectNodeText) -/* harmony export */ }); -function collectTwitterEmoji(points) { - if (points.length === 0) return ''; - if (points[0] >= 0x23 && points[0] <= 0x39) return String.fromCodePoint(points[0], ...points.includes(0xfe0f) ? [] : [ - 0xfe0f - ], ...points.slice(1)); - return String.fromCodePoint(...points); -} -function collectNodeText(node, options = {}) { - if (!node) return ''; - if (!node.querySelector('a, img')) return node.innerText; - return [ - ...node.childNodes - ].map((each)=>{ - if (each.nodeType === document.TEXT_NODE) return each.nodeValue || ''; - if (each instanceof HTMLAnchorElement) { - const result = options.onHTMLAnchorElement?.(each); - if (result?.some) return result.val; - const href = each.getAttribute('href'); - return [ - href, - each.innerText - ].join(' '); - } - if (each instanceof HTMLImageElement) { - const src = each.getAttribute('src'); - const alt = each.getAttribute('alt') ?? ''; - const matched = src?.match(/emoji\/v2\/svg\/([\w\-]+)\.svg/)?.[1]; - if (matched) return collectTwitterEmoji(matched.split('-').map((x)=>Number.parseInt(x, 16) - )) || alt; - return alt; - } - if (each instanceof HTMLElement) return collectNodeText(each, options); - return ''; - }).join(''); -} - - -/***/ }), - -/***/ 99665: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "f": () => (/* binding */ untilElementAvailable) -/* harmony export */ }); -/* unused harmony export nthChild */ -/* harmony import */ var _dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(85646); -/* harmony import */ var _dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_0__); - - -const untilElementAvailable = async (ls, timeout = 5000)=>{ - const w = new _dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_0__.IntervalWatcher(ls); - return new Promise((resolve, reject)=>{ - setTimeout(()=>reject() - , timeout); - w.useForeach(()=>{ - w.stopWatch(); - resolve(); - }).startWatch(500); - }); -}; -function nthChild(n, ...childrenIndex) { - let r = n; - for (const v of childrenIndex){ - if (isUndefined(r)) break; - r = r.children[v]; - } - return r; -} - - -/***/ }), - -/***/ 32196: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "q": () => (/* reexport safe */ _shared__WEBPACK_IMPORTED_MODULE_0__.ql) -/* harmony export */ }); -/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(62481); - - - -/***/ }), - -/***/ 92121: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - - -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - "f2": () => (/* reexport */ fromRGB), - "dF": () => (/* reexport */ getBackgroundColor), - "aF": () => (/* reexport */ getForegroundColor), - "_T": () => (/* reexport */ isDark), - "$o": () => (/* reexport */ isDarkTheme), - "wj": () => (/* reexport */ shade), - "xr": () => (/* reexport */ toRGB), - "VJ": () => (/* reexport */ useClassicMaskSNSTheme/* useClassicMaskSNSTheme */.V), - "Nh": () => (/* reexport */ useColorStyles/* useColorStyles */.N), - "B6": () => (/* reexport */ useErrorStyles/* useErrorStyles */.B) -}); - -// UNUSED EXPORTS: MaskDarkTheme, MaskLightTheme, useThemeLanguage - -// EXTERNAL MODULE: ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/clamp.js -var clamp = __webpack_require__(8218); -;// CONCATENATED MODULE: ./src/utils/theme/color-tools.ts - -function isDark([r, g, b]) { - return r < 68 && g < 68 && b < 68; -} -function toRGB(channels) { - if (!channels) return ''; - return `rgb(${channels.join()})`; -} -function fromRGB(rgb) { - const matched = rgb.match(/rgb\(\s*(\d+?)\s*,\s*(\d+?)\s*,\s*(\d+?)\s*\)/); - if (matched) { - const [_, r, g, b] = matched; - return [ - Number.parseInt(r, 10), - Number.parseInt(g, 10), - Number.parseInt(b, 10) - ]; - } - return; -} -function shade(channels, percentage) { - return channels.map((c)=>(0,clamp/* default */.Z)(Math.floor(c * (100 + percentage) / 100), 0, 255) - ); -} -function fromRGBAtoRGB(color) { - const matched = color.match(/^rgba\((\d{1,3}%?),\s*(\d{1,3}%?),\s*(\d{1,3}%?),\s*(\d*(?:\.\d+)?)\)$/); - if (matched) { - const [_, r, g, b, a] = matched; - const rgba = [ - Number.parseInt(r, 10), - Number.parseInt(g, 10), - Number.parseInt(b, 10), - Number.parseInt(a, 10), - ]; - return toRGB(shade(rgba.slice(0, 3), rgba[3] * 100)); - } - return ''; -} -function isRGBA(color) { - return color.match(/^rgba\((\d{1,3}%?),\s*(\d{1,3}%?),\s*(\d{1,3}%?),\s*(\d*(?:\.\d+)?)\)$/); -} -function getBackgroundColor(element) { - if (!element) return ''; - const color = getComputedStyle(element).backgroundColor; - if (isRGBA(color)) { - return fromRGBAtoRGB(color); - } - return color ? toRGB(fromRGB(color)) : ''; -} -function getForegroundColor(element) { - if (!element) return ''; - const color = getComputedStyle(element).color; - if (isRGBA(color)) { - return fromRGBAtoRGB(color); - } - return color ? toRGB(fromRGB(color)) : ''; -} -function isDarkTheme(element = document.body) { - const color = getComputedStyle(element).backgroundColor; - let rgb; - if (isRGBA(color)) { - rgb = fromRGB(fromRGBAtoRGB(color)); - } else { - rgb = fromRGB(color); - } - if (!rgb) return true; - return isDark(rgb); -} - -// EXTERNAL MODULE: ./src/utils/theme/MaskTheme.ts -var MaskTheme = __webpack_require__(33092); -// EXTERNAL MODULE: ./src/utils/theme/useColorStyles.ts -var useColorStyles = __webpack_require__(13922); -// EXTERNAL MODULE: ./src/utils/theme/useErrorStyles.ts -var useErrorStyles = __webpack_require__(59203); -// EXTERNAL MODULE: ./src/utils/theme/useThemeLanguage.ts -var useThemeLanguage = __webpack_require__(44614); -// EXTERNAL MODULE: ./src/utils/theme/useClassicMaskSNSTheme.ts -var useClassicMaskSNSTheme = __webpack_require__(42932); -;// CONCATENATED MODULE: ./src/utils/theme/index.ts - -// Do not export more files. Those files are deprecated. - - - - - - - - -/***/ }), - -/***/ 26537: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "C": () => (/* binding */ useCompositionContext), -/* harmony export */ "N": () => (/* binding */ CompositionContext) -/* harmony export */ }); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(86248); - -const CompositionContext = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)({ - attachMetadata () {}, - dropMetadata () {} -}); -const useCompositionContext = ()=>(0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(CompositionContext) -; -/* unsupported import.meta.webpackHot */ undefined && 0; - - -/***/ }), - -/***/ 3267: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - - -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - "KP": () => (/* reexport */ hooks/* PluginI18NFieldRender */.KP), - "je": () => (/* reexport */ entry/* PluginId */.je), - "EK": () => (/* reexport */ createInjectHooksRenderer), - "i1": () => (/* reexport */ entry/* registeredPlugins */.i1), - "Rc": () => (/* reexport */ hooks/* useActivatedPlugin */.Rc), - "eS": () => (/* reexport */ hooks/* usePluginI18NField */.eS), - "fI": () => (/* reexport */ hooks/* usePluginWrapper */.fI) -}); - -// UNUSED EXPORTS: CurrentSNSNetwork, createPluginMessage, createPluginRPC, createPluginRPCGenerator, getPluginDefine, registerPlugin, registeredPluginIDs - -// EXTERNAL MODULE: ../plugin-infra/src/entry.ts -var entry = __webpack_require__(79936); -// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.0.0/node_modules/react/jsx-runtime.js -var jsx_runtime = __webpack_require__(71999); -// EXTERNAL MODULE: ../shared-base-ui/src/index.ts -var src = __webpack_require__(53242); -// EXTERNAL MODULE: ../theme/src/entry.ts -var src_entry = __webpack_require__(30232); -// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.0.0/node_modules/react/index.js -var react = __webpack_require__(86248); -// EXTERNAL MODULE: ../plugin-infra/src/hooks/index.ts -var hooks = __webpack_require__(17750); -// EXTERNAL MODULE: ../plugin-infra/src/hooks/usePluginWrapper.tsx -var usePluginWrapper = __webpack_require__(48463); -;// CONCATENATED MODULE: ../plugin-infra/src/utils/createInjectHooksRenderer.tsx - - - - - - -const PropsContext = /*#__PURE__*/ (0,react.createContext)(null); -function createInjectHooksRenderer(usePlugins, pickInjectorHook, PluginWrapperComponent) { - function usePluginWrapperProvider(element, plugin) { - const [ref, setRef] = (0,react.useState)(null); - if (PluginWrapperComponent) { - return /*#__PURE__*/ (0,jsx_runtime.jsx)(PluginWrapperComponent, { - definition: plugin, - ref: (methods)=>{ - if (methods) setRef(methods); - }, - children: ref ? /*#__PURE__*/ (0,jsx_runtime.jsx)(usePluginWrapper/* PluginWrapperMethodsContext.Provider */.yd.Provider, { - value: ref, - children: element - }) : null - }); - } - return element; - } - function SinglePluginWithinErrorBoundary({ plugin }) { - const t = (0,hooks/* usePluginI18NField */.eS)(); - const props = (0,react.useContext)(PropsContext); - const ui = pickInjectorHook(plugin); - return usePluginWrapperProvider(ui ? /*#__PURE__*/ (0,jsx_runtime.jsx)(src/* ErrorBoundary */.SV, { - subject: 'Plugin ' + t(plugin.ID, plugin.name), - children: /*#__PURE__*/ (0,jsx_runtime.jsx)(Main, { - UI: ui, - data: props - }) - }) : null, plugin); - } - function PluginsInjectionHookRender(props) { - const allPlugins = usePlugins(); - const availablePlugins = (0,hooks/* useAvailablePlugins */.yH)(allPlugins); - const all = availablePlugins.filter(pickInjectorHook).map((plugin)=>/*#__PURE__*/ (0,jsx_runtime.jsx)(PropsContext.Provider, { - value: props, - children: /*#__PURE__*/ (0,jsx_runtime.jsx)(src_entry/* ShadowRootIsolation */.Q, { - "data-plugin": plugin.ID, - children: /*#__PURE__*/ (0,jsx_runtime.jsx)(SinglePluginWithinErrorBoundary, { - plugin: plugin - }) - }) - }, plugin.ID) - ); - return /*#__PURE__*/ (0,jsx_runtime.jsx)(jsx_runtime.Fragment, { - children: all - }); - } - return /*#__PURE__*/ (0,react.memo)(function PluginsInjectionHookRenderErrorBoundary(props) { - return /*#__PURE__*/ (0,jsx_runtime.jsx)("span", { - "data-plugin-render": "", - children: /*#__PURE__*/ (0,jsx_runtime.jsx)(src/* ErrorBoundary */.SV, { - children: /*#__PURE__*/ (0,jsx_runtime.jsx)(PluginsInjectionHookRender, { - ...props - }) - }) - }); - }); -} -function Main(props) { - const { data , UI } = props; - if (isRawInjectHook(UI)) return /*#__PURE__*/ (0,jsx_runtime.jsx)(RawHookRender, { - UI: UI, - data: data - }); - return /*#__PURE__*/ (0,jsx_runtime.jsx)(UI, { - ...data - }); -} -function RawHookRender({ UI , data }) { - const [ref, setRef] = (0,react.useState)(); - const [f, setF] = (0,react.useState)(); - const cancel = (0,react.useRef)(); - (0,react.useEffect)(()=>{ - if (!ref) return; - const sig = cancel.current = new AbortController(); - setF(UI.init(sig.signal, ref)); - return ()=>sig.abort() - ; - }, [ - ref, - UI.init - ]); - (0,react.useEffect)(()=>void f?.(data) - , [ - f, - data - ]); - return /*#__PURE__*/ (0,jsx_runtime.jsx)("div", { - ref: setRef - }); -} -function isRawInjectHook(x) { - return 'type' in x && x.type === 'raw'; -} - -;// CONCATENATED MODULE: ../plugin-infra/src/entry-dom.ts - - - - - -/***/ }), - -/***/ 79936: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "I4": () => (/* reexport safe */ _utils_message__WEBPACK_IMPORTED_MODULE_1__.I), -/* harmony export */ "Sc": () => (/* reexport safe */ _utils_rpc__WEBPACK_IMPORTED_MODULE_2__.S), -/* harmony export */ "V8": () => (/* reexport safe */ _utils_rpc__WEBPACK_IMPORTED_MODULE_2__.V), -/* harmony export */ "_W": () => (/* reexport safe */ _manager_store__WEBPACK_IMPORTED_MODULE_3__._W), -/* harmony export */ "fg": () => (/* reexport safe */ _manager_store__WEBPACK_IMPORTED_MODULE_3__.fg), -/* harmony export */ "fo": () => (/* reexport safe */ _manager_store__WEBPACK_IMPORTED_MODULE_3__.fo), -/* harmony export */ "i1": () => (/* reexport safe */ _manager_store__WEBPACK_IMPORTED_MODULE_3__.i1), -/* harmony export */ "je": () => (/* reexport safe */ _types__WEBPACK_IMPORTED_MODULE_0__.j), -/* harmony export */ "mv": () => (/* reexport safe */ _types__WEBPACK_IMPORTED_MODULE_0__.m) -/* harmony export */ }); -/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(62559); -/* harmony import */ var _utils_message__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(85705); -/* harmony import */ var _utils_rpc__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(47923); -/* harmony import */ var _manager_store__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(72938); - - - - - - -/***/ }), - -/***/ 23774: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "N": () => (/* binding */ useAllPluginsWeb3State) -/* harmony export */ }); -/* harmony import */ var _manager_dashboard__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(37271); -/* harmony import */ var _manager_sns_adaptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(56400); - - -function useAllPluginsWeb3State() { - const pluginsSNSAdaptor = (0,_manager_sns_adaptor__WEBPACK_IMPORTED_MODULE_1__/* .useActivatedPluginsSNSAdaptor */ .Pz)('any'); - const pluginsDashboard = (0,_manager_dashboard__WEBPACK_IMPORTED_MODULE_0__/* .useActivatedPluginsDashboard */ .eE)(); - return [ - ...pluginsSNSAdaptor, - ...pluginsDashboard - ].reduce((accumulator, current)=>{ - if (current.Web3State) { - accumulator[current.ID] = current.Web3State; - } - return accumulator; - }, {}); -} - - -/***/ }), - -/***/ 15428: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "y": () => (/* binding */ useAvailablePlugins) -/* harmony export */ }); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(86248); -/* harmony import */ var _web3__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(28102); - - -function checkPluginAvailable(plugin, pluginId, chainId) { - const supportedChainIds = plugin.enableRequirement.web3?.[pluginId]?.supportedChainIds; - if (!supportedChainIds) return true; - return supportedChainIds.includes(chainId); -} -function useAvailablePlugins(plugins) { - const networkPluginId = (0,_web3__WEBPACK_IMPORTED_MODULE_1__/* .useCurrentWeb3NetworkPluginID */ .$f)(); - const chainId = (0,_web3__WEBPACK_IMPORTED_MODULE_1__/* .useChainId */ .xx)(networkPluginId); - return (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(()=>plugins.filter((plugin)=>checkPluginAvailable(plugin, networkPluginId, chainId) - ) - , [ - plugins, - networkPluginId, - chainId - ]); -} - - -/***/ }), - -/***/ 5989: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "K": () => (/* binding */ PluginI18NFieldRender), -/* harmony export */ "e": () => (/* binding */ usePluginI18NField) -/* harmony export */ }); -/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(71999); -/* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(43966); - - -function PluginI18NFieldRender({ pluginID , field }) { - const [t] = (0,react_i18next__WEBPACK_IMPORTED_MODULE_1__/* .useTranslation */ .$)(); - if (!field) return null; - if (typeof field === 'object' && 'fallback' in field) { - if (field.i18nKey) { - const translate = t(field.i18nKey, { - ns: pluginID, - nsSeparator: '%%%', - defaultValue: field.fallback - }); - return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, { - children: translate - }); - } - return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, { - children: field.fallback - }); - } - return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, { - children: field - }); -} -function usePluginI18NField() { - const [t] = (0,react_i18next__WEBPACK_IMPORTED_MODULE_1__/* .useTranslation */ .$)(); - return function(pluginID, field) { - if (!field.i18nKey) return field.fallback; - if (!field.i18nKey.startsWith('__')) { - /** - * This field is used in the definition of a plugin in form of - * { fallback: "Text", i18nKey: "name" } - * - * Which is highly not likely to be analyzed by the type system. - * Enforce those key to starts with __, we can exclude those keys - * from the unused key result to keep the functionality of the analyzer. - */ console.warn(`[@masknet/plugin-infra] Plugin ${pluginID} uses i18n key ${field.i18nKey}. Please change it to __${field.i18nKey}.`); - return field.fallback; - } - return t(field.i18nKey, { - ns: pluginID, - nsSeparator: '%%%', - defaultValue: field.fallback - }); - }; -} - - -/***/ }), - -/***/ 48463: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "fI": () => (/* binding */ usePluginWrapper), -/* harmony export */ "yd": () => (/* binding */ PluginWrapperMethodsContext) -/* harmony export */ }); -/* unused harmony export emptyPluginWrapperMethods */ -/* harmony import */ var lodash_unified__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(21122); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(86248); - - -/** @internal */ const emptyPluginWrapperMethods = { - setWrap: lodash_unified__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z, - setWrapperName: lodash_unified__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z, - setWidth: lodash_unified__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z -}; -/** @internal */ const PluginWrapperMethodsContext = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)(emptyPluginWrapperMethods); -function usePluginWrapper(open, options) { - const { setWidth , setWrap , setWrapperName } = (0,react__WEBPACK_IMPORTED_MODULE_0__.useContext)(PluginWrapperMethodsContext); - const { width , name } = options || {}; - (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>{ - setWrap(open); - return ()=>setWrap(open) - ; - }, [ - open, - setWrap - ]); - (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>setWidth(width) - , [ - width, - setWidth - ]); - (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>setWrapperName(name) - , [ - name, - setWrapperName - ]); -} - - -/***/ }), - -/***/ 56400: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "Ar": () => (/* binding */ useActivatedPluginSNSAdaptor_Web3Supported), -/* harmony export */ "D4": () => (/* binding */ startPluginSNSAdaptor), -/* harmony export */ "Pz": () => (/* binding */ useActivatedPluginsSNSAdaptor), -/* harmony export */ "tn": () => (/* binding */ useActivatedPluginSNSAdaptor) -/* harmony export */ }); -/* unused harmony export useIsMinimalMode */ -/* harmony import */ var use_subscription__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(66040); -/* harmony import */ var _manage__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(71264); -/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(72938); -/* harmony import */ var _dimensiondev_kit__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(28807); - - - - -const { events , activated , startDaemon , minimalMode } = (0,_manage__WEBPACK_IMPORTED_MODULE_1__/* .createManager */ .m)((def)=>def.SNSAdaptor -); -const activatedSub = { - getCurrentValue: ()=>[ - ...activated.plugins - ] - , - subscribe: (f)=>events.on('activateChanged', f) -}; -const minimalModeSub = { - getCurrentValue: ()=>[ - ...minimalMode - ] - , - subscribe: (f)=>events.on('minimalModeChanged', f) -}; -function useActivatedPluginsSNSAdaptor(minimalModeEqualsTo) { - const minimalMode1 = (0,use_subscription__WEBPACK_IMPORTED_MODULE_0__.useSubscription)(minimalModeSub); - const result = (0,use_subscription__WEBPACK_IMPORTED_MODULE_0__.useSubscription)(activatedSub); - if (minimalModeEqualsTo === 'any') return result; - else if (minimalModeEqualsTo === true) return result.filter((x)=>minimalMode1.includes(x.ID) - ); - else if (minimalModeEqualsTo === false) return result.filter((x)=>!minimalMode1.includes(x.ID) - ); - (0,_dimensiondev_kit__WEBPACK_IMPORTED_MODULE_3__/* .unreachable */ .t1)(minimalModeEqualsTo); -} -useActivatedPluginsSNSAdaptor.visibility = { - useMinimalMode: useActivatedPluginsSNSAdaptor.bind(null, true), - useNotMinimalMode: useActivatedPluginsSNSAdaptor.bind(null, false), - useAnyMode: useActivatedPluginsSNSAdaptor.bind(null, 'any') -}; -function useIsMinimalMode(pluginID) { - return useSubscription(minimalModeSub).includes(pluginID); -} -/** - * - * @param pluginID Get the plugin ID - * @param visibility Should invisible plugin included? - * @returns - */ function useActivatedPluginSNSAdaptor(pluginID, minimalModeEqualsTo) { - const plugins = useActivatedPluginsSNSAdaptor(minimalModeEqualsTo); - const minimalMode2 = (0,use_subscription__WEBPACK_IMPORTED_MODULE_0__.useSubscription)(minimalModeSub); - const result = plugins.find((x)=>x.ID === pluginID - ); - if (!result) return result; - if (minimalModeEqualsTo === 'any') return result; - else if (minimalModeEqualsTo === true) { - if (minimalMode2.includes(result.ID)) return result; - return undefined; - } else if (minimalModeEqualsTo === false) { - if (minimalMode2.includes(result.ID)) return undefined; - return result; - } - (0,_dimensiondev_kit__WEBPACK_IMPORTED_MODULE_3__/* .unreachable */ .t1)(minimalModeEqualsTo); -} -function useActivatedPluginSNSAdaptor_Web3Supported(chainId, pluginID) { - const plugins = useActivatedPluginsSNSAdaptor('any'); - return plugins.reduce((acc, cur)=>{ - if (!cur.enableRequirement.web3) { - acc[cur.ID] = true; - return acc; - } - const supportedChainIds = cur.enableRequirement.web3?.[pluginID]?.supportedChainIds; - acc[cur.ID] = supportedChainIds?.includes(chainId) ?? false; - return acc; - }, {}); -} -function startPluginSNSAdaptor(currentNetwork, host) { - startDaemon(host, (id)=>{ - const def = (0,_store__WEBPACK_IMPORTED_MODULE_2__/* .getPluginDefine */ ._W)(id); - if (!def) return false; - // boolean | undefined - const status = def.enableRequirement.networks.networks[currentNetwork]; - if (def.enableRequirement.networks.type === 'opt-in' && status !== true) return false; - if (def.enableRequirement.networks.type === 'opt-out' && status === true) return false; - return true; - }); -} - - -/***/ }), - -/***/ 91131: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "GM": () => (/* binding */ serializer), -/* harmony export */ "tr": () => (/* binding */ registerSerializableClass) -/* harmony export */ }); -/* unused harmony export __DEBUG__ONLY__enableCryptoKeySerialization */ -/* harmony import */ var typeson__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(44284); -/* harmony import */ var ts_results__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(48160); -/* harmony import */ var bignumber_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(42263); -/* harmony import */ var bignumber_js__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(bignumber_js__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var typeson_registry__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(4926); -/* harmony import */ var _Identifier_IdentifierMap__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(93731); -/* harmony import */ var _Identifier_type__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(57589); -/// - - - -// @ts-ignore - - - -const pendingRegister = new Set(); -let typeson; -function setup() { - const { default: BigNumber } = bignumber_js__WEBPACK_IMPORTED_MODULE_2__; - typeson = new typeson__WEBPACK_IMPORTED_MODULE_0__/* .Typeson */ .oy({}); - typeson.register(typeson_registry__WEBPACK_IMPORTED_MODULE_3__/* .builtin */ .j0); - typeson.register(typeson_registry__WEBPACK_IMPORTED_MODULE_3__/* .specialNumbers */ .so); - typeson.register([ - typeson_registry__WEBPACK_IMPORTED_MODULE_3__/* .blob */ .Ik, - typeson_registry__WEBPACK_IMPORTED_MODULE_3__/* .file */ .tP, - typeson_registry__WEBPACK_IMPORTED_MODULE_3__/* .filelist */ .Jj, - typeson_registry__WEBPACK_IMPORTED_MODULE_3__/* .imagebitmap */ .xA - ]); - typeson.register({ - None: [ - (x)=>x === ts_results__WEBPACK_IMPORTED_MODULE_1__/* .None */ .Hq - , - ()=>'None' - , - ()=>ts_results__WEBPACK_IMPORTED_MODULE_1__/* .None */ .Hq - ] - }); - addClass('Ok', ts_results__WEBPACK_IMPORTED_MODULE_1__.Ok); - addClass('Err', ts_results__WEBPACK_IMPORTED_MODULE_1__/* .Err */ .UG); - addClass('Some', ts_results__WEBPACK_IMPORTED_MODULE_1__/* .Some */ .bD); - addClass('BigNumber', BigNumber); - addClass('ProfileIdentifier', _Identifier_type__WEBPACK_IMPORTED_MODULE_5__/* .ProfileIdentifier */ .WO); - addClass('ECKeyIdentifier', _Identifier_type__WEBPACK_IMPORTED_MODULE_5__/* .ECKeyIdentifier */ .ob); - addClass('GroupIdentifier', _Identifier_type__WEBPACK_IMPORTED_MODULE_5__/* .GroupIdentifier */ .xI); - addClass('PostIdentifier', _Identifier_type__WEBPACK_IMPORTED_MODULE_5__/* .PostIdentifier */ ._P); - addClass('PostIVIdentifier', _Identifier_type__WEBPACK_IMPORTED_MODULE_5__/* .PostIVIdentifier */ .bb); - addClass('IdentifierMap', _Identifier_IdentifierMap__WEBPACK_IMPORTED_MODULE_4__/* .IdentifierMap */ .q); - for (const a of pendingRegister)a(); -} -const serializer = { - serialization (from) { - if (!typeson) setup(); - return typeson.encapsulate(from); - }, - // cspell:disable-next-line - deserialization (to) { - if (!typeson) setup(); - return typeson.revive(to); - } -}; -/** THIS MUST NOT BE USED OUTSIDE OF A DEBUGGER CONTEXT */ function __DEBUG__ONLY__enableCryptoKeySerialization() { - if (!typeson) setup(); - typeson.register(cryptokey); -} -function registerSerializableClass(name, a, b, c) { - if (typeson) { - if (b) typeson.register({ - [name]: [ - a, - b, - c - ] - }); - else addClass(name, a); - } else { - if (b) pendingRegister.add(()=>typeson.register({ - [name]: [ - a, - b, - c - ] - }) - ); - else pendingRegister.add(()=>addClass(name, a) - ); - } -} -function addClass(name, constructor) { - Object.defineProperty(constructor, 'name', { - configurable: true, - enumerable: false, - writable: false, - value: name - }); - typeson.register({ - [name]: [ - (x)=>x instanceof constructor - , - // eslint-disable-next-line @typescript-eslint/no-loop-func - (x1)=>{ - const y = Object.assign({}, x1); - Object.getOwnPropertySymbols(y).forEach((x)=>Reflect.deleteProperty(y, x) - ); - return typeson.encapsulate(y); - }, - // eslint-disable-next-line @typescript-eslint/no-loop-func - (x)=>{ - const y = typeson.revive(x); - Object.setPrototypeOf(y, constructor.prototype); - return y; - }, - ] - }); -} - - -/***/ }), - -/***/ 97825: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "B": () => (/* binding */ getLocalImplementation), -/* harmony export */ "k": () => (/* binding */ getLocalImplementationExotic) -/* harmony export */ }); -// key = channel; value = local implementation -const RPCCache = new WeakMap(); -/** - * This function provides a localImplementation that is HMR ready. - * To update, call this function with the SAME CHANNEL object. - * It will "clone" all methods that impl returns. - * @param isBackground If the current environment is background. - * @param name The name of the local implementation, used for logging - * @param impl The implementation. Can be an async function. - * @param ref The reference object that must be the same if you're updating. - */ async function getLocalImplementation(isBackground, name, impl, ref) { - if (!isBackground) return {}; - const isUpdate = RPCCache.has(ref); - const localImpl = RPCCache.get(ref) || {}; - RPCCache.set(ref, localImpl); - const result = await impl(); - for(const key in localImpl){ - if (!Reflect.has(result, key)) { - delete localImpl[key]; - isUpdate && console.log(`[HMR] ${name}.${key} removed.`); - } else if (result[key] !== localImpl[key]) { - isUpdate && console.log(`[HMR] ${name}.${key} updated.`); - } - } - for(const key1 in result){ - if (!Reflect.has(localImpl, key1)) isUpdate && console.log(`[HMR] ${name}.${key1} added.`); - Object.defineProperty(localImpl, key1, { - configurable: true, - enumerable: true, - value: result[key1] - }); - } - return localImpl; -} -async function getLocalImplementationExotic(isBackground, name, impl, ref) { - if (!isBackground) return {}; - RPCCache.set(ref, await impl()); - return new Proxy({}, { - get (_, key) { - if (key === 'then') return; - // @ts-ignore - return RPCCache.get(ref)?.[key]; - } - }); -} - - -/***/ }), - -/***/ 40613: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "Fd": () => (/* binding */ createSubscriptionFromAsync), -/* harmony export */ "Jf": () => (/* binding */ SubscriptionFromValueRef), -/* harmony export */ "S3": () => (/* binding */ mapSubscription), -/* harmony export */ "Y_": () => (/* binding */ SubscriptionDebug), -/* harmony export */ "qY": () => (/* binding */ createConstantSubscription) -/* harmony export */ }); -/* unused harmony export ValueRefFromSubscription */ -/* harmony import */ var lodash_unified__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(21122); - - -function createConstantSubscription(value) { - return { - getCurrentValue: ()=>value - , - subscribe: ()=>lodash_unified__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z - }; -} -function createSubscriptionFromAsync(f, defaultValue, onChange, signal) { - // 0 - idle, 1 - updating state, > 1 - waiting state - let beats = 0; - let state = defaultValue; - const { subscribe , trigger } = getEventTarget(); - f().then((v)=>state = v - ).finally(trigger); - const flush = async ()=>{ - state = await f(); - beats -= 1; - if (beats > 0) { - beats = 1; - setTimeout(flush, 0); - } else if (beats < 0) { - beats = 0; - } - trigger(); - }; - return { - getCurrentValue: ()=>state - , - subscribe: (sub)=>{ - if (signal?.aborted) return ()=>{}; - const a = subscribe(sub); - const b = onChange(async ()=>{ - beats += 1; - if (beats === 1) flush(); - }); - signal?.addEventListener('abort', ()=>[ - a(), - b() - ] - , { - once: true - }); - return ()=>void [ - a(), - b() - ] - ; - } - }; -} -function getEventTarget() { - const event = new EventTarget(); - const EVENT = 'event'; - let timer; - function trigger() { - clearTimeout(timer); - // delay to update state to ensure that all settings to be synced globally - timer = setTimeout(()=>event.dispatchEvent(new Event(EVENT)) - , 600); - } - function subscribe(f) { - event.addEventListener(EVENT, f); - return ()=>event.removeEventListener(EVENT, f) - ; - } - return { - trigger, - subscribe - }; -} -function mapSubscription(sub, mapper) { - return { - getCurrentValue () { - return mapper(sub.getCurrentValue()); - }, - subscribe: sub.subscribe - }; -} -function SubscriptionFromValueRef(ref, signal) { - return SubscriptionDebug({ - getCurrentValue: ()=>ref.value - , - subscribe: (sub)=>{ - if (signal?.aborted) return lodash_unified__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z; - const f = ref.addListener(sub); - signal?.addEventListener('abort', f, { - once: true - }); - return f; - } - }); -} -function SubscriptionDebug(x) { - Object.defineProperty(x, '_value', { - configurable: true, - get: ()=>x.getCurrentValue() - }); - return x; -} -function ValueRefFromSubscription(sub, eq) { - const ref = new ValueRef(sub.getCurrentValue(), eq); - sub.subscribe(()=>ref.value = sub.getCurrentValue() - ); - return ref; -} - - -/***/ }), - -/***/ 11432: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "Q": () => (/* binding */ ShadowRootIsolation) -/* harmony export */ }); -/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(71999); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(86248); -/* harmony import */ var react_dom__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(93463); -/* harmony import */ var _Contexts__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(39688); -/* harmony import */ var _ShadowRootStyleProvider__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(10481); - -/* eslint-disable react-hooks/rules-of-hooks */ - - - -/** - * Render it's children inside a ShadowRoot to provide style isolation. - */ function ShadowRootIsolation({ children , ...props }) { - const disabled = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)((0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(_Contexts__WEBPACK_IMPORTED_MODULE_3__/* .DisableShadowRootContext */ .AZ)).current; - if (disabled) return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("span", { - ...props, - children: children - }); - const [dom, setDOM] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(); - const container = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(); - if (!container.current) { - container.current = document.createElement('div'); - } - (0,react__WEBPACK_IMPORTED_MODULE_1__.useLayoutEffect)(()=>{ - if (!dom) return; - if (dom.shadowRoot) return; - const shadow = dom.attachShadow({ - mode: 'open' - }); - shadow.appendChild(container.current); - }, [ - dom - ]); - if (!dom?.shadowRoot) return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("span", { - ...props, - ref: (x)=>x !== dom ? setDOM(x) : undefined - }); - return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("span", { - ...props, - children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_ShadowRootStyleProvider__WEBPACK_IMPORTED_MODULE_4__/* .ShadowRootStyleProvider */ .q, { - shadow: dom.shadowRoot, - children: /*#__PURE__*/ (0,react_dom__WEBPACK_IMPORTED_MODULE_2__.createPortal)(children, container.current) - }) - }); -} - - -/***/ }), - -/***/ 90323: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - - -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - "ez": () => (/* binding */ isCoreTypedMessages), - "YN": () => (/* reexport */ empty/* isTypedMessageEmpty */.Y), - "KV": () => (/* reexport */ promise/* isTypedMessagePromise */.K), - "Rz": () => (/* reexport */ core_text/* isTypedMessageText */.Rz), - "bZ": () => (/* reexport */ isTypedMessageTuple), - "qT": () => (/* reexport */ isTypedMessageTupleSerializable), - "WM": () => (/* reexport */ empty/* makeTypedMessageEmpty */.W), - "as": () => (/* reexport */ makeTypedMessageImage), - "Ng": () => (/* reexport */ promise/* makeTypedMessagePromise */.N), - "P": () => (/* reexport */ core_text/* makeTypedMessageText */.P), - "Zw": () => (/* reexport */ makeTypedMessageTuple), - "n_": () => (/* reexport */ makeTypedMessageTupleFromList), - "kT": () => (/* reexport */ makeTypedMessageTupleSerializable), - "mv": () => (/* reexport */ unknown/* makeTypedMessageUnknown */.m) -}); - -// UNUSED EXPORTS: isTypedMessageImage, isTypedMessageTextV1, isTypedMessageUnknown, makeTypedMessageSerializableTupleFromList - -// EXTERNAL MODULE: ../typed-message/base/core/empty.ts -var empty = __webpack_require__(54552); -// EXTERNAL MODULE: ../typed-message/base/core/text.ts -var core_text = __webpack_require__(13821); -// EXTERNAL MODULE: ../typed-message/base/utils/internal.ts -var internal = __webpack_require__(76395); -;// CONCATENATED MODULE: ../typed-message/base/core/image.ts - -const isTypedMessageImage = (0,internal/* createIsType */.uO)('image'); -function makeTypedMessageImage(image, size, meta) { - return { - type: 'image', - serializable: false, - image, - width: size?.width, - height: size?.height, - meta - }; -} - -// EXTERNAL MODULE: ../typed-message/base/utils/index.ts + 2 modules -var utils = __webpack_require__(72542); -;// CONCATENATED MODULE: ../typed-message/base/core/tuple.ts - - -const isTypedMessageTuple = (x)=>x.type === 'tuple' -; -const isTypedMessageTupleSerializable = (0,internal/* composeEvery */.mo)(isTypedMessageTuple, utils/* isSerializableTypedMessage */.fV); -function makeTypedMessageTuple(items, meta) { - return { - type: 'tuple', - items, - meta - }; -} -function makeTypedMessageTupleFromList(...args) { - return { - type: 'tuple', - items: args - }; -} -function makeTypedMessageTupleSerializable(items, meta) { - return { - type: 'tuple', - version: 1, - serializable: true, - items, - meta - }; -} -function makeTypedMessageSerializableTupleFromList(...args) { - return { - type: 'tuple', - version: 1, - items: args, - serializable: true - }; -} - -// EXTERNAL MODULE: ../typed-message/base/core/unknown.ts -var unknown = __webpack_require__(76628); -// EXTERNAL MODULE: ../typed-message/base/core/promise.ts -var promise = __webpack_require__(88083); -;// CONCATENATED MODULE: ../typed-message/base/core/index.ts - - - - - - - - - - - - - -const isCoreTypedMessages = (0,internal/* composeSome */.Vm)(empty/* isTypedMessageEmpty */.Y, core_text/* isTypedMessageText */.Rz, isTypedMessageImage, isTypedMessageTuple, unknown/* isTypedMessageUnknown */.q, promise/* isTypedMessagePromise */.K); - - -/***/ }), - -/***/ 25114: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - - -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - "bj": () => (/* reexport */ isTypedMessageAnchor), - "$6": () => (/* reexport */ MaskPayload/* isTypedMessageMaskPayload */.$), - "SY": () => (/* binding */ isWellKnownExtensionTypedMessages), - "Jv": () => (/* reexport */ makeTypedMessageAnchor), - "Jq": () => (/* reexport */ MaskPayload/* makeTypedMessageMaskPayload */.J) -}); - -// EXTERNAL MODULE: ../typed-message/base/utils/internal.ts -var internal = __webpack_require__(76395); -// EXTERNAL MODULE: ../typed-message/base/core/index.ts + 2 modules -var core = __webpack_require__(90323); -;// CONCATENATED MODULE: ../typed-message/base/extension/anchor.ts - - -const isTypedMessageAnchor = (0,internal/* createIsType */.uO)('x-anchor'); -function makeTypedMessageAnchor(category, href, content) { - return { - type: 'x-anchor', - serializable: false, - category, - href, - content, - alt: (0,core/* makeTypedMessageText */.P)(`[${content}](${href})`) - }; -} - -// EXTERNAL MODULE: ../typed-message/base/extension/MaskPayload.ts -var MaskPayload = __webpack_require__(25376); -;// CONCATENATED MODULE: ../typed-message/base/extension/index.ts - - - - - -const isWellKnownExtensionTypedMessages = (0,internal/* composeSome */.Vm)(isTypedMessageAnchor, MaskPayload/* isTypedMessageMaskPayload */.$); - - -/***/ }), - -/***/ 81148: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - - -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - "po": () => (/* reexport */ Flatten/* FlattenTypedMessage */.p), - "al": () => (/* reexport */ ParseLinkTransformer), - "gO": () => (/* reexport */ composed/* composeTransformers */.g), - "mC": () => (/* reexport */ utils/* createRenderWithMetadata */.mC), - "Bi": () => (/* reexport */ utils/* createTypedMessageMetadataReader */.Bi), - "Ab": () => (/* reexport */ binary_encode/* decodeTypedMessageFromDocument */.A), - "WR": () => (/* reexport */ deprecated_encode/* decodeTypedMessageV38ToV40Format */.W), - "r1": () => (/* reexport */ utils/* editTypedMessageMeta */.r1), - "vg": () => (/* reexport */ context/* emptyTransformationContext */.v), - "F9": () => (/* reexport */ binary_encode/* encodeTypedMessageToDocument */.F), - "Hu": () => (/* reexport */ deprecated_encode/* encodeTypedMessageV38Format */.H), - "Vc": () => (/* reexport */ utils/* extractTextFromTypedMessage */.Vc), - "ss": () => (/* reexport */ visitor/* forEachTypedMessageChild */.s), - "b5": () => (/* reexport */ utils/* getKnownMetadataKeys */.b5), - "SJ": () => (/* reexport */ utils/* getMetadataSchema */.SJ), - "Jp": () => (/* reexport */ utils/* isDataMatchJSONSchema */.Jp), - "bj": () => (/* reexport */ extension/* isTypedMessageAnchor */.bj), - "YN": () => (/* reexport */ core/* isTypedMessageEmpty */.YN), - "Hz": () => (/* reexport */ utils/* isTypedMessageEqual */.Hz), - "Rz": () => (/* reexport */ core/* isTypedMessageText */.Rz), - "Jv": () => (/* reexport */ extension/* makeTypedMessageAnchor */.Jv), - "WM": () => (/* reexport */ core/* makeTypedMessageEmpty */.WM), - "as": () => (/* reexport */ core/* makeTypedMessageImage */.as), - "Ng": () => (/* reexport */ core/* makeTypedMessagePromise */.Ng), - "P": () => (/* reexport */ core/* makeTypedMessageText */.P), - "Zw": () => (/* reexport */ core/* makeTypedMessageTuple */.Zw), - "n_": () => (/* reexport */ core/* makeTypedMessageTupleFromList */.n_), - "IJ": () => (/* reexport */ visitor/* visitEachTypedMessageChild */.I) -}); - -// UNUSED EXPORTS: createMaskPayloadTransform, createTransformationContext, editMetadata, extractImageFromTypedMessage, isCoreTypedMessages, isNonSerializableTypedMessageWithAlt, isSerializableTypedMessage, isTypedMessageImage, isTypedMessageMaskPayload, isTypedMessagePromise, isTypedMessageTextV1, isTypedMessageTuple, isTypedMessageTupleSerializable, isTypedMessageUnknown, isWellKnownExtensionTypedMessages, isWellKnownTypedMessages, makeTypedMessageMaskPayload, makeTypedMessageSerializableTupleFromList, makeTypedMessageTupleSerializable, makeTypedMessageUnknown, readTypedMessageMetadataUntyped, registerMetadataSchema, renderWithMetadataUntyped - -// EXTERNAL MODULE: ../typed-message/base/core/index.ts + 2 modules -var core = __webpack_require__(90323); -// EXTERNAL MODULE: ../typed-message/base/extension/index.ts + 1 modules -var extension = __webpack_require__(25114); -// EXTERNAL MODULE: ../typed-message/base/binary-encode/index.ts + 3 modules -var binary_encode = __webpack_require__(88904); -// EXTERNAL MODULE: ../typed-message/base/deprecated-encode/index.ts -var deprecated_encode = __webpack_require__(68496); -// EXTERNAL MODULE: ../typed-message/base/utils/index.ts + 2 modules -var utils = __webpack_require__(72542); -// EXTERNAL MODULE: ../typed-message/base/visitor/index.ts + 1 modules -var visitor = __webpack_require__(37725); -// EXTERNAL MODULE: ../typed-message/base/transformer/composed.ts -var composed = __webpack_require__(43457); -// EXTERNAL MODULE: ../typed-message/base/transformer/context.ts -var context = __webpack_require__(6596); -// EXTERNAL MODULE: ../typed-message/base/transformer/Flatten.ts -var Flatten = __webpack_require__(28722); -// EXTERNAL MODULE: ../typed-message/base/utils/parseLink.ts -var parseLink = __webpack_require__(81790); -;// CONCATENATED MODULE: ../typed-message/base/transformer/ParseLink.ts - - - - -function ParseLinkTransformer(message, context) { - if ((0,core/* isTypedMessageText */.Rz)(message)) { - const parsed = (0,parseLink/* parseLink */.V)(message.content); - if (parsed.length === 1 && parsed[0].type === 'text') return message; - return (0,core/* makeTypedMessageTupleSerializable */.kT)(parsed.map((i)=>{ - if (i.type === 'text') return (0,core/* makeTypedMessageText */.P)(i.content); - return (0,extension/* makeTypedMessageAnchor */.Jv)(i.category, i.content, i.content); - }), message.meta); - } - return (0,visitor/* visitEachTypedMessageChild */.I)(message, ParseLinkTransformer, context); -} - -// EXTERNAL MODULE: ../typed-message/base/transformer/MaskPayload/index.ts -var MaskPayload = __webpack_require__(78727); -;// CONCATENATED MODULE: ../typed-message/base/transformer/index.ts - - - - - - -// EXTERNAL MODULE: ../typed-message/base/utils/internal.ts -var internal = __webpack_require__(76395); -;// CONCATENATED MODULE: ../typed-message/base/index.ts - - - - - - - - - - - -const isWellKnownTypedMessages = (0,internal/* composeSome */.Vm)(core/* isCoreTypedMessages */.ez, extension/* isWellKnownExtensionTypedMessages */.SY); - - -/***/ }), - -/***/ 28722: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "p": () => (/* binding */ FlattenTypedMessage) -/* harmony export */ }); -/* harmony import */ var _core_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90323); -/* harmony import */ var _visitor_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(37725); -/* harmony import */ var _utils_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(72542); -/* harmony import */ var _context_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6596); - - - - -function FlattenTypedMessage(message, context) { - if ((0,_core_index_js__WEBPACK_IMPORTED_MODULE_0__/* .isTypedMessagePromise */ .KV)(message) && message.promise.value) return message.promise.value; - if ((0,_core_index_js__WEBPACK_IMPORTED_MODULE_0__/* .isTypedMessageTuple */ .bZ)(message)) { - const next = message.items.map((x)=>FlattenTypedMessage(x, context) - ).flatMap((x)=>(0,_core_index_js__WEBPACK_IMPORTED_MODULE_0__/* .isTypedMessageTuple */ .bZ)(x) ? x.meta ? x : x.items : x - ).filter((x)=>!(0,_core_index_js__WEBPACK_IMPORTED_MODULE_0__/* .isTypedMessageEmpty */ .YN)(x) - ).reduce((result, current)=>{ - const lastItem = result.at(-1); - if (!lastItem || lastItem.meta || current.meta) return result.concat(current); - if (!(0,_core_index_js__WEBPACK_IMPORTED_MODULE_0__/* .isTypedMessageText */ .Rz)(current) || !(0,_core_index_js__WEBPACK_IMPORTED_MODULE_0__/* .isTypedMessageText */ .Rz)(lastItem)) return result.concat(current); - // Only concat when last one and current one are both text and have no meta. - result.pop(); - result.push((0,_core_index_js__WEBPACK_IMPORTED_MODULE_0__/* .makeTypedMessageText */ .P)(`${lastItem.content} ${current.content}`)); - return result; - }, []); - if (!message.meta) { - if (next.length === 0) return (0,_core_index_js__WEBPACK_IMPORTED_MODULE_0__/* .makeTypedMessageEmpty */ .WM)(); - if (next.length === 1) return next[0]; - } - if (next.every(_utils_index_js__WEBPACK_IMPORTED_MODULE_2__/* .isSerializableTypedMessage */ .fV)) return (0,_core_index_js__WEBPACK_IMPORTED_MODULE_0__/* .makeTypedMessageTupleSerializable */ .kT)(next, message.meta); - return (0,_core_index_js__WEBPACK_IMPORTED_MODULE_0__/* .makeTypedMessageTuple */ .Zw)(next, message.meta); - } - return (0,_visitor_index_js__WEBPACK_IMPORTED_MODULE_1__/* .visitEachTypedMessageChild */ .I)(message, FlattenTypedMessage, context); -} -FlattenTypedMessage.NoContext = (message)=>FlattenTypedMessage(message, _context_js__WEBPACK_IMPORTED_MODULE_3__/* .emptyTransformationContext */ .v) -; - - -/***/ }), - -/***/ 43457: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "g": () => (/* binding */ composeTransformers) -/* harmony export */ }); -function composeTransformers() { - const event = new EventTarget(); - const onUpdate = ()=>event.dispatchEvent(new Event('update')) - ; - const transformers = new Set(); - function composed(message, context) { - return [ - ...transformers - ].sort((a, b)=>b[1] - a[1] - ).reduce((p, [c])=>c(p, context) - , message); - } - const subscription = { - getCurrentValue: ()=>(message, context)=>composed(message, context) - , - subscribe (f) { - event.addEventListener('update', f); - return ()=>{ - event.removeEventListener('update', f); - }; - } - }; - return { - subscription, - addTransformer (t, priority, signal) { - const f_priority = [ - typeof t === 'function' ? t : (message, context)=>t.getCurrentValue()(message, context) - , - priority, - ]; - transformers.add(f_priority); - onUpdate(); - const cancelSubscription = typeof t === 'function' ? ()=>{} : t.subscribe(onUpdate); - const remove = ()=>{ - transformers.delete(f_priority); - cancelSubscription(); - onUpdate(); - }; - signal?.addEventListener('abort', remove); - return remove; - } - }; -} - - -/***/ }), - -/***/ 72542: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - - -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - "mC": () => (/* reexport */ createRenderWithMetadata), - "Bi": () => (/* reexport */ createTypedMessageMetadataReader), - "r1": () => (/* reexport */ editTypedMessageMeta), - "Vc": () => (/* reexport */ extractTextFromTypedMessage), - "b5": () => (/* reexport */ getKnownMetadataKeys), - "SJ": () => (/* reexport */ getMetadataSchema), - "Jp": () => (/* reexport */ isDataMatchJSONSchema), - "c3": () => (/* binding */ isNonSerializableTypedMessageWithAlt), - "fV": () => (/* binding */ isSerializableTypedMessage), - "Hz": () => (/* binding */ isTypedMessageEqual) -}); - -// UNUSED EXPORTS: editMetadata, extractImageFromTypedMessage, readTypedMessageMetadataUntyped, registerMetadataSchema, renderWithMetadataUntyped - -// EXTERNAL MODULE: ../../node_modules/.pnpm/ts-results@3.3.0/node_modules/ts-results/esm/index.js + 3 modules -var esm = __webpack_require__(48160); -// EXTERNAL MODULE: ../../node_modules/.pnpm/z-schema@5.0.3/node_modules/z-schema/src/ZSchema.js -var ZSchema = __webpack_require__(63740); -var ZSchema_default = /*#__PURE__*/__webpack_require__.n(ZSchema); -// EXTERNAL MODULE: ../../node_modules/.pnpm/immer@9.0.12/node_modules/immer/dist/immer.esm.js -var immer_esm = __webpack_require__(60232); -;// CONCATENATED MODULE: ../typed-message/base/utils/metadata.ts - - - -(0,immer_esm/* enableMapSet */.MD)(); -const metadataSchemaStore = new Map(); -function getKnownMetadataKeys() { - return [ - ...metadataSchemaStore.keys() - ]; -} -function getMetadataSchema(key) { - return metadataSchemaStore.has(key) ? (0,esm/* Some */.bD)(metadataSchemaStore.get(key)) : esm/* None */.Hq; -} -/** - * Register your metadata with a JSON Schema so we can validate the schema for you. - * @param key Metadata key - * @param jsonSchema JSON Schema to validate the metadata - */ function registerMetadataSchema(key, jsonSchema) { - metadataSchemaStore.set(key, jsonSchema); -} -/** - * Create a TypedMessage metadata reader for your plugin - * @param key Metadata key - * @param jsonSchema JSON Schema to validate the metadata - * @example - * export const getFilePluginMetadata = createTypedMessageMetadataReader('plugin.meta.key', schema) - * getFilePluginMetadata(meta) - */ function createTypedMessageMetadataReader(key, jsonSchema) { - if (jsonSchema) registerMetadataSchema(key, jsonSchema); - return (meta)=>readTypedMessageMetadataUntyped(meta, key) - ; -} -/** - * The raw parser of metadata reader - * @param meta Metadata object - * @param key Metadata key - * @param jsonSchema JSON Schema to validate the metadata - */ function readTypedMessageMetadataUntyped(meta, key, jsonSchema) { - if (!meta) return esm/* Err.EMPTY */.UG.EMPTY; - if (!meta.has(key)) return esm/* Err.EMPTY */.UG.EMPTY; - if (metadataSchemaStore.has(key) && !jsonSchema) jsonSchema = metadataSchemaStore.get(key); - const data = meta.get(key); - if (!jsonSchema) console.warn('You should add a JSON Schema to verify the metadata in the TypedMessage'); - else { - const match = isDataMatchJSONSchema(data, jsonSchema); - if (match.err) { - console.warn('The problematic metadata is dropped', data, 'errors:', match.val); - return esm/* Err.EMPTY */.UG.EMPTY; - } - } - return (0,esm.Ok)(data); -} -function isDataMatchJSONSchema(data, jsonSchema) { - const validator = new (ZSchema_default())({}); - if (!validator.validate(data, jsonSchema)) return (0,esm/* Err */.UG)(validator.getLastErrors()); - return esm.Ok.EMPTY; -} -/** - * Create a render of Metadata. - * @param metadataReader A metadata reader (can be return value of createTypedMessageMetadataReader) - */ function createRenderWithMetadata(metadataReader) { - return (metadata, render)=>{ - const message = metadataReader(metadata); - if (message.ok) return render(message.val); - return null; - }; -} -function editMetadata(metadata, edit) { - return (0,immer_esm/* default */.ZP)(metadata || new Map(), (e)=>void edit(e) - ); -} -function editTypedMessageMeta(typedMessage, edit) { - const meta = editMetadata(typedMessage.meta, edit); - return { - ...typedMessage, - meta: meta.size === 0 ? undefined : meta - }; -} -/** - * Render with metadata - * @param metadata Metadata - * @param key Metadata key - * @param render The render - * @param jsonSchema JSON Schema to validate the metadata - */ function renderWithMetadataUntyped(metadata, key, render, jsonSchema) { - const message = readTypedMessageMetadataUntyped(metadata, key, jsonSchema); - if (message.ok) return render(message.val); - return null; -} - -// EXTERNAL MODULE: ../typed-message/base/core/index.ts + 2 modules -var core = __webpack_require__(90323); -// EXTERNAL MODULE: ../typed-message/base/extension/index.ts + 1 modules -var extension = __webpack_require__(25114); -// EXTERNAL MODULE: ../typed-message/base/visitor/index.ts + 1 modules -var base_visitor = __webpack_require__(37725); -;// CONCATENATED MODULE: ../typed-message/base/utils/extract.ts - - - - -/** - * Get inner text from a TypedMessage - * @param message message - */ function extractTextFromTypedMessage(message1, options) { - if (!message1) return esm/* None */.Hq; - const text = []; - function visitor(message) { - if ((0,core/* isTypedMessageText */.Rz)(message)) text.push(message.content); - else if ((0,extension/* isTypedMessageAnchor */.bj)(message)) { - text.push(message.content); - if (options?.linkAsText) text.push(`(${message.href})`); - } else (0,base_visitor/* forEachTypedMessageChild */.s)(message, visitor); - } - visitor(message1); - (0,base_visitor/* forEachTypedMessageChild */.s)(message1, visitor); - if (text.length) return (0,esm/* Some */.bD)(text.join(' ')); - return esm/* None */.Hq; -} -function extractImageFromTypedMessage(message2) { - if (!message2) return []; - const image = []; - function visitor(message) { - if (isTypedMessageImage(message)) return void image.push(message.image); - return forEachTypedMessageChild(message, visitor); - } - visitor(message2); - forEachTypedMessageChild(message2, visitor); - return image; -} - -// EXTERNAL MODULE: ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isEqual.js -var isEqual = __webpack_require__(23587); -;// CONCATENATED MODULE: ../typed-message/base/utils/index.ts - - - -function isNonSerializableTypedMessageWithAlt(x) { - const y = x; - if (y.serializable !== false) return false; - if (!y.alt) return false; - return isSerializableTypedMessage(y.alt); -} -function isSerializableTypedMessage(x) { - if (x.serializable) return true; - return isNonSerializableTypedMessageWithAlt(x); -} -/** - * This is a tree compare algorithm, may need to find a more efficient one from NPM - */ function isTypedMessageEqual(message1, message2) { - if (message1.type !== message2.type) return false; - if (message1.meta !== message2.meta) return false; - // perform a deep equal - return (0,isEqual/* default */.Z)(message1, message2); -} - - -/***/ }), - -/***/ 81790: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "V": () => (/* binding */ parseLink) -/* harmony export */ }); -/* harmony import */ var anchorme__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5670); - -function parseLink(text) { - // ESM-CJS cooperation - const parsed = anchorme__WEBPACK_IMPORTED_MODULE_0__/* ["default"].list */ .Z.list(text); - const result = []; - let start = 0; - for (const x1 of parsed){ - if (x1.isURL) { - result.push({ - type: 'text', - content: text.slice(start, x1.start) - }); - result.push({ - type: 'link', - content: x1.string, - category: 'normal' - }); - } else { - result.push({ - type: 'text', - content: text.slice(start, x1.end) - }); - } - start = x1.end; - } - result.push({ - type: 'text', - content: text.slice(start, text.length) - }); - return result.filter((x)=>x.content - ).flatMap((x)=>x.type === 'text' ? parseTag(x.content) : x - ); -} -const TagLike = /([#$@][\w\-]+)/g; -const map = { - '@': 'user', - '#': 'hash', - $: 'cash' -}; -function parseTag(x2) { - return x2.split(TagLike).map((x)=>TagLike.test(x) ? { - type: 'link', - content: x, - category: map[x[0]] || 'normal' - } : { - type: 'text', - content: x - } - ); -} - - -/***/ }), - -/***/ 80246: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "I": () => (/* binding */ visitEachTypedMessageChild) -/* harmony export */ }); -/* harmony import */ var _core_index_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90323); -/* harmony import */ var _utils_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(72542); -/* harmony import */ var _extension_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(25114); - - - -function visitEachTypedMessageChild(node, visitor, context) { - if ((0,_core_index_js__WEBPACK_IMPORTED_MODULE_0__/* .isTypedMessageTuple */ .bZ)(node)) { - const after = node.items.flatMap((x)=>{ - const next = visitor(x, context); - if ((0,_core_index_js__WEBPACK_IMPORTED_MODULE_0__/* .isTypedMessageTuple */ .bZ)(next)) return next.items; - return next; - }); - if (after.every(_utils_index_js__WEBPACK_IMPORTED_MODULE_1__/* .isSerializableTypedMessage */ .fV)) { - return (0,_core_index_js__WEBPACK_IMPORTED_MODULE_0__/* .makeTypedMessageTupleSerializable */ .kT)(after, node.meta); - } - return (0,_core_index_js__WEBPACK_IMPORTED_MODULE_0__/* .makeTypedMessageTuple */ .Zw)(after, node.meta); - } else if ((0,_core_index_js__WEBPACK_IMPORTED_MODULE_0__/* .isTypedMessagePromise */ .KV)(node)) { - // we ignore alt if promise is resolved. - if (node.promise.value) return visitor(node.promise.value, context); - else if (node.alt) return (0,_core_index_js__WEBPACK_IMPORTED_MODULE_0__/* .makeTypedMessagePromise */ .Ng)(node.promise, visitor(node.alt, context)); - return node; - } else if ((0,_extension_index_js__WEBPACK_IMPORTED_MODULE_2__/* .isTypedMessageMaskPayload */ .$6)(node)) { - const next = visitor(node.message, context); - return (0,_extension_index_js__WEBPACK_IMPORTED_MODULE_2__/* .makeTypedMessageMaskPayload */ .Jq)(next, node.meta); - } else if ((0,_utils_index_js__WEBPACK_IMPORTED_MODULE_1__/* .isNonSerializableTypedMessageWithAlt */ .c3)(node)) { - const alt = visitor(node.alt, context); - if (!(0,_utils_index_js__WEBPACK_IMPORTED_MODULE_1__/* .isSerializableTypedMessage */ .fV)(alt)) { - console.warn('[@masknet/typed-message] You must return a serializable message in this position. Original:', node, 'Transformed child "alt":', alt); - // ignore the transform result - return node; - } - return { - ...node, - alt - }; - } else { - // return node with no child - return node; - } -} - - -/***/ }), - -/***/ 92820: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "GI": () => (/* binding */ TokenPrice), -/* harmony export */ "Nn": () => (/* binding */ OpenSea), -/* harmony export */ "S5": () => (/* binding */ RSS3), -/* harmony export */ "bC": () => (/* binding */ Explorer), -/* harmony export */ "bb": () => (/* reexport safe */ _opensea_utils__WEBPACK_IMPORTED_MODULE_13__.bb), -/* harmony export */ "cl": () => (/* binding */ KeyValue), -/* harmony export */ "e": () => (/* binding */ GoPlusLabs), -/* harmony export */ "e8": () => (/* binding */ Rarible), -/* harmony export */ "eE": () => (/* binding */ Zora), -/* harmony export */ "jo": () => (/* binding */ NFTScan), -/* harmony export */ "mr": () => (/* binding */ Instagram), -/* harmony export */ "no": () => (/* binding */ TokenList), -/* harmony export */ "oD": () => (/* binding */ CoinGecko), -/* harmony export */ "q7": () => (/* binding */ NextIDProof), -/* harmony export */ "t9": () => (/* reexport safe */ _hooks__WEBPACK_IMPORTED_MODULE_12__.t), -/* harmony export */ "tL": () => (/* binding */ Twitter), -/* harmony export */ "x4": () => (/* reexport safe */ _types__WEBPACK_IMPORTED_MODULE_11__.x) -/* harmony export */ }); -/* unused harmony export NextIDStorage */ -/* harmony import */ var _coingecko__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(50443); -/* harmony import */ var _opensea__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(89703); -/* harmony import */ var _rarible__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(35825); -/* harmony import */ var _NFTScan__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(71607); -/* harmony import */ var _zora__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(34049); -/* harmony import */ var _explorer__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(89958); -/* harmony import */ var _rss3__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(43568); -/* harmony import */ var _kv__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(58106); -/* harmony import */ var _twitter__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(79863); -/* harmony import */ var _token_list__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(70809); -/* harmony import */ var _token_price__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(95624); -/* harmony import */ var _instagram__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(59654); -/* harmony import */ var _gopluslabs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(56525); -/* harmony import */ var _NextID__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(64242); -/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(41054); -/* harmony import */ var _hooks__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(9030); -/* harmony import */ var _opensea_utils__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(80529); -/* harmony import */ var _debank__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(97051); - - - - - - - - - - - - - - - - - - -const OpenSea = new _opensea__WEBPACK_IMPORTED_MODULE_0__/* .OpenSeaAPI */ .rQ(); -const Rarible = new _rarible__WEBPACK_IMPORTED_MODULE_1__/* .RaribleAPI */ .I(); -const NFTScan = new _NFTScan__WEBPACK_IMPORTED_MODULE_2__/* .NFTScanAPI */ .Ur(); -const Zora = new _zora__WEBPACK_IMPORTED_MODULE_3__/* .ZoraAPI */ .c(); -const CoinGecko = new _coingecko__WEBPACK_IMPORTED_MODULE_14__/* .CoinGeckoAPI */ .J(); -const Explorer = new _explorer__WEBPACK_IMPORTED_MODULE_4__/* .NativeExplorerAPI */ .b(); -const RSS3 = new _rss3__WEBPACK_IMPORTED_MODULE_5__/* .RSS3API */ .M(); -const KeyValue = new _kv__WEBPACK_IMPORTED_MODULE_6__/* .KeyValueAPI */ .Z(); -const Twitter = new _twitter__WEBPACK_IMPORTED_MODULE_7__/* .TwitterAPI */ .I(); -const Instagram = new _instagram__WEBPACK_IMPORTED_MODULE_15__/* .InstagramAPI */ .l(); -const GoPlusLabs = new _gopluslabs__WEBPACK_IMPORTED_MODULE_9__/* .GoPlusLabsAPI */ .g(); -const TokenList = new _token_list__WEBPACK_IMPORTED_MODULE_8__/* .TokenListAPI */ .U(); -const TokenPrice = new _token_price__WEBPACK_IMPORTED_MODULE_16__/* .TokenPriceAPI */ .J(); -const NextIDStorage = new _NextID__WEBPACK_IMPORTED_MODULE_10__/* .NextIDStorageAPI */ .I(); -const NextIDProof = new _NextID__WEBPACK_IMPORTED_MODULE_10__/* .NextIDProofAPI */ .N(); -// Method for provider proxy - - - - - - -/***/ }), - -/***/ 47855: -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "Cq": () => (/* reexport safe */ _nonNull_js__WEBPACK_IMPORTED_MODULE_2__.C), -/* harmony export */ "P": () => (/* reexport safe */ _control_flow_js__WEBPACK_IMPORTED_MODULE_0__.P), -/* harmony export */ "Yl": () => (/* reexport safe */ _enum_js__WEBPACK_IMPORTED_MODULE_1__.Y), -/* harmony export */ "t1": () => (/* reexport safe */ _control_flow_js__WEBPACK_IMPORTED_MODULE_0__.t) -/* harmony export */ }); -/* harmony import */ var _control_flow_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(74221); -/* harmony import */ var _enum_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(75961); -/* harmony import */ var _nonNull_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(75869); - - - -//# sourceMappingURL=index.js.map - -/***/ }), - -/***/ 75869: -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "C": () => (/* binding */ assertNonNull) -/* harmony export */ }); -/* unused harmony export isNonNull */ -function assertNonNull(val, message = 'Unexpected nil value detected') { - if (val === null || val === undefined) - throw new Error(message); - return val; -} -function isNonNull(x) { - return x !== undefined && x !== null; -} -//# sourceMappingURL=nonNull.js.map - -/***/ }), - -/***/ 47162: -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "V": () => (/* binding */ abortSignalTimeout) -/* harmony export */ }); -function abortSignalTimeout(ms) { - const x = new AbortController(); - setTimeout(() => x.abort(), ms); - return x.signal; -} -//# sourceMappingURL=abortSignalTimeout.js.map - -/***/ }) - -}]); \ No newline at end of file diff --git a/DevelopmentPod/MaskbookPlugin/maskbook/js/5161.js b/DevelopmentPod/MaskbookPlugin/maskbook/js/6445.js similarity index 61% rename from DevelopmentPod/MaskbookPlugin/maskbook/js/5161.js rename to DevelopmentPod/MaskbookPlugin/maskbook/js/6445.js index 635e5685..7b00e5e4 100644 --- a/DevelopmentPod/MaskbookPlugin/maskbook/js/5161.js +++ b/DevelopmentPod/MaskbookPlugin/maskbook/js/6445.js @@ -1,6 +1,6 @@ -(globalThis["webpackChunk_masknet_extension"] = globalThis["webpackChunk_masknet_extension"] || []).push([[5161],{ +(globalThis["webpackChunk_masknet_extension"] = globalThis["webpackChunk_masknet_extension"] || []).push([[6445],{ -/***/ 46641: +/***/ 22866: /***/ ((module) => { function _assertThisInitialized(self) { @@ -15,7 +15,7 @@ module.exports = _assertThisInitialized, module.exports.__esModule = true, modul /***/ }), -/***/ 65765: +/***/ 61576: /***/ ((module) => { function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { @@ -58,7 +58,7 @@ module.exports = _asyncToGenerator, module.exports.__esModule = true, module.exp /***/ }), -/***/ 68566: +/***/ 33250: /***/ ((module) => { function _classCallCheck(instance, Constructor) { @@ -71,7 +71,7 @@ module.exports = _classCallCheck, module.exports.__esModule = true, module.expor /***/ }), -/***/ 23539: +/***/ 96840: /***/ ((module) => { function _defineProperties(target, props) { @@ -97,7 +97,7 @@ module.exports = _createClass, module.exports.__esModule = true, module.exports[ /***/ }), -/***/ 21618: +/***/ 24752: /***/ ((module) => { function _getPrototypeOf(o) { @@ -111,24 +111,24 @@ module.exports = _getPrototypeOf, module.exports.__esModule = true, module.expor /***/ }), -/***/ 71212: +/***/ 31190: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { -var setPrototypeOf = __webpack_require__(84837); +var setPrototypeOf = __webpack_require__(37550); function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + writable: true, + configurable: true + } + }); Object.defineProperty(subClass, "prototype", { - value: Object.create(superClass && superClass.prototype, { - constructor: { - value: subClass, - writable: true, - configurable: true - } - }), writable: false }); if (superClass) setPrototypeOf(subClass, superClass); @@ -138,7 +138,7 @@ module.exports = _inherits, module.exports.__esModule = true, module.exports["de /***/ }), -/***/ 45914: +/***/ 89837: /***/ ((module) => { function _interopRequireDefault(obj) { @@ -151,12 +151,12 @@ module.exports = _interopRequireDefault, module.exports.__esModule = true, modul /***/ }), -/***/ 95056: +/***/ 76707: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { -var _typeof = (__webpack_require__(40018)["default"]); +var _typeof = (__webpack_require__(75684)["default"]); -var assertThisInitialized = __webpack_require__(46641); +var assertThisInitialized = __webpack_require__(22866); function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { @@ -172,7 +172,7 @@ module.exports = _possibleConstructorReturn, module.exports.__esModule = true, m /***/ }), -/***/ 84837: +/***/ 37550: /***/ ((module) => { function _setPrototypeOf(o, p) { @@ -187,7 +187,7 @@ module.exports = _setPrototypeOf, module.exports.__esModule = true, module.expor /***/ }), -/***/ 40018: +/***/ 75684: /***/ ((module) => { function _typeof(obj) { @@ -204,25 +204,12 @@ module.exports = _typeof, module.exports.__esModule = true, module.exports["defa /***/ }), -/***/ 54238: +/***/ 62699: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { module.exports = __webpack_require__(96319); -/***/ }), - -/***/ 89837: -/***/ ((module) => { - -function _interopRequireDefault(obj) { - return obj && obj.__esModule ? obj : { - "default": obj - }; -} - -module.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports["default"] = module.exports; - /***/ }), /***/ 20227: @@ -1191,8 +1178,8 @@ __webpack_require__.d(__webpack_exports__, { // EXTERNAL MODULE: ../../node_modules/.pnpm/@ethersproject+bytes@5.4.0/node_modules/@ethersproject/bytes/lib.esm/index.js + 1 modules var lib_esm = __webpack_require__(5241); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@ethersproject+bignumber@5.4.1/node_modules/@ethersproject/bignumber/lib.esm/bignumber.js + 1 modules -var bignumber = __webpack_require__(84757); +// EXTERNAL MODULE: ../../node_modules/.pnpm/@ethersproject+bignumber@5.6.0/node_modules/@ethersproject/bignumber/lib.esm/bignumber.js +var bignumber = __webpack_require__(6619); // EXTERNAL MODULE: ../../node_modules/.pnpm/@ethersproject+keccak256@5.4.0/node_modules/@ethersproject/keccak256/lib.esm/index.js var keccak256_lib_esm = __webpack_require__(69614); // EXTERNAL MODULE: ../../node_modules/.pnpm/@ethersproject+rlp@5.4.0/node_modules/@ethersproject/rlp/lib.esm/index.js + 1 modules @@ -1354,8 +1341,8 @@ __webpack_require__.d(__webpack_exports__, { // EXTERNAL MODULE: ../../node_modules/.pnpm/@ethersproject+bytes@5.6.1/node_modules/@ethersproject/bytes/lib.esm/index.js + 1 modules var lib_esm = __webpack_require__(99376); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@ethersproject+bignumber@5.6.0/node_modules/@ethersproject/bignumber/lib.esm/bignumber.js + 1 modules -var bignumber = __webpack_require__(39554); +// EXTERNAL MODULE: ../../node_modules/.pnpm/@ethersproject+bignumber@5.6.0/node_modules/@ethersproject/bignumber/lib.esm/bignumber.js +var bignumber = __webpack_require__(6619); // EXTERNAL MODULE: ../../node_modules/.pnpm/@ethersproject+keccak256@5.6.0/node_modules/@ethersproject/keccak256/lib.esm/index.js var keccak256_lib_esm = __webpack_require__(88510); // EXTERNAL MODULE: ../../node_modules/.pnpm/@ethersproject+logger@5.6.0/node_modules/@ethersproject/logger/lib.esm/index.js + 1 modules @@ -1501,673 +1488,6 @@ function getCreate2Address(from, salt, initCodeHash) { /***/ }), -/***/ 84757: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; - -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - "O$": () => (/* binding */ BigNumber), - "t2": () => (/* binding */ _base16To36), - "g$": () => (/* binding */ _base36To16) -}); - -// UNUSED EXPORTS: isBigNumberish - -// EXTERNAL MODULE: ../../node_modules/.pnpm/bn.js@4.12.0/node_modules/bn.js/lib/bn.js -var bn = __webpack_require__(28891); -var bn_default = /*#__PURE__*/__webpack_require__.n(bn); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@ethersproject+bytes@5.5.0/node_modules/@ethersproject/bytes/lib.esm/index.js + 1 modules -var lib_esm = __webpack_require__(61115); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@ethersproject+logger@5.4.0/node_modules/@ethersproject/logger/lib.esm/index.js + 1 modules -var logger_lib_esm = __webpack_require__(281); -;// CONCATENATED MODULE: ../../node_modules/.pnpm/@ethersproject+bignumber@5.4.1/node_modules/@ethersproject/bignumber/lib.esm/_version.js -const version = "bignumber/5.4.1"; -//# sourceMappingURL=_version.js.map -;// CONCATENATED MODULE: ../../node_modules/.pnpm/@ethersproject+bignumber@5.4.1/node_modules/@ethersproject/bignumber/lib.esm/bignumber.js - -/** - * BigNumber - * - * A wrapper around the BN.js object. We use the BN.js library - * because it is used by elliptic, so it is required regardless. - * - */ - -var BN = (bn_default()).BN; - - - -const logger = new logger_lib_esm/* Logger */.Yd(version); -const _constructorGuard = {}; -const MAX_SAFE = 0x1fffffffffffff; -function isBigNumberish(value) { - return (value != null) && (BigNumber.isBigNumber(value) || - (typeof (value) === "number" && (value % 1) === 0) || - (typeof (value) === "string" && !!value.match(/^-?[0-9]+$/)) || - isHexString(value) || - (typeof (value) === "bigint") || - isBytes(value)); -} -// Only warn about passing 10 into radix once -let _warnedToStringRadix = false; -class BigNumber { - constructor(constructorGuard, hex) { - logger.checkNew(new.target, BigNumber); - if (constructorGuard !== _constructorGuard) { - logger.throwError("cannot call constructor directly; use BigNumber.from", logger_lib_esm/* Logger.errors.UNSUPPORTED_OPERATION */.Yd.errors.UNSUPPORTED_OPERATION, { - operation: "new (BigNumber)" - }); - } - this._hex = hex; - this._isBigNumber = true; - Object.freeze(this); - } - fromTwos(value) { - return toBigNumber(toBN(this).fromTwos(value)); - } - toTwos(value) { - return toBigNumber(toBN(this).toTwos(value)); - } - abs() { - if (this._hex[0] === "-") { - return BigNumber.from(this._hex.substring(1)); - } - return this; - } - add(other) { - return toBigNumber(toBN(this).add(toBN(other))); - } - sub(other) { - return toBigNumber(toBN(this).sub(toBN(other))); - } - div(other) { - const o = BigNumber.from(other); - if (o.isZero()) { - throwFault("division by zero", "div"); - } - return toBigNumber(toBN(this).div(toBN(other))); - } - mul(other) { - return toBigNumber(toBN(this).mul(toBN(other))); - } - mod(other) { - const value = toBN(other); - if (value.isNeg()) { - throwFault("cannot modulo negative values", "mod"); - } - return toBigNumber(toBN(this).umod(value)); - } - pow(other) { - const value = toBN(other); - if (value.isNeg()) { - throwFault("cannot raise to negative values", "pow"); - } - return toBigNumber(toBN(this).pow(value)); - } - and(other) { - const value = toBN(other); - if (this.isNegative() || value.isNeg()) { - throwFault("cannot 'and' negative values", "and"); - } - return toBigNumber(toBN(this).and(value)); - } - or(other) { - const value = toBN(other); - if (this.isNegative() || value.isNeg()) { - throwFault("cannot 'or' negative values", "or"); - } - return toBigNumber(toBN(this).or(value)); - } - xor(other) { - const value = toBN(other); - if (this.isNegative() || value.isNeg()) { - throwFault("cannot 'xor' negative values", "xor"); - } - return toBigNumber(toBN(this).xor(value)); - } - mask(value) { - if (this.isNegative() || value < 0) { - throwFault("cannot mask negative values", "mask"); - } - return toBigNumber(toBN(this).maskn(value)); - } - shl(value) { - if (this.isNegative() || value < 0) { - throwFault("cannot shift negative values", "shl"); - } - return toBigNumber(toBN(this).shln(value)); - } - shr(value) { - if (this.isNegative() || value < 0) { - throwFault("cannot shift negative values", "shr"); - } - return toBigNumber(toBN(this).shrn(value)); - } - eq(other) { - return toBN(this).eq(toBN(other)); - } - lt(other) { - return toBN(this).lt(toBN(other)); - } - lte(other) { - return toBN(this).lte(toBN(other)); - } - gt(other) { - return toBN(this).gt(toBN(other)); - } - gte(other) { - return toBN(this).gte(toBN(other)); - } - isNegative() { - return (this._hex[0] === "-"); - } - isZero() { - return toBN(this).isZero(); - } - toNumber() { - try { - return toBN(this).toNumber(); - } - catch (error) { - throwFault("overflow", "toNumber", this.toString()); - } - return null; - } - toBigInt() { - try { - return BigInt(this.toString()); - } - catch (e) { } - return logger.throwError("this platform does not support BigInt", logger_lib_esm/* Logger.errors.UNSUPPORTED_OPERATION */.Yd.errors.UNSUPPORTED_OPERATION, { - value: this.toString() - }); - } - toString() { - // Lots of people expect this, which we do not support, so check (See: #889) - if (arguments.length > 0) { - if (arguments[0] === 10) { - if (!_warnedToStringRadix) { - _warnedToStringRadix = true; - logger.warn("BigNumber.toString does not accept any parameters; base-10 is assumed"); - } - } - else if (arguments[0] === 16) { - logger.throwError("BigNumber.toString does not accept any parameters; use bigNumber.toHexString()", logger_lib_esm/* Logger.errors.UNEXPECTED_ARGUMENT */.Yd.errors.UNEXPECTED_ARGUMENT, {}); - } - else { - logger.throwError("BigNumber.toString does not accept parameters", logger_lib_esm/* Logger.errors.UNEXPECTED_ARGUMENT */.Yd.errors.UNEXPECTED_ARGUMENT, {}); - } - } - return toBN(this).toString(10); - } - toHexString() { - return this._hex; - } - toJSON(key) { - return { type: "BigNumber", hex: this.toHexString() }; - } - static from(value) { - if (value instanceof BigNumber) { - return value; - } - if (typeof (value) === "string") { - if (value.match(/^-?0x[0-9a-f]+$/i)) { - return new BigNumber(_constructorGuard, toHex(value)); - } - if (value.match(/^-?[0-9]+$/)) { - return new BigNumber(_constructorGuard, toHex(new BN(value))); - } - return logger.throwArgumentError("invalid BigNumber string", "value", value); - } - if (typeof (value) === "number") { - if (value % 1) { - throwFault("underflow", "BigNumber.from", value); - } - if (value >= MAX_SAFE || value <= -MAX_SAFE) { - throwFault("overflow", "BigNumber.from", value); - } - return BigNumber.from(String(value)); - } - const anyValue = value; - if (typeof (anyValue) === "bigint") { - return BigNumber.from(anyValue.toString()); - } - if ((0,lib_esm/* isBytes */._t)(anyValue)) { - return BigNumber.from((0,lib_esm/* hexlify */.Dv)(anyValue)); - } - if (anyValue) { - // Hexable interface (takes piority) - if (anyValue.toHexString) { - const hex = anyValue.toHexString(); - if (typeof (hex) === "string") { - return BigNumber.from(hex); - } - } - else { - // For now, handle legacy JSON-ified values (goes away in v6) - let hex = anyValue._hex; - // New-form JSON - if (hex == null && anyValue.type === "BigNumber") { - hex = anyValue.hex; - } - if (typeof (hex) === "string") { - if ((0,lib_esm/* isHexString */.A7)(hex) || (hex[0] === "-" && (0,lib_esm/* isHexString */.A7)(hex.substring(1)))) { - return BigNumber.from(hex); - } - } - } - } - return logger.throwArgumentError("invalid BigNumber value", "value", value); - } - static isBigNumber(value) { - return !!(value && value._isBigNumber); - } -} -// Normalize the hex string -function toHex(value) { - // For BN, call on the hex string - if (typeof (value) !== "string") { - return toHex(value.toString(16)); - } - // If negative, prepend the negative sign to the normalized positive value - if (value[0] === "-") { - // Strip off the negative sign - value = value.substring(1); - // Cannot have mulitple negative signs (e.g. "--0x04") - if (value[0] === "-") { - logger.throwArgumentError("invalid hex", "value", value); - } - // Call toHex on the positive component - value = toHex(value); - // Do not allow "-0x00" - if (value === "0x00") { - return value; - } - // Negate the value - return "-" + value; - } - // Add a "0x" prefix if missing - if (value.substring(0, 2) !== "0x") { - value = "0x" + value; - } - // Normalize zero - if (value === "0x") { - return "0x00"; - } - // Make the string even length - if (value.length % 2) { - value = "0x0" + value.substring(2); - } - // Trim to smallest even-length string - while (value.length > 4 && value.substring(0, 4) === "0x00") { - value = "0x" + value.substring(4); - } - return value; -} -function toBigNumber(value) { - return BigNumber.from(toHex(value)); -} -function toBN(value) { - const hex = BigNumber.from(value).toHexString(); - if (hex[0] === "-") { - return (new BN("-" + hex.substring(3), 16)); - } - return new BN(hex.substring(2), 16); -} -function throwFault(fault, operation, value) { - const params = { fault: fault, operation: operation }; - if (value != null) { - params.value = value; - } - return logger.throwError(fault, logger_lib_esm/* Logger.errors.NUMERIC_FAULT */.Yd.errors.NUMERIC_FAULT, params); -} -// value should have no prefix -function _base36To16(value) { - return (new BN(value, 36)).toString(16); -} -// value should have no prefix -function _base16To36(value) { - return (new BN(value, 16)).toString(36); -} -//# sourceMappingURL=bignumber.js.map - -/***/ }), - -/***/ 39554: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; - -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - "O$": () => (/* binding */ BigNumber), - "g$": () => (/* binding */ _base36To16) -}); - -// UNUSED EXPORTS: _base16To36, isBigNumberish - -// EXTERNAL MODULE: ../../node_modules/.pnpm/bn.js@4.12.0/node_modules/bn.js/lib/bn.js -var bn = __webpack_require__(28891); -var bn_default = /*#__PURE__*/__webpack_require__.n(bn); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@ethersproject+bytes@5.6.1/node_modules/@ethersproject/bytes/lib.esm/index.js + 1 modules -var lib_esm = __webpack_require__(99376); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@ethersproject+logger@5.6.0/node_modules/@ethersproject/logger/lib.esm/index.js + 1 modules -var logger_lib_esm = __webpack_require__(58450); -;// CONCATENATED MODULE: ../../node_modules/.pnpm/@ethersproject+bignumber@5.6.0/node_modules/@ethersproject/bignumber/lib.esm/_version.js -const version = "bignumber/5.6.0"; -//# sourceMappingURL=_version.js.map -;// CONCATENATED MODULE: ../../node_modules/.pnpm/@ethersproject+bignumber@5.6.0/node_modules/@ethersproject/bignumber/lib.esm/bignumber.js - -/** - * BigNumber - * - * A wrapper around the BN.js object. We use the BN.js library - * because it is used by elliptic, so it is required regardless. - * - */ - -var BN = (bn_default()).BN; - - - -const logger = new logger_lib_esm/* Logger */.Yd(version); -const _constructorGuard = {}; -const MAX_SAFE = 0x1fffffffffffff; -function isBigNumberish(value) { - return (value != null) && (BigNumber.isBigNumber(value) || - (typeof (value) === "number" && (value % 1) === 0) || - (typeof (value) === "string" && !!value.match(/^-?[0-9]+$/)) || - isHexString(value) || - (typeof (value) === "bigint") || - isBytes(value)); -} -// Only warn about passing 10 into radix once -let _warnedToStringRadix = false; -class BigNumber { - constructor(constructorGuard, hex) { - logger.checkNew(new.target, BigNumber); - if (constructorGuard !== _constructorGuard) { - logger.throwError("cannot call constructor directly; use BigNumber.from", logger_lib_esm/* Logger.errors.UNSUPPORTED_OPERATION */.Yd.errors.UNSUPPORTED_OPERATION, { - operation: "new (BigNumber)" - }); - } - this._hex = hex; - this._isBigNumber = true; - Object.freeze(this); - } - fromTwos(value) { - return toBigNumber(toBN(this).fromTwos(value)); - } - toTwos(value) { - return toBigNumber(toBN(this).toTwos(value)); - } - abs() { - if (this._hex[0] === "-") { - return BigNumber.from(this._hex.substring(1)); - } - return this; - } - add(other) { - return toBigNumber(toBN(this).add(toBN(other))); - } - sub(other) { - return toBigNumber(toBN(this).sub(toBN(other))); - } - div(other) { - const o = BigNumber.from(other); - if (o.isZero()) { - throwFault("division-by-zero", "div"); - } - return toBigNumber(toBN(this).div(toBN(other))); - } - mul(other) { - return toBigNumber(toBN(this).mul(toBN(other))); - } - mod(other) { - const value = toBN(other); - if (value.isNeg()) { - throwFault("division-by-zero", "mod"); - } - return toBigNumber(toBN(this).umod(value)); - } - pow(other) { - const value = toBN(other); - if (value.isNeg()) { - throwFault("negative-power", "pow"); - } - return toBigNumber(toBN(this).pow(value)); - } - and(other) { - const value = toBN(other); - if (this.isNegative() || value.isNeg()) { - throwFault("unbound-bitwise-result", "and"); - } - return toBigNumber(toBN(this).and(value)); - } - or(other) { - const value = toBN(other); - if (this.isNegative() || value.isNeg()) { - throwFault("unbound-bitwise-result", "or"); - } - return toBigNumber(toBN(this).or(value)); - } - xor(other) { - const value = toBN(other); - if (this.isNegative() || value.isNeg()) { - throwFault("unbound-bitwise-result", "xor"); - } - return toBigNumber(toBN(this).xor(value)); - } - mask(value) { - if (this.isNegative() || value < 0) { - throwFault("negative-width", "mask"); - } - return toBigNumber(toBN(this).maskn(value)); - } - shl(value) { - if (this.isNegative() || value < 0) { - throwFault("negative-width", "shl"); - } - return toBigNumber(toBN(this).shln(value)); - } - shr(value) { - if (this.isNegative() || value < 0) { - throwFault("negative-width", "shr"); - } - return toBigNumber(toBN(this).shrn(value)); - } - eq(other) { - return toBN(this).eq(toBN(other)); - } - lt(other) { - return toBN(this).lt(toBN(other)); - } - lte(other) { - return toBN(this).lte(toBN(other)); - } - gt(other) { - return toBN(this).gt(toBN(other)); - } - gte(other) { - return toBN(this).gte(toBN(other)); - } - isNegative() { - return (this._hex[0] === "-"); - } - isZero() { - return toBN(this).isZero(); - } - toNumber() { - try { - return toBN(this).toNumber(); - } - catch (error) { - throwFault("overflow", "toNumber", this.toString()); - } - return null; - } - toBigInt() { - try { - return BigInt(this.toString()); - } - catch (e) { } - return logger.throwError("this platform does not support BigInt", logger_lib_esm/* Logger.errors.UNSUPPORTED_OPERATION */.Yd.errors.UNSUPPORTED_OPERATION, { - value: this.toString() - }); - } - toString() { - // Lots of people expect this, which we do not support, so check (See: #889) - if (arguments.length > 0) { - if (arguments[0] === 10) { - if (!_warnedToStringRadix) { - _warnedToStringRadix = true; - logger.warn("BigNumber.toString does not accept any parameters; base-10 is assumed"); - } - } - else if (arguments[0] === 16) { - logger.throwError("BigNumber.toString does not accept any parameters; use bigNumber.toHexString()", logger_lib_esm/* Logger.errors.UNEXPECTED_ARGUMENT */.Yd.errors.UNEXPECTED_ARGUMENT, {}); - } - else { - logger.throwError("BigNumber.toString does not accept parameters", logger_lib_esm/* Logger.errors.UNEXPECTED_ARGUMENT */.Yd.errors.UNEXPECTED_ARGUMENT, {}); - } - } - return toBN(this).toString(10); - } - toHexString() { - return this._hex; - } - toJSON(key) { - return { type: "BigNumber", hex: this.toHexString() }; - } - static from(value) { - if (value instanceof BigNumber) { - return value; - } - if (typeof (value) === "string") { - if (value.match(/^-?0x[0-9a-f]+$/i)) { - return new BigNumber(_constructorGuard, toHex(value)); - } - if (value.match(/^-?[0-9]+$/)) { - return new BigNumber(_constructorGuard, toHex(new BN(value))); - } - return logger.throwArgumentError("invalid BigNumber string", "value", value); - } - if (typeof (value) === "number") { - if (value % 1) { - throwFault("underflow", "BigNumber.from", value); - } - if (value >= MAX_SAFE || value <= -MAX_SAFE) { - throwFault("overflow", "BigNumber.from", value); - } - return BigNumber.from(String(value)); - } - const anyValue = value; - if (typeof (anyValue) === "bigint") { - return BigNumber.from(anyValue.toString()); - } - if ((0,lib_esm/* isBytes */._t)(anyValue)) { - return BigNumber.from((0,lib_esm/* hexlify */.Dv)(anyValue)); - } - if (anyValue) { - // Hexable interface (takes priority) - if (anyValue.toHexString) { - const hex = anyValue.toHexString(); - if (typeof (hex) === "string") { - return BigNumber.from(hex); - } - } - else { - // For now, handle legacy JSON-ified values (goes away in v6) - let hex = anyValue._hex; - // New-form JSON - if (hex == null && anyValue.type === "BigNumber") { - hex = anyValue.hex; - } - if (typeof (hex) === "string") { - if ((0,lib_esm/* isHexString */.A7)(hex) || (hex[0] === "-" && (0,lib_esm/* isHexString */.A7)(hex.substring(1)))) { - return BigNumber.from(hex); - } - } - } - } - return logger.throwArgumentError("invalid BigNumber value", "value", value); - } - static isBigNumber(value) { - return !!(value && value._isBigNumber); - } -} -// Normalize the hex string -function toHex(value) { - // For BN, call on the hex string - if (typeof (value) !== "string") { - return toHex(value.toString(16)); - } - // If negative, prepend the negative sign to the normalized positive value - if (value[0] === "-") { - // Strip off the negative sign - value = value.substring(1); - // Cannot have multiple negative signs (e.g. "--0x04") - if (value[0] === "-") { - logger.throwArgumentError("invalid hex", "value", value); - } - // Call toHex on the positive component - value = toHex(value); - // Do not allow "-0x00" - if (value === "0x00") { - return value; - } - // Negate the value - return "-" + value; - } - // Add a "0x" prefix if missing - if (value.substring(0, 2) !== "0x") { - value = "0x" + value; - } - // Normalize zero - if (value === "0x") { - return "0x00"; - } - // Make the string even length - if (value.length % 2) { - value = "0x0" + value.substring(2); - } - // Trim to smallest even-length string - while (value.length > 4 && value.substring(0, 4) === "0x00") { - value = "0x" + value.substring(4); - } - return value; -} -function toBigNumber(value) { - return BigNumber.from(toHex(value)); -} -function toBN(value) { - const hex = BigNumber.from(value).toHexString(); - if (hex[0] === "-") { - return (new BN("-" + hex.substring(3), 16)); - } - return new BN(hex.substring(2), 16); -} -function throwFault(fault, operation, value) { - const params = { fault: fault, operation: operation }; - if (value != null) { - params.value = value; - } - return logger.throwError(fault, logger_lib_esm/* Logger.errors.NUMERIC_FAULT */.Yd.errors.NUMERIC_FAULT, params); -} -// value should have no prefix -function _base36To16(value) { - return (new BN(value, 36)).toString(16); -} -// value should have no prefix -function _base16To36(value) { - return (new BN(value, 16)).toString(36); -} -//# sourceMappingURL=bignumber.js.map - -/***/ }), - /***/ 21121: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { @@ -2179,7 +1499,7 @@ function _base16To36(value) { /* harmony export */ "tL": () => (/* binding */ NegativeOne) /* harmony export */ }); /* unused harmony exports Two, WeiPerEther, MinInt256, MaxInt256 */ -/* harmony import */ var _ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(39554); +/* harmony import */ var _ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(6619); const NegativeOne = ( /*#__PURE__*/_ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_0__/* .BigNumber.from */ .O$.from(-1)); const Zero = ( /*#__PURE__*/_ethersproject_bignumber__WEBPACK_IMPORTED_MODULE_0__/* .BigNumber.from */ .O$.from(0)); @@ -2203,7 +1523,7 @@ const MaxInt256 = ( /*#__PURE__*/(/* unused pure expression or super */ null && /* harmony export */ }); /* harmony import */ var js_sha3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(77616); /* harmony import */ var js_sha3__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(js_sha3__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _ethersproject_bytes__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(61115); +/* harmony import */ var _ethersproject_bytes__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(99376); @@ -2393,10 +1713,10 @@ __webpack_require__.d(__webpack_exports__, { "c": () => (/* binding */ encode) }); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@ethersproject+bytes@5.5.0/node_modules/@ethersproject/bytes/lib.esm/index.js + 1 modules -var lib_esm = __webpack_require__(61115); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@ethersproject+logger@5.4.0/node_modules/@ethersproject/logger/lib.esm/index.js + 1 modules -var logger_lib_esm = __webpack_require__(281); +// EXTERNAL MODULE: ../../node_modules/.pnpm/@ethersproject+bytes@5.6.1/node_modules/@ethersproject/bytes/lib.esm/index.js + 1 modules +var lib_esm = __webpack_require__(99376); +// EXTERNAL MODULE: ../../node_modules/.pnpm/@ethersproject+logger@5.6.0/node_modules/@ethersproject/logger/lib.esm/index.js + 1 modules +var logger_lib_esm = __webpack_require__(58450); ;// CONCATENATED MODULE: ../../node_modules/.pnpm/@ethersproject+rlp@5.4.0/node_modules/@ethersproject/rlp/lib.esm/_version.js const version = "rlp/5.4.0"; //# sourceMappingURL=_version.js.map @@ -2666,7 +1986,115 @@ function decode(data) { /***/ }), -/***/ 61098: +/***/ 72379: +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +"use strict"; +var __webpack_unused_export__; +/* provided dependency */ var Buffer = __webpack_require__(15313)["Buffer"]; + +__webpack_unused_export__ = ({ value: true }); +exports.g = void 0; +var http = __webpack_require__(98651); +var https = __webpack_require__(2904); +var url = __webpack_require__(51121); +var grpc_web_1 = __webpack_require__(56185); +function NodeHttpTransport() { + return function (opts) { + return new NodeHttp(opts); + }; +} +exports.g = NodeHttpTransport; +var NodeHttp = (function () { + function NodeHttp(transportOptions) { + this.options = transportOptions; + } + NodeHttp.prototype.sendMessage = function (msgBytes) { + if (!this.options.methodDefinition.requestStream && !this.options.methodDefinition.responseStream) { + this.request.setHeader("Content-Length", msgBytes.byteLength); + } + this.request.write(toBuffer(msgBytes)); + this.request.end(); + }; + NodeHttp.prototype.finishSend = function () { + }; + NodeHttp.prototype.responseCallback = function (response) { + var _this = this; + this.options.debug && console.log("NodeHttp.response", response.statusCode); + var headers = filterHeadersForUndefined(response.headers); + this.options.onHeaders(new grpc_web_1.grpc.Metadata(headers), response.statusCode); + response.on("data", function (chunk) { + _this.options.debug && console.log("NodeHttp.data", chunk); + _this.options.onChunk(toArrayBuffer(chunk)); + }); + response.on("end", function () { + _this.options.debug && console.log("NodeHttp.end"); + _this.options.onEnd(); + }); + }; + ; + NodeHttp.prototype.start = function (metadata) { + var _this = this; + var headers = {}; + metadata.forEach(function (key, values) { + headers[key] = values.join(", "); + }); + var parsedUrl = url.parse(this.options.url); + var httpOptions = { + host: parsedUrl.hostname, + port: parsedUrl.port ? parseInt(parsedUrl.port) : undefined, + path: parsedUrl.path, + headers: headers, + method: "POST" + }; + if (parsedUrl.protocol === "https:") { + this.request = https.request(httpOptions, this.responseCallback.bind(this)); + } + else { + this.request = http.request(httpOptions, this.responseCallback.bind(this)); + } + this.request.on("error", function (err) { + _this.options.debug && console.log("NodeHttp.error", err); + _this.options.onEnd(err); + }); + }; + NodeHttp.prototype.cancel = function () { + this.options.debug && console.log("NodeHttp.abort"); + this.request.abort(); + }; + return NodeHttp; +}()); +function filterHeadersForUndefined(headers) { + var filteredHeaders = {}; + for (var key in headers) { + var value = headers[key]; + if (headers.hasOwnProperty(key)) { + if (value !== undefined) { + filteredHeaders[key] = value; + } + } + } + return filteredHeaders; +} +function toArrayBuffer(buf) { + var view = new Uint8Array(buf.length); + for (var i = 0; i < buf.length; i++) { + view[i] = buf[i]; + } + return view; +} +function toBuffer(ab) { + var buf = Buffer.alloc(ab.byteLength); + for (var i = 0; i < buf.length; i++) { + buf[i] = ab[i]; + } + return buf; +} +//# sourceMappingURL=index.js.map + +/***/ }), + +/***/ 80875: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; @@ -2680,36 +2108,36 @@ __webpack_require__.d(__webpack_exports__, { var objectWithoutPropertiesLoose = __webpack_require__(2633); // EXTERNAL MODULE: ../../node_modules/.pnpm/@babel+runtime@7.17.9/node_modules/@babel/runtime/helpers/esm/extends.js var esm_extends = __webpack_require__(51911); -// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.0.0/node_modules/react/index.js -var react = __webpack_require__(86248); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.6.1_1376d0c029fe63cac75d7e36fe4212f4/node_modules/@mui/material/utils/capitalize.js -var capitalize = __webpack_require__(39025); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.6.1_1376d0c029fe63cac75d7e36fe4212f4/node_modules/@mui/material/utils/useId.js -var useId = __webpack_require__(1754); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+base@5.0.0-alpha.76_31fee5138b61bcdeb416e3946f47cd38/node_modules/@mui/base/composeClasses/composeClasses.js -var composeClasses = __webpack_require__(44007); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.6.1_1376d0c029fe63cac75d7e36fe4212f4/node_modules/@mui/material/styles/styled.js -var styled = __webpack_require__(32831); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.6.1_1376d0c029fe63cac75d7e36fe4212f4/node_modules/@mui/material/styles/useThemeProps.js -var useThemeProps = __webpack_require__(88516); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.6.1_1376d0c029fe63cac75d7e36fe4212f4/node_modules/@mui/material/Button/Button.js -var Button = __webpack_require__(37731); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.6.1_1376d0c029fe63cac75d7e36fe4212f4/node_modules/@mui/material/CircularProgress/CircularProgress.js + 1 modules -var CircularProgress = __webpack_require__(98354); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+base@5.0.0-alpha.76_31fee5138b61bcdeb416e3946f47cd38/node_modules/@mui/base/generateUtilityClass/generateUtilityClass.js -var generateUtilityClass = __webpack_require__(72755); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+base@5.0.0-alpha.76_31fee5138b61bcdeb416e3946f47cd38/node_modules/@mui/base/generateUtilityClasses/generateUtilityClasses.js -var generateUtilityClasses = __webpack_require__(94282); -;// CONCATENATED MODULE: ../../node_modules/.pnpm/@mui+lab@5.0.0-alpha.77_594218741661fc54915c073d63b4aa87/node_modules/@mui/lab/LoadingButton/loadingButtonClasses.js +// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.1.0/node_modules/react/index.js +var react = __webpack_require__(58757); +// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.8.0_4xriuibr7qayay6mzcpq5f43me/node_modules/@mui/material/utils/capitalize.js +var capitalize = __webpack_require__(62927); +// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.8.0_4xriuibr7qayay6mzcpq5f43me/node_modules/@mui/material/utils/useId.js +var useId = __webpack_require__(83837); +// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+utils@5.8.0_react@18.1.0/node_modules/@mui/utils/esm/composeClasses/composeClasses.js +var composeClasses = __webpack_require__(54455); +// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.8.0_4xriuibr7qayay6mzcpq5f43me/node_modules/@mui/material/styles/styled.js +var styled = __webpack_require__(35878); +// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.8.0_4xriuibr7qayay6mzcpq5f43me/node_modules/@mui/material/styles/useThemeProps.js +var useThemeProps = __webpack_require__(96719); +// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.8.0_4xriuibr7qayay6mzcpq5f43me/node_modules/@mui/material/Button/Button.js +var Button = __webpack_require__(85792); +// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.8.0_4xriuibr7qayay6mzcpq5f43me/node_modules/@mui/material/CircularProgress/CircularProgress.js + 1 modules +var CircularProgress = __webpack_require__(69314); +// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+utils@5.8.0_react@18.1.0/node_modules/@mui/utils/esm/generateUtilityClass/generateUtilityClass.js +var generateUtilityClass = __webpack_require__(15853); +// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+utils@5.8.0_react@18.1.0/node_modules/@mui/utils/esm/generateUtilityClasses/generateUtilityClasses.js +var generateUtilityClasses = __webpack_require__(52062); +;// CONCATENATED MODULE: ../../node_modules/.pnpm/@mui+lab@5.0.0-alpha.82_ygk7qgdlnpugkmqdrmzyce476m/node_modules/@mui/lab/LoadingButton/loadingButtonClasses.js function getLoadingButtonUtilityClass(slot) { return (0,generateUtilityClass/* default */.Z)('MuiLoadingButton', slot); } const loadingButtonClasses = (0,generateUtilityClasses/* default */.Z)('MuiLoadingButton', ['root', 'loading', 'loadingIndicator', 'loadingIndicatorCenter', 'loadingIndicatorStart', 'loadingIndicatorEnd', 'endIconLoadingEnd', 'startIconLoadingStart']); /* harmony default export */ const LoadingButton_loadingButtonClasses = (loadingButtonClasses); -// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.0.0/node_modules/react/jsx-runtime.js -var jsx_runtime = __webpack_require__(71999); -;// CONCATENATED MODULE: ../../node_modules/.pnpm/@mui+lab@5.0.0-alpha.77_594218741661fc54915c073d63b4aa87/node_modules/@mui/lab/LoadingButton/LoadingButton.js +// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.1.0/node_modules/react/jsx-runtime.js +var jsx_runtime = __webpack_require__(35667); +;// CONCATENATED MODULE: ../../node_modules/.pnpm/@mui+lab@5.0.0-alpha.82_ygk7qgdlnpugkmqdrmzyce476m/node_modules/@mui/lab/LoadingButton/LoadingButton.js const _excluded = ["children", "disabled", "id", "loading", "loadingIndicator", "loadingPosition", "variant"]; @@ -2885,7 +2313,88 @@ const LoadingButton = /*#__PURE__*/react.forwardRef(function LoadingButton(inPro /***/ }), -/***/ 70622: +/***/ 92916: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "ZP": () => (/* binding */ TabContext), +/* harmony export */ "_i": () => (/* binding */ useTabContext), +/* harmony export */ "pQ": () => (/* binding */ getTabId), +/* harmony export */ "uU": () => (/* binding */ getPanelId) +/* harmony export */ }); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(58757); +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(35667); + + +/** + * @type {React.Context<{ idPrefix: string; value: string } | null>} + */ + + +const Context = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createContext(null); + +if (false) {} + +function useUniquePrefix() { + const [id, setId] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null); + react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => { + setId(`mui-p-${Math.round(Math.random() * 1e5)}`); + }, []); + return id; +} + +function TabContext(props) { + const { + children, + value + } = props; + const idPrefix = useUniquePrefix(); + const context = react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => { + return { + idPrefix, + value + }; + }, [idPrefix, value]); + return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(Context.Provider, { + value: context, + children: children + }); +} + false ? 0 : void 0; +/** + * @returns {unknown} + */ + +function useTabContext() { + return react__WEBPACK_IMPORTED_MODULE_0__.useContext(Context); +} +function getPanelId(context, value) { + const { + idPrefix + } = context; + + if (idPrefix === null) { + return null; + } + + return `${context.idPrefix}-P-${value}`; +} +function getTabId(context, value) { + const { + idPrefix + } = context; + + if (idPrefix === null) { + return null; + } + + return `${context.idPrefix}-T-${value}`; +} + +/***/ }), + +/***/ 61722: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; @@ -2897,18 +2406,18 @@ __webpack_require__.d(__webpack_exports__, { // EXTERNAL MODULE: ../../node_modules/.pnpm/@babel+runtime@7.17.9/node_modules/@babel/runtime/helpers/esm/extends.js var esm_extends = __webpack_require__(51911); -// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.0.0/node_modules/react/index.js -var react = __webpack_require__(86248); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+private-theming@5.6.1_@types+react@18.0.2+react@18.0.0/node_modules/@mui/private-theming/useTheme/ThemeContext.js -var ThemeContext = __webpack_require__(50934); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+private-theming@5.6.1_@types+react@18.0.2+react@18.0.0/node_modules/@mui/private-theming/useTheme/useTheme.js -var useTheme = __webpack_require__(77053); -;// CONCATENATED MODULE: ../../node_modules/.pnpm/@mui+private-theming@5.6.1_@types+react@18.0.2+react@18.0.0/node_modules/@mui/private-theming/ThemeProvider/nested.js +// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.1.0/node_modules/react/index.js +var react = __webpack_require__(58757); +// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+private-theming@5.8.0_7cpxmzzodpxnolj5zcc5cr63ji/node_modules/@mui/private-theming/useTheme/ThemeContext.js +var ThemeContext = __webpack_require__(67458); +// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+private-theming@5.8.0_7cpxmzzodpxnolj5zcc5cr63ji/node_modules/@mui/private-theming/useTheme/useTheme.js +var useTheme = __webpack_require__(86001); +;// CONCATENATED MODULE: ../../node_modules/.pnpm/@mui+private-theming@5.8.0_7cpxmzzodpxnolj5zcc5cr63ji/node_modules/@mui/private-theming/ThemeProvider/nested.js const hasSymbol = typeof Symbol === 'function' && Symbol.for; /* harmony default export */ const nested = (hasSymbol ? Symbol.for('mui.nested') : '__THEME_NESTED__'); -// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.0.0/node_modules/react/jsx-runtime.js -var jsx_runtime = __webpack_require__(71999); -;// CONCATENATED MODULE: ../../node_modules/.pnpm/@mui+private-theming@5.6.1_@types+react@18.0.2+react@18.0.0/node_modules/@mui/private-theming/ThemeProvider/ThemeProvider.js +// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.1.0/node_modules/react/jsx-runtime.js +var jsx_runtime = __webpack_require__(35667); +;// CONCATENATED MODULE: ../../node_modules/.pnpm/@mui+private-theming@5.8.0_7cpxmzzodpxnolj5zcc5cr63ji/node_modules/@mui/private-theming/ThemeProvider/ThemeProvider.js @@ -2969,14 +2478,14 @@ if (false) {} /***/ }), -/***/ 50934: +/***/ 67458: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__) /* harmony export */ }); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(86248); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(58757); const ThemeContext = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createContext(null); @@ -2986,15 +2495,15 @@ if (false) {} /***/ }), -/***/ 77053: +/***/ 86001: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "Z": () => (/* binding */ useTheme) /* harmony export */ }); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(86248); -/* harmony import */ var _ThemeContext__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(50934); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(58757); +/* harmony import */ var _ThemeContext__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(67458); function useTheme() { @@ -3007,16 +2516,16 @@ function useTheme() { /***/ }), -/***/ 98100: +/***/ 58086: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "Z": () => (/* binding */ GlobalStyles) /* harmony export */ }); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(86248); -/* harmony import */ var _emotion_react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(8465); -/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(71999); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(58757); +/* harmony import */ var _emotion_react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(2078); +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(35667); @@ -3040,17 +2549,17 @@ function GlobalStyles(props) { /***/ }), -/***/ 82978: +/***/ 45495: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "Z": () => (/* binding */ StyledEngineProvider) /* harmony export */ }); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(86248); -/* harmony import */ var _emotion_react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(83321); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(58757); +/* harmony import */ var _emotion_react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(32980); /* harmony import */ var _emotion_cache__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20227); -/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(71999); +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(35667); @@ -3076,7 +2585,7 @@ function StyledEngineProvider(props) { /***/ }), -/***/ 71647: +/***/ 53351: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; @@ -3088,8 +2597,8 @@ __webpack_require__.d(__webpack_exports__, { // UNUSED EXPORTS: GlobalStyles, StyledEngineProvider, ThemeContext, css, keyframes -// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.0.0/node_modules/react/index.js -var react = __webpack_require__(86248); +// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.1.0/node_modules/react/index.js +var react = __webpack_require__(58757); var react_namespaceObject = /*#__PURE__*/__webpack_require__.t(react, 2); // EXTERNAL MODULE: ../../node_modules/.pnpm/@babel+runtime@7.17.2/node_modules/@babel/runtime/helpers/esm/extends.js var esm_extends = __webpack_require__(97538); @@ -3112,13 +2621,13 @@ var isPropValid = /* #__PURE__ */(0,emotion_memoize_browser_esm/* default */.Z)( /* harmony default export */ const emotion_is_prop_valid_browser_esm = (isPropValid); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@emotion+react@11.9.0_@types+react@18.0.2+react@18.0.0/node_modules/@emotion/react/dist/emotion-element-cbed451f.browser.esm.js + 1 modules -var emotion_element_cbed451f_browser_esm = __webpack_require__(83321); +// EXTERNAL MODULE: ../../node_modules/.pnpm/@emotion+react@11.9.0_7cpxmzzodpxnolj5zcc5cr63ji/node_modules/@emotion/react/dist/emotion-element-cbed451f.browser.esm.js + 1 modules +var emotion_element_cbed451f_browser_esm = __webpack_require__(32980); // EXTERNAL MODULE: ../../node_modules/.pnpm/@emotion+utils@1.1.0/node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js var emotion_utils_browser_esm = __webpack_require__(45477); // EXTERNAL MODULE: ../../node_modules/.pnpm/@emotion+serialize@1.0.3/node_modules/@emotion/serialize/dist/emotion-serialize.browser.esm.js + 2 modules var emotion_serialize_browser_esm = __webpack_require__(37961); -;// CONCATENATED MODULE: ../../node_modules/.pnpm/@emotion+styled@11.8.1_d04d4cdfb6fe6aad6dcad79e21a129f6/node_modules/@emotion/styled/base/dist/emotion-styled-base.browser.esm.js +;// CONCATENATED MODULE: ../../node_modules/.pnpm/@emotion+styled@11.8.1_ycz2ostpb5cpb2s3izz5qyhrbm/node_modules/@emotion/styled/base/dist/emotion-styled-base.browser.esm.js @@ -3295,7 +2804,7 @@ var createStyled = function createStyled(tag, options) { /* harmony default export */ const emotion_styled_base_browser_esm = (createStyled); -;// CONCATENATED MODULE: ../../node_modules/.pnpm/@emotion+styled@11.8.1_d04d4cdfb6fe6aad6dcad79e21a129f6/node_modules/@emotion/styled/dist/emotion-styled.browser.esm.js +;// CONCATENATED MODULE: ../../node_modules/.pnpm/@emotion+styled@11.8.1_ycz2ostpb5cpb2s3izz5qyhrbm/node_modules/@emotion/styled/dist/emotion-styled.browser.esm.js @@ -3315,8 +2824,8 @@ tags.forEach(function (tagName) { /* harmony default export */ const emotion_styled_browser_esm = (newStyled); -;// CONCATENATED MODULE: ../../node_modules/.pnpm/@mui+styled-engine@5.6.1_840a430ee8e73823706c6e9dc692d93a/node_modules/@mui/styled-engine/index.js -/** @license MUI v5.6.1 +;// CONCATENATED MODULE: ../../node_modules/.pnpm/@mui+styled-engine@5.8.0_t4r7icl7x3elshpaxc4xm7jrem/node_modules/@mui/styled-engine/index.js +/** @license MUI v5.8.0 * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. @@ -3335,710 +2844,313 @@ function styled(tag, options) { /***/ }), -/***/ 57711: +/***/ 78659: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "Z": () => (/* binding */ capitalize) +/* harmony export */ "cv": () => (/* binding */ r) /* harmony export */ }); -/* harmony import */ var _formatMuiErrorMessage__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(38012); - -// It should to be noted that this function isn't equivalent to `text-transform: capitalize`. -// -// A strict capitalization should uppercase the first letter of each word in the sentence. -// We only handle the first word. -function capitalize(string) { - if (typeof string !== 'string') { - throw new Error( false ? 0 : (0,_formatMuiErrorMessage__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)(7)); - } - - return string.charAt(0).toUpperCase() + string.slice(1); -} - -/***/ }), - -/***/ 30865: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "Z": () => (/* binding */ createChainedFunction) -/* harmony export */ }); -/** - * Safe chained function. - * - * Will only create a new function if needed, - * otherwise will pass back existing functions or null. - */ -function createChainedFunction(...funcs) { - return funcs.reduce((acc, func) => { - if (func == null) { - return acc; - } - - return function chainedFunction(...args) { - acc.apply(this, args); - func.apply(this, args); - }; - }, () => {}); -} - -/***/ }), - -/***/ 66384: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "Z": () => (/* binding */ debounce) -/* harmony export */ }); -// Corresponds to 10 frames at 60 Hz. -// A few bytes payload overhead when lodash/debounce is ~3 kB and debounce ~300 B. -function debounce(func, wait = 166) { - let timeout; - - function debounced(...args) { - const later = () => { - func.apply(this, args); - }; - - clearTimeout(timeout); - timeout = setTimeout(later, wait); - } - - debounced.clear = () => { - clearTimeout(timeout); - }; +/* unused harmony exports getLength, toBuffer */ +/* provided dependency */ var Buffer = __webpack_require__(15313)["Buffer"]; +function r(n){if(Array.isArray(n)){for(var f=[],t=0;t { "use strict"; +__webpack_require__.r(__webpack_exports__); /* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "P": () => (/* binding */ isPlainObject), -/* harmony export */ "Z": () => (/* binding */ deepmerge) +/* harmony export */ "Address": () => (/* binding */ R), +/* harmony export */ "Array": () => (/* binding */ D), +/* harmony export */ "Bool": () => (/* binding */ O), +/* harmony export */ "Character": () => (/* binding */ P), +/* harmony export */ "Dictionary": () => (/* binding */ V), +/* harmony export */ "Event": () => (/* binding */ G), +/* harmony export */ "Fix64": () => (/* binding */ W), +/* harmony export */ "Identity": () => (/* binding */ c), +/* harmony export */ "Int": () => (/* binding */ d), +/* harmony export */ "Int128": () => (/* binding */ I), +/* harmony export */ "Int16": () => (/* binding */ g), +/* harmony export */ "Int256": () => (/* binding */ b), +/* harmony export */ "Int32": () => (/* binding */ y), +/* harmony export */ "Int64": () => (/* binding */ x), +/* harmony export */ "Int8": () => (/* binding */ l), +/* harmony export */ "Optional": () => (/* binding */ B), +/* harmony export */ "Path": () => (/* binding */ z), +/* harmony export */ "Reference": () => (/* binding */ C), +/* harmony export */ "Resource": () => (/* binding */ T), +/* harmony export */ "String": () => (/* binding */ k), +/* harmony export */ "Struct": () => (/* binding */ q), +/* harmony export */ "UFix64": () => (/* binding */ j), +/* harmony export */ "UInt": () => (/* binding */ a), +/* harmony export */ "UInt128": () => (/* binding */ h), +/* harmony export */ "UInt16": () => (/* binding */ s), +/* harmony export */ "UInt256": () => (/* binding */ E), +/* harmony export */ "UInt32": () => (/* binding */ v), +/* harmony export */ "UInt64": () => (/* binding */ m), +/* harmony export */ "UInt8": () => (/* binding */ p), +/* harmony export */ "Void": () => (/* binding */ N), +/* harmony export */ "Word16": () => (/* binding */ S), +/* harmony export */ "Word32": () => (/* binding */ F), +/* harmony export */ "Word64": () => (/* binding */ A), +/* harmony export */ "Word8": () => (/* binding */ U), +/* harmony export */ "_Array": () => (/* binding */ D) /* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(51911); - -function isPlainObject(item) { - return item !== null && typeof item === 'object' && item.constructor === Object; -} -function deepmerge(target, source, options = { - clone: true -}) { - const output = options.clone ? (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)({}, target) : target; +var e=function(e,t,n){return{label:e,asArgument:t,asInjection:n}},t=function(e){return Array.isArray(e)},n=function(e){return"object"==typeof e},r=function(e){return null==e},i=function(e){return"number"==typeof e},o=function(e){return Number.isInteger(e)},u=function(e){return"string"==typeof e},f=function(e){throw new Error("Type Error: "+e)},c=e("Identity",function(e){return e},function(e){return e}),a=e("UInt",function(e){if(i(e)&&o(e))return{type:"UInt",value:e.toString()};f("Expected Positive Integer for type Unsigned Int")},function(e){return e}),d=e("Int",function(e){if(i(e)&&o(e))return{type:"Int",value:e.toString()};f("Expected Integer for type Int")},function(e){return e}),p=e("UInt8",function(e){if(i(e)&&o(e))return{type:"UInt8",value:e.toString()};f("Expected integer for UInt8")},function(e){return e}),l=e("Int8",function(e){if(i(e)&&o(e))return{type:"Int8",value:e.toString()};f("Expected positive integer for Int8")},function(e){return e}),s=e("UInt16",function(e){if(i(e)&&o(e))return{type:"UInt16",value:e.toString()};f("Expected integer for UInt16")},function(e){return e}),g=e("Int16",function(e){if(i(e)&&o(e))return{type:"Int16",value:e.toString()};f("Expected positive integer for Int16")},function(e){return e}),v=e("UInt32",function(e){if(i(e)&&o(e))return{type:"UInt32",value:e.toString()};f("Expected integer for UInt32")},function(e){return e}),y=e("Int32",function(e){if(i(e)&&o(e))return{type:"Int32",value:e.toString()};f("Expected positive integer for Int32")},function(e){return e}),m=e("UInt64",function(e){if(i(e)&&o(e))return{type:"UInt64",value:e.toString()};f("Expected integer for UInt64")},function(e){return e}),x=e("Int64",function(e){if(i(e)&&o(e))return{type:"Int64",value:e.toString()};f("Expected positive integer for Int64")},function(e){return e}),h=e("UInt128",function(e){if(i(e)&&o(e))return{type:"UInt128",value:e.toString()};f("Expected integer for UInt128")},function(e){return e}),I=e("Int128",function(e){if(i(e)&&o(e))return{type:"Int128",value:e.toString()};f("Expected positive integer for Int128")},function(e){return e}),E=e("UInt256",function(e){if(i(e)&&o(e))return{type:"UInt256",value:e.toString()};f("Expected integer for UInt256")},function(e){return e}),b=e("Int256",function(e){if(i(e)&&o(e))return{type:"Int256",value:e.toString()};f("Expected integer for Int256")},function(e){return e}),U=e("Word8",function(e){if(i(e)&&o(e))return{type:"Word8",value:e.toString()};f("Expected positive number for Word8")},function(e){return e}),S=e("Word16",function(e){if(i(e)&&o(e))return{type:"Word16",value:e.toString()};f("Expected positive number for Word16")},function(e){return e}),F=e("Word32",function(e){if(i(e)&&o(e))return{type:"Word32",value:e.toString()};f("Expected positive number for Word32")},function(e){return e}),A=e("Word64",function(e){if(i(e)&&o(e))return{type:"Word64",value:e.toString()};f("Expected positive number for Word64")},function(e){return e}),w=function(){console.error("\n %c@onflow/types Deprecation Notice\n ========================\n\n Passing in Numbers as values for Fix64 and UFix64 types is deprecated and will cease to work in future releases of @onflow/types.\n Find out more here: https://github.com/onflow/flow-js-sdk/blob/master/packages/types/WARNINGS.md#0001-[U]Fix64-as-Number\n\n =======================\n ".replace(/\n\s+/g,"\n").trim(),"font-weight:bold;font-family:monospace;")},j=e("UFix64",function(e){if(u(e)){var t=e.split(".");return 2!==t.length&&f("Expected one decimal but found "+t.length+" in the [U]Fix64 value. Find out more about [U]Fix64 types here: https://docs.onflow.org/cadence/json-cadence-spec/#fixed-point-numbers"),(0==t[1].length||t[1].length>8)&&f("Expected at least one digit, and at most 8 digits following the decimal of the [U]Fix64 value but found "+t[1].length+" digits. Find out more about [U]Fix64 types here: https://docs.onflow.org/cadence/json-cadence-spec/#fixed-point-numbers"),{type:"UFix64",value:e}}if(i(e))return w(),{type:"UFix64",value:e.toString()};f("Expected String for UFix64")},function(e){return e}),W=e("Fix64",function(e){if(u(e)){var t=e.split(".");return 2!==t.length&&f("Expected one decimal but found "+t.length+" in the [U]Fix64 value. Find out more about [U]Fix64 types here: https://docs.onflow.org/cadence/json-cadence-spec/#fixed-point-numbers"),(0==t[1].length||t[1].length>8)&&f("Expected at least one digit, and at most 8 digits following the decimal of the [U]Fix64 value but found "+t[1].length+" digits. Find out more about [U]Fix64 types here: https://docs.onflow.org/cadence/json-cadence-spec/#fixed-point-numbers"),{type:"Fix64",value:e}}if(i(e))return w(),{type:"Fix64",value:e.toString()};f("Expected String for Fix64")},function(e){return e}),k=e("String",function(e){if(u(e))return{type:"String",value:e};f("Expected String for type String")},function(e){return e}),P=e("Character",function(e){if(u(e))return{type:"Character",value:e};f("Expected Character for type Character")},function(e){return e}),O=e("Bool",function(e){if("boolean"==typeof e)return{type:"Bool",value:e};f("Expected Boolean for type Bool")},function(e){return e}),R=e("Address",function(e){if(u(e))return{type:"Address",value:e};f("Expected Address for type Address")},function(e){return e}),N=e("Void",function(e){if(!e||r(e))return{type:"Void"};f("Expected Void for type Void")},function(e){return e}),B=function(t){return e("Optional",function(e){return{type:"Optional",value:r(e)?null:t.asArgument(e)}},function(e){return e})},C=e("Reference",function(e){if(n(e))return{type:"Reference",value:e};f("Expected Object for type Reference")},function(e){return e}),D=function(n){return void 0===n&&(n=[]),e("Array",function(e){return{type:"Array",value:t(n)?n.map(function(t,n){return t.asArgument(e[n])}):e.map(function(e){return n.asArgument(e)})}},function(e){return e})},V=function(r){return void 0===r&&(r=[]),e("Dictionary",function(e){if(n(e))return{type:"Dictionary",value:t(r)?r.map(function(t,n){return{key:t.key.asArgument(e[n].key),value:t.value.asArgument(e[n].value)}}):t(e)?e.map(function(e){return{key:r.key.asArgument(e.key),value:r.value.asArgument(e.value)}}):[{key:r.key.asArgument(e.key),value:r.value.asArgument(e.value)}]};f("Expected Object for type Dictionary")},function(e){return e})},G=function(r,i){return void 0===i&&(i=[]),e("Event",function(e){if(n(e))return{type:"Event",value:{id:r,fields:t(i)?i.map(function(t,n){return{name:e.fields[n].name,value:t.value.asArgument(e.fields[n].value)}}):e.fields.map(function(e){return{name:e.name,value:i.value.asArgument(e.value)}})}};f("Expected Object for type Event")},function(e){return e})},T=function(r,i){return void 0===i&&(i=[]),e("Resource",function(e){if(n(e))return{type:"Resource",value:{id:r,fields:t(i)?i.map(function(t,n){return{name:e.fields[n].name,value:t.value.asArgument(e.fields[n].value)}}):e.fields.map(function(e){return{name:e.name,value:i.value.asArgument(e.value)}})}};f("Expected Object for type Resource")},function(e){return e})},q=function(r,i){return void 0===i&&(i=[]),e("Struct",function(e){if(n(e))return{type:"Struct",value:{id:r,fields:t(i)?i.map(function(t,n){return{name:e.fields[n].name,value:t.value.asArgument(e.fields[n].value)}}):e.fields.map(function(e){return{name:e.name,value:i.value.asArgument(e.value)}})}};f("Expected Object for type Struct")},function(e){return e})},z=e("Path",function(e){if(n(e))return u(e.domain)||f("Expected a string for the Path domain but found "+e.domain+". Find out more about the Path type here: https://docs.onflow.org/cadence/json-cadence-spec/#path"),"storage"!==e.domain&&"private"!==e.domain&&"public"!==e.domain&&f('Expected either "storage", "private" or "public" as the Path domain but found '+e.domain+". Find out more about the Path type here: https://docs.onflow.org/cadence/json-cadence-spec/#path"),u(e.identifier)||f("Expected a string for the Path identifier but found "+e.identifier+". Find out more about the Path type here: https://docs.onflow.org/cadence/json-cadence-spec/#path"),{type:"Path",value:{domain:e.domain,identifier:e.identifier}};f("Expected Object for type Path")},function(e){return e}); +//# sourceMappingURL=types.module.js.map - if (isPlainObject(target) && isPlainObject(source)) { - Object.keys(source).forEach(key => { - // Avoid prototype pollution - if (key === '__proto__') { - return; - } - - if (isPlainObject(source[key]) && key in target && isPlainObject(target[key])) { - // Since `output` is a clone of `target` and we have narrowed `target` in this block we can cast to the same type. - output[key] = deepmerge(target[key], source[key], options); - } else { - output[key] = source[key]; - } - }); - } - - return output; -} /***/ }), -/***/ 40174: +/***/ 56688: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "Z": () => (/* binding */ deprecatedPropType) +/* harmony export */ "By": () => (/* binding */ s), +/* harmony export */ "Cs": () => (/* binding */ m), +/* harmony export */ "L6": () => (/* binding */ E), +/* harmony export */ "SH": () => (/* binding */ a), +/* harmony export */ "kD": () => (/* binding */ f), +/* harmony export */ "kT": () => (/* binding */ l), +/* harmony export */ "lW": () => (/* binding */ b), +/* harmony export */ "qP": () => (/* binding */ I), +/* harmony export */ "qg": () => (/* binding */ c) /* harmony export */ }); -function deprecatedPropType(validator, reason) { - if (true) { - return () => null; - } - - return (props, propName, componentName, location, propFullName) => { - const componentNameSafe = componentName || '<>'; - const propFullNameSafe = propFullName || propName; - - if (typeof props[propName] !== 'undefined') { - return new Error(`The ${location} \`${propFullNameSafe}\` of ` + `\`${componentNameSafe}\` is deprecated. ${reason}`); - } +/* unused harmony exports EXIT, TERMINATE, kill */ +/* harmony import */ var queue_microtask__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(61393); +/* harmony import */ var queue_microtask__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(queue_microtask__WEBPACK_IMPORTED_MODULE_0__); +function t(){return(t=Object.assign||function(n){for(var t=1;tn.length)&&(t=n.length);for(var e=0,r=new Array(t);e=n.length?{done:!0}:{done:!1,value:n[o++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(r=n[Symbol.iterator]()).next.bind(r)}(d.FCL_REGISTRY[o].subs);!(i=u()).done;)b(i.value,n,t,r)},subscribe:function(n){return null!=n&&d.FCL_REGISTRY[o].subs.add(n)},unsubscribe:function(n){return null!=n&&d.FCL_REGISTRY[o].subs.delete(n)},subscriberCount:function(){return d.FCL_REGISTRY[o].subs.size},hasSubs:function(){return!!d.FCL_REGISTRY[o].subs.size},put:function(n,t){null!=n&&(d.FCL_REGISTRY[o].kvs[n]=t)},get:function(n,t){var e=d.FCL_REGISTRY[o].kvs[n];return null==e?t:e},delete:function(n){delete d.FCL_REGISTRY[o].kvs[n]},update:function(n,t){null!=n&&(d.FCL_REGISTRY[o].kvs[n]=t(d.FCL_REGISTRY[o].kvs[n]))},keys:function(){return Object.keys(d.FCL_REGISTRY[o].kvs)},all:function(){return d.FCL_REGISTRY[o].kvs},where:function(n){return Object.keys(d.FCL_REGISTRY[o].kvs).reduce(function(e,r){var i;return n.test(r)?t({},e,((i={})[r]=d.FCL_REGISTRY[o].kvs[r],i)):e},{})},merge:function(n){void 0===n&&(n={}),Object.keys(n).forEach(function(t){return d.FCL_REGISTRY[o].kvs[t]=n[t]})}};return"object"==typeof r&&(void 0===(f=r)&&(f={}),r=function(n){try{var t=function(){var t=u(function(){return 1},void 0,function(){return Promise.resolve(n.receive()).then(function(t){var e=function(e,r){try{var o=function(e,r){try{var o=function(){function e(){return Promise.resolve(f[t.tag](n,t,t.data||{})).then(function(){})}var r=function(){if("EXIT"===t.tag){var e=function(){if("function"==typeof f.TERMINATE)return Promise.resolve(f.TERMINATE(n,t,t.data||{})).then(function(){})}();if(e&&e.then)return e.then(function(){})}}();return r&&r.then?r.then(e):e()}()}catch(n){return r(n)}return o&&o.then?o.then(void 0,r):o}(0,function(e){console.error(n.self()+" Error",t,e)})}catch(n){return}return o&&o.then?o.then(r.bind(null,!1),r.bind(null,!0)):void 0}(0,function(n,t){});if(e&&e.then)return e.then(function(){})})});return t&&t.then?t.then(function(){}):void 0},e=function(){if("function"==typeof f.INIT)return Promise.resolve(f.INIT(n)).then(function(){})}();return Promise.resolve(e&&e.then?e.then(t):t())}catch(n){return Promise.reject(n)}}),queue_microtask__WEBPACK_IMPORTED_MODULE_0___default()(function(){try{return Promise.resolve(r(s)).then(function(){S(o)})}catch(n){return Promise.reject(n)}}),o};function I(n,t,e){t(n);var r=m(function(t){try{var r;return t.send(n,"SUBSCRIBE"),Promise.resolve(u(function(){return!r&&1},void 0,function(){return Promise.resolve(t.receive()).then(function(o){if("@EXIT"===o.tag)return t.send(n,"UNSUBSCRIBE"),void(r=1);e(o.data)})}))}catch(n){return Promise.reject(n)}});return function(){return b(r,"@EXIT")}}function E(n,t){return t(n),b(n,"SNAPSHOT",null,{expectReply:!0,timeout:0})} +//# sourceMappingURL=actor.module.js.map - return null; - }; -} /***/ }), -/***/ 38012: +/***/ 64864: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "Z": () => (/* binding */ formatMuiErrorMessage) +/* harmony export */ "CH": () => (/* binding */ n), +/* harmony export */ "dq": () => (/* binding */ l), +/* harmony export */ "jf": () => (/* binding */ u) /* harmony export */ }); -/** - * WARNING: Don't import this directly. - * Use `MuiError` from `@mui/utils/macros/MuiError.macro` instead. - * @param {number} code - */ -function formatMuiErrorMessage(code) { - // Apply babel-plugin-transform-template-literals in loose mode - // loose mode is safe iff we're concatenating primitives - // see https://babeljs.io/docs/en/babel-plugin-transform-template-literals#loose +function n(n){return null==n?null:n.replace(/^0x/,"").replace(/^Fx/,"")}function l(l){return null==l?null:"0x"+n(l)}function u(n){return l(n)} +//# sourceMappingURL=util-address.module.js.map - /* eslint-disable prefer-template */ - let url = 'https://mui.com/production-error/?code=' + code; - - for (let i = 1; i < arguments.length; i += 1) { - // rest params over-transpile for this case - // eslint-disable-next-line prefer-rest-params - url += '&args[]=' + encodeURIComponent(arguments[i]); - } - - return 'Minified MUI error #' + code + '; visit ' + url + ' for the full message.'; - /* eslint-enable prefer-template */ -} /***/ }), -/***/ 69567: +/***/ 73440: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "Z": () => (/* binding */ getScrollbarSize) +/* harmony export */ "k": () => (/* binding */ n) /* harmony export */ }); -// A change of the browser zoom change the scrollbar size. -// Credit https://github.com/twbs/bootstrap/blob/488fd8afc535ca3a6ad4dc581f5e89217b6a36ac/js/src/util/scrollbar.js#L14-L18 -function getScrollbarSize(doc) { - // https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes - const documentWidth = doc.documentElement.clientWidth; - return Math.abs(window.innerWidth - documentWidth); -} - -/***/ }), - -/***/ 68648: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "Z": () => (/* binding */ isMuiElement) -/* harmony export */ }); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(86248); - -function isMuiElement(element, muiNames) { - return /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.isValidElement(element) && muiNames.indexOf(element.type.muiName) !== -1; -} - -/***/ }), - -/***/ 70251: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { +function n(n,t){if(!n){var r,o=new Error("INVARIANT "+t);throw o.stack=o.stack.split("\n").filter(function(n){return!/at invariant/.test(n)}).join("\n"),(r=console).error.apply(r,["\n\n---\n\n",o,"\n\n"].concat([].slice.call(arguments,2),["\n\n---\n\n"])),o}} +//# sourceMappingURL=util-invariant.module.js.map -"use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "Z": () => (/* binding */ ownerDocument) -/* harmony export */ }); -function ownerDocument(node) { - return node && node.ownerDocument || document; -} /***/ }), -/***/ 54675: +/***/ 61805: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "Z": () => (/* binding */ ownerWindow) +/* harmony export */ "X": () => (/* binding */ o) /* harmony export */ }); -/* harmony import */ var _ownerDocument__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(70251); +/* unused harmony export interleave */ +function n(t,o,r){if(void 0===t&&(t=[]),void 0===o&&(o=[]),void 0===r&&(r=[]),!t.length&&!o.length)return r;if(!t.length)return r;if(!o.length)return[].concat(r,[t[0]]);var e=t[0],i=t.slice(1),a=o[0],u=o.slice(1);return void 0!==e&&r.push(e),void 0!==a&&r.push(a),n(i,u,r)}function t(n){return function(o){return"function"==typeof o?(console.warn("\n %cFCL/SDK Deprecation Notice\n ============================\n\n Interopolation of functions into template literals will not be a thing in future versions of the Flow-JS-SDK or FCL.\n You can learn more (including a guide on common transition paths) here: https://github.com/onflow/flow-js-sdk/blob/master/packages/sdk/TRANSITIONS.md#0001-deprecate-params\n\n ============================\n ","font-weight:bold;font-family:monospace;"),t(n)(o(n))):String(o)}}function o(o){for(var r=arguments.length,e=new Array(r>1?r-1:0),i=1;i { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "Z": () => (/* binding */ requirePropFactory) +/* harmony export */ "h": () => (/* binding */ t) /* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(51911); - -function requirePropFactory(componentNameInError, Component) { - if (true) { - return () => null; - } // eslint-disable-next-line react/forbid-foreign-prop-types +var r="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789",n=r.length;function t(){for(var t="",a=32;a--;)t+=r[Math.random()*n|0];return t} +//# sourceMappingURL=util-uid.module.js.map - const prevPropTypes = Component ? (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)({}, Component.propTypes) : null; - - const requireProp = requiredProp => (props, propName, componentName, location, propFullName, ...args) => { - const propFullNameSafe = propFullName || propName; - const defaultTypeChecker = prevPropTypes == null ? void 0 : prevPropTypes[propFullNameSafe]; - - if (defaultTypeChecker) { - const typeCheckerResult = defaultTypeChecker(props, propName, componentName, location, propFullName, ...args); - - if (typeCheckerResult) { - return typeCheckerResult; - } - } - - if (typeof props[propName] !== 'undefined' && !props[requiredProp]) { - return new Error(`The prop \`${propFullNameSafe}\` of ` + `\`${componentNameInError}\` can only be used together with the \`${requiredProp}\` prop.`); - } - - return null; - }; - - return requireProp; -} - /***/ }), -/***/ 23227: +/***/ 81540: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "Z": () => (/* binding */ resolveProps) -/* harmony export */ }); -/* harmony import */ var _babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(51911); +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "S": () => (/* binding */ useIntersectionObserver) +}); -/** - * Add keys, values of `defaultProps` that does not exist in `props` - * @param {object} defaultProps - * @param {object} props - * @returns {object} resolved props - */ -function resolveProps(defaultProps, props) { - const output = (0,_babel_runtime_helpers_esm_extends__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)({}, props); - - Object.keys(defaultProps).forEach(propName => { - if (output[propName] === undefined) { - output[propName] = defaultProps[propName]; - } - }); - return output; -} - -/***/ }), - -/***/ 53167: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { +// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.1.0/node_modules/react/index.js +var react = __webpack_require__(58757); +;// CONCATENATED MODULE: ../../node_modules/.pnpm/@react-hookz+web@14.2.2/node_modules/@react-hookz/web/esm/useIsMounted/useIsMounted.js -"use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "Z": () => (/* binding */ setRef) -/* harmony export */ }); /** - * TODO v5: consider making it private - * - * passes {value} to {ref} - * - * WARNING: Be sure to only call this inside a callback that is passed as a ref. - * Otherwise, make sure to cleanup the previous {ref} if it changes. See - * https://github.com/mui/material-ui/issues/13539 + * Returns function that yields current mount state. * - * Useful if you want to expose the ref of an inner component to the public API - * while still using it inside the component. - * @param ref A ref callback or ref object. If anything falsy, this is a no-op. + * Returned function yields `true` only in case component is mounted. This hook + * is handy for the cases when you have to detect component mount state within + * async effects. */ -function setRef(ref, value) { - if (typeof ref === 'function') { - ref(value); - } else if (ref) { - ref.current = value; - } -} - -/***/ }), - -/***/ 61689: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "Z": () => (/* binding */ unsupportedProp) -/* harmony export */ }); -function unsupportedProp(props, propName, componentName, location, propFullName) { - if (true) { - return null; - } - - const propFullNameSafe = propFullName || propName; - - if (typeof props[propName] !== 'undefined') { - return new Error(`The prop \`${propFullNameSafe}\` is not supported. Please remove it.`); - } - - return null; -} - -/***/ }), - -/***/ 34652: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "Z": () => (/* binding */ useControlled) -/* harmony export */ }); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(86248); -/* eslint-disable react-hooks/rules-of-hooks, react-hooks/exhaustive-deps */ - -function useControlled({ - controlled, - default: defaultProp, - name, - state = 'value' -}) { - // isControlled is ignored in the hook dependency lists as it should never change. - const { - current: isControlled - } = react__WEBPACK_IMPORTED_MODULE_0__.useRef(controlled !== undefined); - const [valueState, setValue] = react__WEBPACK_IMPORTED_MODULE_0__.useState(defaultProp); - const value = isControlled ? controlled : valueState; - - if (false) {} - - const setValueIfUncontrolled = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(newValue => { - if (!isControlled) { - setValue(newValue); - } - }, []); - return [value, setValueIfUncontrolled]; +function useIsMounted() { + var isMounted = (0,react.useRef)(false); + var get = (0,react.useCallback)(function () { return isMounted.current; }, []); + (0,react.useEffect)(function () { + isMounted.current = true; + return function () { + isMounted.current = false; + }; + }, []); + return get; } -/***/ }), - -/***/ 58965: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "Z": () => (__WEBPACK_DEFAULT_EXPORT__) -/* harmony export */ }); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(86248); - -const useEnhancedEffect = typeof window !== 'undefined' ? react__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect : react__WEBPACK_IMPORTED_MODULE_0__.useEffect; -/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (useEnhancedEffect); - -/***/ }), - -/***/ 88536: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "Z": () => (/* binding */ useEventCallback) -/* harmony export */ }); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(86248); -/* harmony import */ var _useEnhancedEffect__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(58965); +;// CONCATENATED MODULE: ../../node_modules/.pnpm/@react-hookz+web@14.2.2/node_modules/@react-hookz/web/esm/useSafeState/useSafeState.js /** - * https://github.com/facebook/react/issues/14099#issuecomment-440013892 + * Like `useState` but its state setter is guarded against sets on unmounted component. */ - -function useEventCallback(fn) { - const ref = react__WEBPACK_IMPORTED_MODULE_0__.useRef(fn); - (0,_useEnhancedEffect__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)(() => { - ref.current = fn; - }); - return react__WEBPACK_IMPORTED_MODULE_0__.useCallback((...args) => // @ts-expect-error hide `this` - // tslint:disable-next-line:ban-comma-operator - (0, ref.current)(...args), []); +function useSafeState(initialState) { + var _a = (0,react.useState)(initialState), state = _a[0], setState = _a[1]; + var isMounted = useIsMounted(); + return [ + state, + (0,react.useCallback)(function (value) { + if (isMounted()) + setState(value); + // eslint-disable-next-line react-hooks/exhaustive-deps + }, []), + ]; } -/***/ }), - -/***/ 77975: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "Z": () => (/* binding */ useForkRef) -/* harmony export */ }); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(86248); -/* harmony import */ var _setRef__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(53167); - - -function useForkRef(refA, refB) { - /** - * This will create a new function if the ref props change and are defined. - * This means react will call the old forkRef with `null` and the new forkRef - * with the ref. Cleanup naturally emerges from this behavior. - */ - return react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => { - if (refA == null && refB == null) { - return null; +;// CONCATENATED MODULE: ../../node_modules/.pnpm/@react-hookz+web@14.2.2/node_modules/@react-hookz/web/esm/useIntersectionObserver/useIntersectionObserver.js +var __spreadArray = (undefined && undefined.__spreadArray) || function (to, from, pack) { + if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) { + if (ar || !(i in from)) { + if (!ar) ar = Array.prototype.slice.call(from, 0, i); + ar[i] = from[i]; + } } - - return refValue => { - (0,_setRef__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)(refA, refValue); - (0,_setRef__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)(refB, refValue); - }; - }, [refA, refB]); -} - -/***/ }), - -/***/ 50141: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -var react__WEBPACK_IMPORTED_MODULE_0___namespace_cache; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "Z": () => (/* binding */ useId) -/* harmony export */ }); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(86248); - -let globalId = 0; - -function useGlobalId(idOverride) { - const [defaultId, setDefaultId] = react__WEBPACK_IMPORTED_MODULE_0__.useState(idOverride); - const id = idOverride || defaultId; - react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => { - if (defaultId == null) { - // Fallback to this default id when possible. - // Use the incrementing value for client-side rendering only. - // We can't use it server-side. - // If you want to use random values please consider the Birthday Problem: https://en.wikipedia.org/wiki/Birthday_problem - globalId += 1; - setDefaultId(`mui-${globalId}`); - } - }, [defaultId]); - return id; -} // eslint-disable-next-line no-useless-concat -- Workaround for https://github.com/webpack/webpack/issues/14814 - - -const maybeReactUseId = /*#__PURE__*/ (react__WEBPACK_IMPORTED_MODULE_0___namespace_cache || (react__WEBPACK_IMPORTED_MODULE_0___namespace_cache = __webpack_require__.t(react__WEBPACK_IMPORTED_MODULE_0__, 2)))['useId' + '']; -/** - * - * @example
- * @param idOverride - * @returns {string} - */ - -function useId(idOverride) { - if (maybeReactUseId !== undefined) { - const reactId = maybeReactUseId(); - return idOverride != null ? idOverride : reactId; - } // eslint-disable-next-line react-hooks/rules-of-hooks -- `React.useId` is invariant at runtime. - - - return useGlobalId(idOverride); -} - -/***/ }), - -/***/ 69697: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "Z": () => (/* binding */ useIsFocusVisible) -/* harmony export */ }); -/* unused harmony export teardown */ -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(86248); -// based on https://github.com/WICG/focus-visible/blob/v4.1.5/src/focus-visible.js - -let hadKeyboardEvent = true; -let hadFocusVisibleRecently = false; -let hadFocusVisibleRecentlyTimeout; -const inputTypesWhitelist = { - text: true, - search: true, - url: true, - tel: true, - email: true, - password: true, - number: true, - date: true, - month: true, - week: true, - time: true, - datetime: true, - 'datetime-local': true + return to.concat(ar || Array.prototype.slice.call(from)); }; -/** - * Computes whether the given element should automatically trigger the - * `focus-visible` class being added, i.e. whether it should always match - * `:focus-visible` when focused. - * @param {Element} node - * @returns {boolean} - */ - -function focusTriggersKeyboardModality(node) { - const { - type, - tagName - } = node; - - if (tagName === 'INPUT' && inputTypesWhitelist[type] && !node.readOnly) { - return true; - } - - if (tagName === 'TEXTAREA' && !node.readOnly) { - return true; - } - - if (node.isContentEditable) { - return true; - } - - return false; -} -/** - * Keep track of our keyboard modality state with `hadKeyboardEvent`. - * If the most recent user interaction was via the keyboard; - * and the key press did not include a meta, alt/option, or control key; - * then the modality is keyboard. Otherwise, the modality is not keyboard. - * @param {KeyboardEvent} event - */ -function handleKeyDown(event) { - if (event.metaKey || event.altKey || event.ctrlKey) { - return; - } - - hadKeyboardEvent = true; -} +var DEFAULT_THRESHOLD = [0]; +var DEFAULT_ROOT_MARGIN = '0px'; +var observers = new Map(); +var getObserverEntry = function (options) { + var _a; + var root = (_a = options.root) !== null && _a !== void 0 ? _a : document; + var rootObservers = observers.get(root); + if (!rootObservers) { + rootObservers = new Map(); + observers.set(root, rootObservers); + } + var opt = JSON.stringify([options.rootMargin, options.threshold]); + var entry = rootObservers.get(opt); + if (!entry) { + var callbacks_1 = new Map(); + var observer_1 = new IntersectionObserver(function (entries) { + return entries.forEach(function (e) { var _a; return (_a = callbacks_1.get(e.target)) === null || _a === void 0 ? void 0 : _a.forEach(function (cb) { return setTimeout(function () { return cb(e); }, 0); }); }); + }, options); + entry = { + observer: observer_1, + observe: function (target, callback) { + var cbs = callbacks_1.get(target); + if (!cbs) { + // if target has no observers yet - register it + cbs = new Set(); + callbacks_1.set(target, cbs); + observer_1.observe(target); + } + // as Set is duplicate-safe - simply add callback on each call + cbs.add(callback); + }, + unobserve: function (target, callback) { + var cbs = callbacks_1.get(target); + // else branch should never occur in case of normal execution + // because callbacks map is hidden in closure - it is impossible to + // simulate situation with non-existent `cbs` Set + /* istanbul ignore else */ + if (cbs) { + // remove current observer + cbs.delete(callback); + if (!cbs.size) { + // if no observers left unregister target completely + callbacks_1.delete(target); + observer_1.unobserve(target); + // if not tracked elements left - disconnect observer + if (!callbacks_1.size) { + observer_1.disconnect(); + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + rootObservers.delete(opt); + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + if (!rootObservers.size) { + observers.delete(root); + } + } + } + } + }, + }; + rootObservers.set(opt, entry); + } + return entry; +}; /** - * If at any point a user clicks with a pointing device, ensure that we change - * the modality away from keyboard. - * This avoids the situation where a user presses a key on an already focused - * element, and then clicks on a different element, focusing it with a - * pointing device, while we still think we're in keyboard modality. + * Tracks intersection of a target element with an ancestor element or with a + * top-level document's viewport. + * + * @param target React reference or Element to track. + * @param options Like `IntersectionObserver` options but `root` can also be + * react reference */ - - -function handlePointerDown() { - hadKeyboardEvent = false; -} - -function handleVisibilityChange() { - if (this.visibilityState === 'hidden') { - // If the tab becomes active again, the browser will handle calling focus - // on the element (Safari actually calls it twice). - // If this tab change caused a blur on an element with focus-visible, - // re-apply the class when the user switches back to the tab. - if (hadFocusVisibleRecently) { - hadKeyboardEvent = true; - } - } -} - -function prepare(doc) { - doc.addEventListener('keydown', handleKeyDown, true); - doc.addEventListener('mousedown', handlePointerDown, true); - doc.addEventListener('pointerdown', handlePointerDown, true); - doc.addEventListener('touchstart', handlePointerDown, true); - doc.addEventListener('visibilitychange', handleVisibilityChange, true); -} - -function teardown(doc) { - doc.removeEventListener('keydown', handleKeyDown, true); - doc.removeEventListener('mousedown', handlePointerDown, true); - doc.removeEventListener('pointerdown', handlePointerDown, true); - doc.removeEventListener('touchstart', handlePointerDown, true); - doc.removeEventListener('visibilitychange', handleVisibilityChange, true); -} - -function isFocusVisible(event) { - const { - target - } = event; - - try { - return target.matches(':focus-visible'); - } catch (error) {// Browsers not implementing :focus-visible will throw a SyntaxError. - // We use our own heuristic for those browsers. - // Rethrow might be better if it's not the expected error but do we really - // want to crash if focus-visible malfunctioned? - } // No need for validFocusTarget check. The user does that by attaching it to - // focusable events only. - - - return hadKeyboardEvent || focusTriggersKeyboardModality(target); +function useIntersectionObserver(target, _a) { + var _b = _a === void 0 ? {} : _a, _c = _b.threshold, threshold = _c === void 0 ? DEFAULT_THRESHOLD : _c, r = _b.root, _d = _b.rootMargin, rootMargin = _d === void 0 ? DEFAULT_ROOT_MARGIN : _d; + var _e = useSafeState(), state = _e[0], setState = _e[1]; + (0,react.useEffect)(function () { + var tgt = target && 'current' in target ? target.current : target; + if (!tgt) + return; + var subscribed = true; + var observerEntry = getObserverEntry({ + root: r && 'current' in r ? r.current : r, + rootMargin: rootMargin, + threshold: threshold, + }); + var handler = function (entry) { + // it is reinsurance for the highly asynchronous invocations, almost + // impossible to achieve in tests, thus excluding from LOC + /* istanbul ignore else */ + if (subscribed) { + setState(entry); + } + }; + observerEntry.observe(tgt, handler); + return function () { + subscribed = false; + observerEntry.unobserve(tgt, handler); + }; + // eslint-disable-next-line react-hooks/exhaustive-deps + }, __spreadArray([target, r, rootMargin], threshold, true)); + return state; } -function useIsFocusVisible() { - const ref = react__WEBPACK_IMPORTED_MODULE_0__.useCallback(node => { - if (node != null) { - prepare(node.ownerDocument); - } - }, []); - const isFocusVisibleRef = react__WEBPACK_IMPORTED_MODULE_0__.useRef(false); - /** - * Should be called if a blur event is fired - */ - - function handleBlurVisible() { - // checking against potential state variable does not suffice if we focus and blur synchronously. - // React wouldn't have time to trigger a re-render so `focusVisible` would be stale. - // Ideally we would adjust `isFocusVisible(event)` to look at `relatedTarget` for blur events. - // This doesn't work in IE11 due to https://github.com/facebook/react/issues/3751 - // TODO: check again if React releases their internal changes to focus event handling (https://github.com/facebook/react/pull/19186). - if (isFocusVisibleRef.current) { - // To detect a tab/window switch, we look for a blur event followed - // rapidly by a visibility change. - // If we don't see a visibility change within 100ms, it's probably a - // regular focus change. - hadFocusVisibleRecently = true; - window.clearTimeout(hadFocusVisibleRecentlyTimeout); - hadFocusVisibleRecentlyTimeout = window.setTimeout(() => { - hadFocusVisibleRecently = false; - }, 100); - isFocusVisibleRef.current = false; - return true; - } - - return false; - } - /** - * Should be called if a blur event is fired - */ - - - function handleFocusVisible(event) { - if (isFocusVisible(event)) { - isFocusVisibleRef.current = true; - return true; - } - - return false; - } - - return { - isFocusVisibleRef, - onFocus: handleFocusVisible, - onBlur: handleBlurVisible, - ref - }; -} /***/ }), @@ -4103,133 +3215,165 @@ __webpack_unused_export__ = once; /***/ }), -/***/ 14375: -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ 29186: +/***/ ((module) => { -"use strict"; +module.exports = after -// base-x encoding / decoding -// Copyright (c) 2018 base-x contributors -// Copyright (c) 2014-2018 The Bitcoin Core developers (base58.cpp) -// Distributed under the MIT software license, see the accompanying -// file LICENSE or http://www.opensource.org/licenses/mit-license.php. -// @ts-ignore -var _Buffer = (__webpack_require__(21607).Buffer) -function base (ALPHABET) { - if (ALPHABET.length >= 255) { throw new TypeError('Alphabet too long') } - var BASE_MAP = new Uint8Array(256) - for (var j = 0; j < BASE_MAP.length; j++) { - BASE_MAP[j] = 255 - } - for (var i = 0; i < ALPHABET.length; i++) { - var x = ALPHABET.charAt(i) - var xc = x.charCodeAt(0) - if (BASE_MAP[xc] !== 255) { throw new TypeError(x + ' is ambiguous') } - BASE_MAP[xc] = i - } - var BASE = ALPHABET.length - var LEADER = ALPHABET.charAt(0) - var FACTOR = Math.log(BASE) / Math.log(256) // log(BASE) / log(256), rounded up - var iFACTOR = Math.log(256) / Math.log(BASE) // log(256) / log(BASE), rounded up - function encode (source) { - if (Array.isArray(source) || source instanceof Uint8Array) { source = _Buffer.from(source) } - if (!_Buffer.isBuffer(source)) { throw new TypeError('Expected Buffer') } - if (source.length === 0) { return '' } - // Skip & count leading zeroes. - var zeroes = 0 - var length = 0 - var pbegin = 0 - var pend = source.length - while (pbegin !== pend && source[pbegin] === 0) { - pbegin++ - zeroes++ - } - // Allocate enough space in big-endian base58 representation. - var size = ((pend - pbegin) * iFACTOR + 1) >>> 0 - var b58 = new Uint8Array(size) - // Process the bytes. - while (pbegin !== pend) { - var carry = source[pbegin] - // Apply "b58 = b58 * 256 + ch". - var i = 0 - for (var it1 = size - 1; (carry !== 0 || i < length) && (it1 !== -1); it1--, i++) { - carry += (256 * b58[it1]) >>> 0 - b58[it1] = (carry % BASE) >>> 0 - carry = (carry / BASE) >>> 0 - } - if (carry !== 0) { throw new Error('Non-zero carry') } - length = i - pbegin++ - } - // Skip leading zeroes in base58 result. - var it2 = size - length - while (it2 !== size && b58[it2] === 0) { - it2++ - } - // Translate the result into a string. - var str = LEADER.repeat(zeroes) - for (; it2 < size; ++it2) { str += ALPHABET.charAt(b58[it2]) } - return str - } - function decodeUnsafe (source) { - if (typeof source !== 'string') { throw new TypeError('Expected String') } - if (source.length === 0) { return _Buffer.alloc(0) } - var psz = 0 - // Skip leading spaces. - if (source[psz] === ' ') { return } - // Skip and count leading '1's. - var zeroes = 0 - var length = 0 - while (source[psz] === LEADER) { - zeroes++ - psz++ - } - // Allocate enough space in big-endian base256 representation. - var size = (((source.length - psz) * FACTOR) + 1) >>> 0 // log(58) / log(256), rounded up. - var b256 = new Uint8Array(size) - // Process the characters. - while (source[psz]) { - // Decode character - var carry = BASE_MAP[source.charCodeAt(psz)] - // Invalid character - if (carry === 255) { return } - var i = 0 - for (var it3 = size - 1; (carry !== 0 || i < length) && (it3 !== -1); it3--, i++) { - carry += (BASE * b256[it3]) >>> 0 - b256[it3] = (carry % 256) >>> 0 - carry = (carry / 256) >>> 0 - } - if (carry !== 0) { throw new Error('Non-zero carry') } - length = i - psz++ - } - // Skip trailing spaces. - if (source[psz] === ' ') { return } - // Skip leading zeroes in b256. - var it4 = size - length - while (it4 !== size && b256[it4] === 0) { - it4++ - } - var vch = _Buffer.allocUnsafe(zeroes + (size - it4)) - vch.fill(0x00, 0, zeroes) - var j = zeroes - while (it4 !== size) { - vch[j++] = b256[it4++] +function after(count, callback, err_cb) { + var bail = false + err_cb = err_cb || noop + proxy.count = count + + return (count === 0) ? callback() : proxy + + function proxy(err, result) { + if (proxy.count <= 0) { + throw new Error('after called too many times') + } + --proxy.count + + // after first error, rest are passed to err_cb + if (err) { + bail = true + callback(err) + // future error callbacks will go to error handler + callback = err_cb + } else if (proxy.count === 0 && !bail) { + callback(null, result) + } } - return vch - } - function decode (string) { - var buffer = decodeUnsafe(string) - if (buffer) { return buffer } - throw new Error('Non-base' + BASE + ' character') +} + +function noop() {} + + +/***/ }), + +/***/ 70078: +/***/ ((module) => { + +/** + * An abstraction for slicing an arraybuffer even when + * ArrayBuffer.prototype.slice is not supported + * + * @api public + */ + +module.exports = function(arraybuffer, start, end) { + var bytes = arraybuffer.byteLength; + start = start || 0; + end = end || bytes; + + if (arraybuffer.slice) { return arraybuffer.slice(start, end); } + + if (start < 0) { start += bytes; } + if (end < 0) { end += bytes; } + if (end > bytes) { end = bytes; } + + if (start >= bytes || start >= end || bytes === 0) { + return new ArrayBuffer(0); } - return { - encode: encode, - decodeUnsafe: decodeUnsafe, - decode: decode + + var abv = new Uint8Array(arraybuffer); + var result = new Uint8Array(end - start); + for (var i = start, ii = 0; i < end; i++, ii++) { + result[ii] = abv[i]; } + return result.buffer; +}; + + +/***/ }), + +/***/ 5060: +/***/ ((module) => { + + +/** + * Expose `Backoff`. + */ + +module.exports = Backoff; + +/** + * Initialize backoff timer with `opts`. + * + * - `min` initial timeout in milliseconds [100] + * - `max` max timeout [10000] + * - `jitter` [0] + * - `factor` [2] + * + * @param {Object} opts + * @api public + */ + +function Backoff(opts) { + opts = opts || {}; + this.ms = opts.min || 100; + this.max = opts.max || 10000; + this.factor = opts.factor || 2; + this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0; + this.attempts = 0; } -module.exports = base + +/** + * Return the backoff duration. + * + * @return {Number} + * @api public + */ + +Backoff.prototype.duration = function(){ + var ms = this.ms * Math.pow(this.factor, this.attempts++); + if (this.jitter) { + var rand = Math.random(); + var deviation = Math.floor(rand * this.jitter * ms); + ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation; + } + return Math.min(ms, this.max) | 0; +}; + +/** + * Reset the number of attempts. + * + * @api public + */ + +Backoff.prototype.reset = function(){ + this.attempts = 0; +}; + +/** + * Set the minimum duration + * + * @api public + */ + +Backoff.prototype.setMin = function(min){ + this.ms = min; +}; + +/** + * Set the maximum duration + * + * @api public + */ + +Backoff.prototype.setMax = function(max){ + this.max = max; +}; + +/** + * Set the jitter + * + * @api public + */ + +Backoff.prototype.setJitter = function(jitter){ + this.jitter = jitter; +}; + /***/ }), @@ -4359,6 +3503,72 @@ function base (ALPHABET) { module.exports = base +/***/ }), + +/***/ 96583: +/***/ ((__unused_webpack_module, exports) => { + +/* + * base64-arraybuffer + * https://github.com/niklasvh/base64-arraybuffer + * + * Copyright (c) 2012 Niklas von Hertzen + * Licensed under the MIT license. + */ +(function(chars){ + "use strict"; + + exports.encode = function(arraybuffer) { + var bytes = new Uint8Array(arraybuffer), + i, len = bytes.length, base64 = ""; + + for (i = 0; i < len; i+=3) { + base64 += chars[bytes[i] >> 2]; + base64 += chars[((bytes[i] & 3) << 4) | (bytes[i + 1] >> 4)]; + base64 += chars[((bytes[i + 1] & 15) << 2) | (bytes[i + 2] >> 6)]; + base64 += chars[bytes[i + 2] & 63]; + } + + if ((len % 3) === 2) { + base64 = base64.substring(0, base64.length - 1) + "="; + } else if (len % 3 === 1) { + base64 = base64.substring(0, base64.length - 2) + "=="; + } + + return base64; + }; + + exports.decode = function(base64) { + var bufferLength = base64.length * 0.75, + len = base64.length, i, p = 0, + encoded1, encoded2, encoded3, encoded4; + + if (base64[base64.length - 1] === "=") { + bufferLength--; + if (base64[base64.length - 2] === "=") { + bufferLength--; + } + } + + var arraybuffer = new ArrayBuffer(bufferLength), + bytes = new Uint8Array(arraybuffer); + + for (i = 0; i < len; i+=4) { + encoded1 = chars.indexOf(base64[i]); + encoded2 = chars.indexOf(base64[i+1]); + encoded3 = chars.indexOf(base64[i+2]); + encoded4 = chars.indexOf(base64[i+3]); + + bytes[p++] = (encoded1 << 2) | (encoded2 >> 4); + bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2); + bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63); + } + + return arraybuffer; + }; +})("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"); + + /***/ }), /***/ 26446: @@ -4517,6 +3727,113 @@ function fromByteArray (uint8) { } +/***/ }), + +/***/ 94121: +/***/ ((module) => { + +/** + * Create a blob builder even when vendor prefixes exist + */ + +var BlobBuilder = typeof BlobBuilder !== 'undefined' ? BlobBuilder : + typeof WebKitBlobBuilder !== 'undefined' ? WebKitBlobBuilder : + typeof MSBlobBuilder !== 'undefined' ? MSBlobBuilder : + typeof MozBlobBuilder !== 'undefined' ? MozBlobBuilder : + false; + +/** + * Check if Blob constructor is supported + */ + +var blobSupported = (function() { + try { + var a = new Blob(['hi']); + return a.size === 2; + } catch(e) { + return false; + } +})(); + +/** + * Check if Blob constructor supports ArrayBufferViews + * Fails in Safari 6, so we need to map to ArrayBuffers there. + */ + +var blobSupportsArrayBufferView = blobSupported && (function() { + try { + var b = new Blob([new Uint8Array([1,2])]); + return b.size === 2; + } catch(e) { + return false; + } +})(); + +/** + * Check if BlobBuilder is supported + */ + +var blobBuilderSupported = BlobBuilder + && BlobBuilder.prototype.append + && BlobBuilder.prototype.getBlob; + +/** + * Helper function that maps ArrayBufferViews to ArrayBuffers + * Used by BlobBuilder constructor and old browsers that didn't + * support it in the Blob constructor. + */ + +function mapArrayBufferViews(ary) { + return ary.map(function(chunk) { + if (chunk.buffer instanceof ArrayBuffer) { + var buf = chunk.buffer; + + // if this is a subarray, make a copy so we only + // include the subarray region from the underlying buffer + if (chunk.byteLength !== buf.byteLength) { + var copy = new Uint8Array(chunk.byteLength); + copy.set(new Uint8Array(buf, chunk.byteOffset, chunk.byteLength)); + buf = copy.buffer; + } + + return buf; + } + + return chunk; + }); +} + +function BlobBuilderConstructor(ary, options) { + options = options || {}; + + var bb = new BlobBuilder(); + mapArrayBufferViews(ary).forEach(function(part) { + bb.append(part); + }); + + return (options.type) ? bb.getBlob(options.type) : bb.getBlob(); +}; + +function BlobConstructor(ary, options) { + return new Blob(mapArrayBufferViews(ary), options || {}); +}; + +if (typeof Blob !== 'undefined') { + BlobBuilderConstructor.prototype = Blob.prototype; + BlobConstructor.prototype = Blob.prototype; +} + +module.exports = (function() { + if (blobSupported) { + return blobSupportsArrayBufferView ? Blob : BlobConstructor; + } else if (blobBuilderSupported) { + return BlobBuilderConstructor; + } else { + return undefined; + } +})(); + + /***/ }), /***/ 1512: @@ -5147,7 +4464,7 @@ module.exports = verify /***/ 91945: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { -var basex = __webpack_require__(14375) +var basex = __webpack_require__(62116) var ALPHABET = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz' module.exports = basex(ALPHABET) @@ -5250,7 +4567,7 @@ module.exports = { "use strict"; -var GetIntrinsic = __webpack_require__(49556); +var GetIntrinsic = __webpack_require__(2141); var callBind = __webpack_require__(25592); @@ -5274,7 +4591,7 @@ module.exports = function callBoundIntrinsic(name, allowMissing) { var bind = __webpack_require__(22698); -var GetIntrinsic = __webpack_require__(49556); +var GetIntrinsic = __webpack_require__(2141); var $apply = GetIntrinsic('%Function.prototype.apply%'); var $call = GetIntrinsic('%Function.prototype.call%'); @@ -6154,6 +5471,231 @@ var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! }()); +/***/ }), + +/***/ 75864: +/***/ ((module) => { + +/** + * Slice reference. + */ + +var slice = [].slice; + +/** + * Bind `obj` to `fn`. + * + * @param {Object} obj + * @param {Function|String} fn or string + * @return {Function} + * @api public + */ + +module.exports = function(obj, fn){ + if ('string' == typeof fn) fn = obj[fn]; + if ('function' != typeof fn) throw new Error('bind() requires a function'); + var args = slice.call(arguments, 2); + return function(){ + return fn.apply(obj, args.concat(slice.call(arguments))); + } +}; + + +/***/ }), + +/***/ 24482: +/***/ ((module) => { + + +/** + * Expose `Emitter`. + */ + +if (true) { + module.exports = Emitter; +} + +/** + * Initialize a new `Emitter`. + * + * @api public + */ + +function Emitter(obj) { + if (obj) return mixin(obj); +}; + +/** + * Mixin the emitter properties. + * + * @param {Object} obj + * @return {Object} + * @api private + */ + +function mixin(obj) { + for (var key in Emitter.prototype) { + obj[key] = Emitter.prototype[key]; + } + return obj; +} + +/** + * Listen on the given `event` with `fn`. + * + * @param {String} event + * @param {Function} fn + * @return {Emitter} + * @api public + */ + +Emitter.prototype.on = +Emitter.prototype.addEventListener = function(event, fn){ + this._callbacks = this._callbacks || {}; + (this._callbacks['$' + event] = this._callbacks['$' + event] || []) + .push(fn); + return this; +}; + +/** + * Adds an `event` listener that will be invoked a single + * time then automatically removed. + * + * @param {String} event + * @param {Function} fn + * @return {Emitter} + * @api public + */ + +Emitter.prototype.once = function(event, fn){ + function on() { + this.off(event, on); + fn.apply(this, arguments); + } + + on.fn = fn; + this.on(event, on); + return this; +}; + +/** + * Remove the given callback for `event` or all + * registered callbacks. + * + * @param {String} event + * @param {Function} fn + * @return {Emitter} + * @api public + */ + +Emitter.prototype.off = +Emitter.prototype.removeListener = +Emitter.prototype.removeAllListeners = +Emitter.prototype.removeEventListener = function(event, fn){ + this._callbacks = this._callbacks || {}; + + // all + if (0 == arguments.length) { + this._callbacks = {}; + return this; + } + + // specific event + var callbacks = this._callbacks['$' + event]; + if (!callbacks) return this; + + // remove all handlers + if (1 == arguments.length) { + delete this._callbacks['$' + event]; + return this; + } + + // remove specific handler + var cb; + for (var i = 0; i < callbacks.length; i++) { + cb = callbacks[i]; + if (cb === fn || cb.fn === fn) { + callbacks.splice(i, 1); + break; + } + } + + // Remove event specific arrays for event types that no + // one is subscribed for to avoid memory leak. + if (callbacks.length === 0) { + delete this._callbacks['$' + event]; + } + + return this; +}; + +/** + * Emit `event` with the given args. + * + * @param {String} event + * @param {Mixed} ... + * @return {Emitter} + */ + +Emitter.prototype.emit = function(event){ + this._callbacks = this._callbacks || {}; + + var args = new Array(arguments.length - 1) + , callbacks = this._callbacks['$' + event]; + + for (var i = 1; i < arguments.length; i++) { + args[i - 1] = arguments[i]; + } + + if (callbacks) { + callbacks = callbacks.slice(0); + for (var i = 0, len = callbacks.length; i < len; ++i) { + callbacks[i].apply(this, args); + } + } + + return this; +}; + +/** + * Return array of callbacks for `event`. + * + * @param {String} event + * @return {Array} + * @api public + */ + +Emitter.prototype.listeners = function(event){ + this._callbacks = this._callbacks || {}; + return this._callbacks['$' + event] || []; +}; + +/** + * Check if this emitter has `event` handlers. + * + * @param {String} event + * @return {Boolean} + * @api public + */ + +Emitter.prototype.hasListeners = function(event){ + return !! this.listeners(event).length; +}; + + +/***/ }), + +/***/ 50173: +/***/ ((module) => { + + +module.exports = function(a, b){ + var fn = function(){}; + fn.prototype = b.prototype; + a.prototype = new fn; + a.prototype.constructor = a; +}; + /***/ }), /***/ 14913: @@ -7220,6 +6762,61 @@ defineProperties.supportsDescriptors = !!supportsDescriptors; module.exports = defineProperties; +/***/ }), + +/***/ 76699: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; + + +var keys = __webpack_require__(53571); +var hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol'; + +var toStr = Object.prototype.toString; +var concat = Array.prototype.concat; +var origDefineProperty = Object.defineProperty; + +var isFunction = function (fn) { + return typeof fn === 'function' && toStr.call(fn) === '[object Function]'; +}; + +var hasPropertyDescriptors = __webpack_require__(70138)(); + +var supportsDescriptors = origDefineProperty && hasPropertyDescriptors; + +var defineProperty = function (object, name, value, predicate) { + if (name in object && (!isFunction(predicate) || !predicate())) { + return; + } + if (supportsDescriptors) { + origDefineProperty(object, name, { + configurable: true, + enumerable: false, + value: value, + writable: true + }); + } else { + object[name] = value; // eslint-disable-line no-param-reassign + } +}; + +var defineProperties = function (object, map) { + var predicates = arguments.length > 2 ? arguments[2] : {}; + var props = keys(map); + if (hasSymbols) { + props = concat.call(props, Object.getOwnPropertySymbols(map)); + } + for (var i = 0; i < props.length; i += 1) { + defineProperty(object, props[i], map[props[i]], predicates[props[i]]); + } +}; + +defineProperties.supportsDescriptors = !!supportsDescriptors; + +module.exports = defineProperties; + + /***/ }), /***/ 29236: @@ -8672,6 +8269,143 @@ exports.hash = namehash exports.normalize = normalize +/***/ }), + +/***/ 77224: +/***/ ((module) => { + +(function() { + // The random number is a js implementation of the Xorshift PRNG + var randseed = new Array(4); // Xorshift: [x, y, z, w] 32 bit values + + function seedrand(seed) { + for (var i = 0; i < randseed.length; i++) { + randseed[i] = 0; + } + for (var i = 0; i < seed.length; i++) { + randseed[i%4] = ((randseed[i%4] << 5) - randseed[i%4]) + seed.charCodeAt(i); + } + } + + function rand() { + // based on Java's String.hashCode(), expanded to 4 32bit values + var t = randseed[0] ^ (randseed[0] << 11); + + randseed[0] = randseed[1]; + randseed[1] = randseed[2]; + randseed[2] = randseed[3]; + randseed[3] = (randseed[3] ^ (randseed[3] >> 19) ^ t ^ (t >> 8)); + + return (randseed[3]>>>0) / ((1 << 31)>>>0); + } + + function createColor() { + //saturation is the whole color spectrum + var h = Math.floor(rand() * 360); + //saturation goes from 40 to 100, it avoids greyish colors + var s = ((rand() * 60) + 40) + '%'; + //lightness can be anything from 0 to 100, but probabilities are a bell curve around 50% + var l = ((rand()+rand()+rand()+rand()) * 25) + '%'; + + var color = 'hsl(' + h + ',' + s + ',' + l + ')'; + return color; + } + + function createImageData(size) { + var width = size; // Only support square icons for now + var height = size; + + var dataWidth = Math.ceil(width / 2); + var mirrorWidth = width - dataWidth; + + var data = []; + for(var y = 0; y < height; y++) { + var row = []; + for(var x = 0; x < dataWidth; x++) { + // this makes foreground and background color to have a 43% (1/2.3) probability + // spot color has 13% chance + row[x] = Math.floor(rand()*2.3); + } + var r = row.slice(0, mirrorWidth); + r.reverse(); + row = row.concat(r); + + for(var i = 0; i < row.length; i++) { + data.push(row[i]); + } + } + + return data; + } + + function buildOpts(opts) { + var newOpts = {}; + + newOpts.size = opts.size || 8; + newOpts.scale = opts.scale || 4; + newOpts.seed = opts.seed || Math.floor((Math.random()*Math.pow(10,16))).toString(16); + newOpts.color = opts.color || createColor(); + newOpts.bgcolor = opts.bgcolor || createColor(); + newOpts.spotcolor = opts.spotcolor || createColor(); + + seedrand(newOpts.seed); + + return newOpts; + } + + function renderIcon(opts, canvas) { + var opts = buildOpts(opts || {}); + + var imageData = createImageData(opts.size); + var width = Math.sqrt(imageData.length); + + canvas.width = canvas.height = opts.size * opts.scale; + + var cc = canvas.getContext('2d'); + cc.fillStyle = opts.bgcolor; + cc.fillRect(0, 0, canvas.width, canvas.height); + cc.fillStyle = opts.color; + + for(var i = 0; i < imageData.length; i++) { + + // if data is 0, leave the background + if(imageData[i]) { + var row = Math.floor(i / width); + var col = i % width; + + // if data is 2, choose spot color, if 1 choose foreground + cc.fillStyle = (imageData[i] == 1) ? opts.color : opts.spotcolor; + + cc.fillRect(col * opts.scale, row * opts.scale, opts.scale, opts.scale); + } + } + return canvas; + } + + function createIcon(opts) { + var opts = buildOpts(opts || {}); + var canvas = document.createElement('canvas'); + + renderIcon(opts, canvas); + + return canvas; + } + + var api = { + create: createIcon, + render: renderIcon + }; + + if (true) { + module.exports = api; + } + if (typeof window !== "undefined") { + window.blockies = api; + } + +})(); + + /***/ }), /***/ 75001: @@ -12316,118 +12050,6 @@ function EVP_BytesToKey (password, salt, keyBits, ivLen) { module.exports = EVP_BytesToKey -/***/ }), - -/***/ 65416: -/***/ ((module) => { - -"use strict"; - - -module.exports = function ReactNativeFile(_ref) { - var uri = _ref.uri, - name = _ref.name, - type = _ref.type; - this.uri = uri; - this.name = name; - this.type = type; -}; - - -/***/ }), - -/***/ 32322: -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - - -var defaultIsExtractableFile = __webpack_require__(17692); - -module.exports = function extractFiles(value, path, isExtractableFile) { - if (path === void 0) { - path = ''; - } - - if (isExtractableFile === void 0) { - isExtractableFile = defaultIsExtractableFile; - } - - var clone; - var files = new Map(); - - function addFile(paths, file) { - var storedPaths = files.get(file); - if (storedPaths) storedPaths.push.apply(storedPaths, paths); - else files.set(file, paths); - } - - if (isExtractableFile(value)) { - clone = null; - addFile([path], value); - } else { - var prefix = path ? path + '.' : ''; - if (typeof FileList !== 'undefined' && value instanceof FileList) - clone = Array.prototype.map.call(value, function (file, i) { - addFile(['' + prefix + i], file); - return null; - }); - else if (Array.isArray(value)) - clone = value.map(function (child, i) { - var result = extractFiles(child, '' + prefix + i, isExtractableFile); - result.files.forEach(addFile); - return result.clone; - }); - else if (value && value.constructor === Object) { - clone = {}; - - for (var i in value) { - var result = extractFiles(value[i], '' + prefix + i, isExtractableFile); - result.files.forEach(addFile); - clone[i] = result.clone; - } - } else clone = value; - } - - return { - clone: clone, - files: files, - }; -}; - - -/***/ }), - -/***/ 89473: -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -"use strict"; - - -exports.ReactNativeFile = __webpack_require__(65416); -exports.extractFiles = __webpack_require__(32322); -exports.isExtractableFile = __webpack_require__(17692); - - -/***/ }), - -/***/ 17692: -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -"use strict"; - - -var ReactNativeFile = __webpack_require__(65416); - -module.exports = function isExtractableFile(value) { - return ( - (typeof File !== 'undefined' && value instanceof File) || - (typeof Blob !== 'undefined' && value instanceof Blob) || - value instanceof ReactNativeFile - ); -}; - - /***/ }), /***/ 68241: @@ -12459,16 +12081,7 @@ module.exports = function forEach (obj, fn, ctx) { /***/ }), -/***/ 47141: -/***/ ((module) => { - -/* eslint-env browser */ -module.exports = typeof self == 'object' ? self.FormData : window.FormData; - - -/***/ }), - -/***/ 59748: +/***/ 54220: /***/ ((module) => { "use strict"; @@ -12534,367 +12147,166 @@ module.exports = function bind(that) { "use strict"; -var implementation = __webpack_require__(59748); +var implementation = __webpack_require__(54220); module.exports = Function.prototype.bind || implementation; /***/ }), -/***/ 49556: +/***/ 74560: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { -"use strict"; +var win; +if (typeof window !== "undefined") { + win = window; +} else if (typeof __webpack_require__.g !== "undefined") { + win = __webpack_require__.g; +} else if (typeof self !== "undefined"){ + win = self; +} else { + win = {}; +} -var undefined; +module.exports = win; -var $SyntaxError = SyntaxError; -var $Function = Function; -var $TypeError = TypeError; -// eslint-disable-next-line consistent-return -var getEvalledConstructor = function (expressionSyntax) { - try { - return $Function('"use strict"; return (' + expressionSyntax + ').constructor;')(); - } catch (e) {} -}; +/***/ }), -var $gOPD = Object.getOwnPropertyDescriptor; -if ($gOPD) { - try { - $gOPD({}, ''); - } catch (e) { - $gOPD = null; // this is IE 8, which has a broken gOPD - } -} +/***/ 34196: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { -var throwTypeError = function () { - throw new $TypeError(); -}; -var ThrowTypeError = $gOPD - ? (function () { - try { - // eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties - arguments.callee; // IE 8 does not throw here - return throwTypeError; - } catch (calleeThrows) { - try { - // IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '') - return $gOPD(arguments, 'callee').get; - } catch (gOPDthrows) { - return throwTypeError; - } - } - }()) - : throwTypeError; - -var hasSymbols = __webpack_require__(72770)(); - -var getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto - -var needsEval = {}; - -var TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array); - -var INTRINSICS = { - '%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError, - '%Array%': Array, - '%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer, - '%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined, - '%AsyncFromSyncIteratorPrototype%': undefined, - '%AsyncFunction%': needsEval, - '%AsyncGenerator%': needsEval, - '%AsyncGeneratorFunction%': needsEval, - '%AsyncIteratorPrototype%': needsEval, - '%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics, - '%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt, - '%Boolean%': Boolean, - '%DataView%': typeof DataView === 'undefined' ? undefined : DataView, - '%Date%': Date, - '%decodeURI%': decodeURI, - '%decodeURIComponent%': decodeURIComponent, - '%encodeURI%': encodeURI, - '%encodeURIComponent%': encodeURIComponent, - '%Error%': Error, - '%eval%': eval, // eslint-disable-line no-eval - '%EvalError%': EvalError, - '%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array, - '%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array, - '%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry, - '%Function%': $Function, - '%GeneratorFunction%': needsEval, - '%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array, - '%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array, - '%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array, - '%isFinite%': isFinite, - '%isNaN%': isNaN, - '%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined, - '%JSON%': typeof JSON === 'object' ? JSON : undefined, - '%Map%': typeof Map === 'undefined' ? undefined : Map, - '%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()), - '%Math%': Math, - '%Number%': Number, - '%Object%': Object, - '%parseFloat%': parseFloat, - '%parseInt%': parseInt, - '%Promise%': typeof Promise === 'undefined' ? undefined : Promise, - '%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy, - '%RangeError%': RangeError, - '%ReferenceError%': ReferenceError, - '%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect, - '%RegExp%': RegExp, - '%Set%': typeof Set === 'undefined' ? undefined : Set, - '%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()), - '%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer, - '%String%': String, - '%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined, - '%Symbol%': hasSymbols ? Symbol : undefined, - '%SyntaxError%': $SyntaxError, - '%ThrowTypeError%': ThrowTypeError, - '%TypedArray%': TypedArray, - '%TypeError%': $TypeError, - '%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array, - '%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray, - '%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array, - '%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array, - '%URIError%': URIError, - '%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap, - '%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef, - '%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet -}; - -var doEval = function doEval(name) { - var value; - if (name === '%AsyncFunction%') { - value = getEvalledConstructor('async function () {}'); - } else if (name === '%GeneratorFunction%') { - value = getEvalledConstructor('function* () {}'); - } else if (name === '%AsyncGeneratorFunction%') { - value = getEvalledConstructor('async function* () {}'); - } else if (name === '%AsyncGenerator%') { - var fn = doEval('%AsyncGeneratorFunction%'); - if (fn) { - value = fn.prototype; - } - } else if (name === '%AsyncIteratorPrototype%') { - var gen = doEval('%AsyncGenerator%'); - if (gen) { - value = getProto(gen.prototype); - } - } +/* provided dependency */ var Buffer = __webpack_require__(15313)["Buffer"]; +/* global Blob File */ - INTRINSICS[name] = value; - - return value; -}; - -var LEGACY_ALIASES = { - '%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'], - '%ArrayPrototype%': ['Array', 'prototype'], - '%ArrayProto_entries%': ['Array', 'prototype', 'entries'], - '%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'], - '%ArrayProto_keys%': ['Array', 'prototype', 'keys'], - '%ArrayProto_values%': ['Array', 'prototype', 'values'], - '%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'], - '%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'], - '%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'], - '%BooleanPrototype%': ['Boolean', 'prototype'], - '%DataViewPrototype%': ['DataView', 'prototype'], - '%DatePrototype%': ['Date', 'prototype'], - '%ErrorPrototype%': ['Error', 'prototype'], - '%EvalErrorPrototype%': ['EvalError', 'prototype'], - '%Float32ArrayPrototype%': ['Float32Array', 'prototype'], - '%Float64ArrayPrototype%': ['Float64Array', 'prototype'], - '%FunctionPrototype%': ['Function', 'prototype'], - '%Generator%': ['GeneratorFunction', 'prototype'], - '%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'], - '%Int8ArrayPrototype%': ['Int8Array', 'prototype'], - '%Int16ArrayPrototype%': ['Int16Array', 'prototype'], - '%Int32ArrayPrototype%': ['Int32Array', 'prototype'], - '%JSONParse%': ['JSON', 'parse'], - '%JSONStringify%': ['JSON', 'stringify'], - '%MapPrototype%': ['Map', 'prototype'], - '%NumberPrototype%': ['Number', 'prototype'], - '%ObjectPrototype%': ['Object', 'prototype'], - '%ObjProto_toString%': ['Object', 'prototype', 'toString'], - '%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'], - '%PromisePrototype%': ['Promise', 'prototype'], - '%PromiseProto_then%': ['Promise', 'prototype', 'then'], - '%Promise_all%': ['Promise', 'all'], - '%Promise_reject%': ['Promise', 'reject'], - '%Promise_resolve%': ['Promise', 'resolve'], - '%RangeErrorPrototype%': ['RangeError', 'prototype'], - '%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'], - '%RegExpPrototype%': ['RegExp', 'prototype'], - '%SetPrototype%': ['Set', 'prototype'], - '%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'], - '%StringPrototype%': ['String', 'prototype'], - '%SymbolPrototype%': ['Symbol', 'prototype'], - '%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'], - '%TypedArrayPrototype%': ['TypedArray', 'prototype'], - '%TypeErrorPrototype%': ['TypeError', 'prototype'], - '%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'], - '%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'], - '%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'], - '%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'], - '%URIErrorPrototype%': ['URIError', 'prototype'], - '%WeakMapPrototype%': ['WeakMap', 'prototype'], - '%WeakSetPrototype%': ['WeakSet', 'prototype'] -}; +/* + * Module requirements. + */ -var bind = __webpack_require__(22698); -var hasOwn = __webpack_require__(22786); -var $concat = bind.call(Function.call, Array.prototype.concat); -var $spliceApply = bind.call(Function.apply, Array.prototype.splice); -var $replace = bind.call(Function.call, String.prototype.replace); -var $strSlice = bind.call(Function.call, String.prototype.slice); - -/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */ -var rePropName = /[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g; -var reEscapeChar = /\\(\\)?/g; /** Used to match backslashes in property paths. */ -var stringToPath = function stringToPath(string) { - var first = $strSlice(string, 0, 1); - var last = $strSlice(string, -1); - if (first === '%' && last !== '%') { - throw new $SyntaxError('invalid intrinsic syntax, expected closing `%`'); - } else if (last === '%' && first !== '%') { - throw new $SyntaxError('invalid intrinsic syntax, expected opening `%`'); - } - var result = []; - $replace(string, rePropName, function (match, number, quote, subString) { - result[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match; - }); - return result; -}; -/* end adaptation */ +var isArray = __webpack_require__(26430); -var getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) { - var intrinsicName = name; - var alias; - if (hasOwn(LEGACY_ALIASES, intrinsicName)) { - alias = LEGACY_ALIASES[intrinsicName]; - intrinsicName = '%' + alias[0] + '%'; - } +var toString = Object.prototype.toString; +var withNativeBlob = typeof Blob === 'function' || + typeof Blob !== 'undefined' && toString.call(Blob) === '[object BlobConstructor]'; +var withNativeFile = typeof File === 'function' || + typeof File !== 'undefined' && toString.call(File) === '[object FileConstructor]'; - if (hasOwn(INTRINSICS, intrinsicName)) { - var value = INTRINSICS[intrinsicName]; - if (value === needsEval) { - value = doEval(intrinsicName); - } - if (typeof value === 'undefined' && !allowMissing) { - throw new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!'); - } +/** + * Module exports. + */ - return { - alias: alias, - name: intrinsicName, - value: value - }; - } +module.exports = hasBinary; - throw new $SyntaxError('intrinsic ' + name + ' does not exist!'); -}; +/** + * Checks for binary data. + * + * Supports Buffer, ArrayBuffer, Blob and File. + * + * @param {Object} anything + * @api public + */ -module.exports = function GetIntrinsic(name, allowMissing) { - if (typeof name !== 'string' || name.length === 0) { - throw new $TypeError('intrinsic name must be a non-empty string'); - } - if (arguments.length > 1 && typeof allowMissing !== 'boolean') { - throw new $TypeError('"allowMissing" argument must be a boolean'); - } +function hasBinary (obj) { + if (!obj || typeof obj !== 'object') { + return false; + } - var parts = stringToPath(name); - var intrinsicBaseName = parts.length > 0 ? parts[0] : ''; + if (isArray(obj)) { + for (var i = 0, l = obj.length; i < l; i++) { + if (hasBinary(obj[i])) { + return true; + } + } + return false; + } - var intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing); - var intrinsicRealName = intrinsic.name; - var value = intrinsic.value; - var skipFurtherCaching = false; + if ((typeof Buffer === 'function' && Buffer.isBuffer && Buffer.isBuffer(obj)) || + (typeof ArrayBuffer === 'function' && obj instanceof ArrayBuffer) || + (withNativeBlob && obj instanceof Blob) || + (withNativeFile && obj instanceof File) + ) { + return true; + } - var alias = intrinsic.alias; - if (alias) { - intrinsicBaseName = alias[0]; - $spliceApply(parts, $concat([0, 1], alias)); - } + // see: https://github.com/Automattic/has-binary/pull/4 + if (obj.toJSON && typeof obj.toJSON === 'function' && arguments.length === 1) { + return hasBinary(obj.toJSON(), true); + } - for (var i = 1, isOwn = true; i < parts.length; i += 1) { - var part = parts[i]; - var first = $strSlice(part, 0, 1); - var last = $strSlice(part, -1); - if ( - ( - (first === '"' || first === "'" || first === '`') - || (last === '"' || last === "'" || last === '`') - ) - && first !== last - ) { - throw new $SyntaxError('property names with quotes must have matching quotes'); - } - if (part === 'constructor' || !isOwn) { - skipFurtherCaching = true; - } + for (var key in obj) { + if (Object.prototype.hasOwnProperty.call(obj, key) && hasBinary(obj[key])) { + return true; + } + } - intrinsicBaseName += '.' + part; - intrinsicRealName = '%' + intrinsicBaseName + '%'; + return false; +} - if (hasOwn(INTRINSICS, intrinsicRealName)) { - value = INTRINSICS[intrinsicRealName]; - } else if (value != null) { - if (!(part in value)) { - if (!allowMissing) { - throw new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.'); - } - return void undefined; - } - if ($gOPD && (i + 1) >= parts.length) { - var desc = $gOPD(value, part); - isOwn = !!desc; - - // By convention, when a data property is converted to an accessor - // property to emulate a data property that does not suffer from - // the override mistake, that accessor's getter is marked with - // an `originalValue` property. Here, when we detect this, we - // uphold the illusion by pretending to see that original data - // property, i.e., returning the value rather than the getter - // itself. - if (isOwn && 'get' in desc && !('originalValue' in desc.get)) { - value = desc.get; - } else { - value = value[part]; - } - } else { - isOwn = hasOwn(value, part); - value = value[part]; - } - if (isOwn && !skipFurtherCaching) { - INTRINSICS[intrinsicRealName] = value; - } - } - } - return value; -}; +/***/ }), + +/***/ 22500: +/***/ ((module) => { + + +/** + * Module exports. + * + * Logic borrowed from Modernizr: + * + * - https://github.com/Modernizr/Modernizr/blob/master/feature-detects/cors.js + */ + +try { + module.exports = typeof XMLHttpRequest !== 'undefined' && + 'withCredentials' in new XMLHttpRequest(); +} catch (err) { + // if XMLHttp support is disabled in IE then it will throw + // when trying to create + module.exports = false; +} /***/ }), -/***/ 74560: +/***/ 70138: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { -var win; +"use strict"; -if (typeof window !== "undefined") { - win = window; -} else if (typeof __webpack_require__.g !== "undefined") { - win = __webpack_require__.g; -} else if (typeof self !== "undefined"){ - win = self; -} else { - win = {}; -} -module.exports = win; +var GetIntrinsic = __webpack_require__(2141); + +var $defineProperty = GetIntrinsic('%Object.defineProperty%', true); + +var hasPropertyDescriptors = function hasPropertyDescriptors() { + if ($defineProperty) { + try { + $defineProperty({}, 'a', { value: 1 }); + return true; + } catch (e) { + // IE 8 has a broken defineProperty + return false; + } + } + return false; +}; + +hasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() { + // node v0.6 has a bug where array lengths can be Set but not Defined + if (!hasPropertyDescriptors()) { + return null; + } + try { + return $defineProperty([], 'length', { value: 1 }).length !== 1; + } catch (e) { + // In Firefox 4-22, defining length on an array throws an exception. + return true; + } +}; + +module.exports = hasPropertyDescriptors; /***/ }), @@ -14010,6 +13422,38 @@ exports.write = function (buffer, value, offset, isLE, mLen, nBytes) { } +/***/ }), + +/***/ 60232: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "Fl": () => (/* binding */ cr), +/* harmony export */ "MD": () => (/* binding */ T), +/* harmony export */ "ZP": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* unused harmony exports Immer, applyPatches, castDraft, castImmutable, createDraft, current, enableAllPlugins, enableES5, enablePatches, finishDraft, freeze, immerable, isDraft, isDraftable, nothing, original, produce, produceWithPatches, setUseProxies */ +function r(r){for(var e=arguments.length,n=Array(e>1?e-1:0),t=1;t3?e.i-4:e.i:Array.isArray(r)?1:l(r)?2:s(r)?3:0}function a(r,e){return 2===o(r)?r.has(e):Object.prototype.hasOwnProperty.call(r,e)}function u(r,e){return 2===o(r)?r.get(e):r[e]}function f(r,e,n){var t=o(r);2===t?r.set(e,n):3===t?(r.delete(e),r.add(n)):r[e]=n}function c(r,e){return r===e?0!==r||1/r==1/e:r!=r&&e!=e}function l(r){return X&&r instanceof Map}function s(r){return q&&r instanceof Set}function v(r){return r.o||r.t}function p(r){if(Array.isArray(r))return Array.prototype.slice.call(r);var e=er(r);delete e[Q];for(var n=rr(e),t=0;t1){var a={configurable:!0,writable:!0,value:b};Object.defineProperties(r,{set:a,add:a,clear:a,delete:a})}return Object.freeze(r),t&&i(r,(function(r,e){return d(e,!0)}),!0),r}function b(){r(2)}function h(r){return null==r||"object"!=typeof r||Object.isFrozen(r)}function y(e){var n=nr[e];return n||r(18,e),n}function m(r,e){nr[r]||(nr[r]=e)}function _(){return true||0,U}function g(r,e){e&&(y("Patches"),r.u=[],r.l=[],r.s=e)}function w(r){j(r),r.v.forEach(S),r.v=null}function j(r){r===U&&(U=r.p)}function O(r){return U={v:[],p:U,h:r,m:!0,_:0}}function S(r){var e=r[Q];0===e.i||1===e.i?e.g():e.j=!0}function P(e,t){t._=t.v.length;var i=t.v[0],o=void 0!==e&&e!==i;return t.h.O||y("ES5").S(t,e,o),o?(i[Q].P&&(w(t),r(4)),n(e)&&(e=M(t,e),t.p||x(t,e)),t.u&&y("Patches").M(i[Q].t,e,t.u,t.l)):e=M(t,i,[]),w(t),t.u&&t.s(t.u,t.l),e!==H?e:void 0}function M(r,e,n){if(h(e))return e;var t=e[Q];if(!t)return i(e,(function(i,o){return A(r,t,e,i,o,n)}),!0),e;if(t.A!==r)return e;if(!t.P)return x(r,t.t,!0),t.t;if(!t.k){t.k=!0,t.A._--;var o=4===t.i||5===t.i?t.o=p(t.I):t.o;i(3===t.i?new Set(o):o,(function(e,i){return A(r,t,o,e,i,n)})),x(r,o,!1),n&&r.u&&y("Patches").R(t,n,r.u,r.l)}return t.o}function A(t,i,o,u,c,l){if( false&&0,e(c)){var s=M(t,c,l&&i&&3!==i.i&&!a(i.D,u)?l.concat(u):void 0);if(f(o,u,s),!e(s))return;t.m=!1}if(n(c)&&!h(c)){if(!t.h.F&&t._<1)return;M(t,c),i&&i.A.p||x(t,c)}}function x(r,e,n){void 0===n&&(n=!1),r.h.F&&r.m&&d(e,n)}function k(r,e){var n=r[Q];return(n?v(n):r)[e]}function z(r,e){if(e in r)for(var n=Object.getPrototypeOf(r);n;){var t=Object.getOwnPropertyDescriptor(n,e);if(t)return t;n=Object.getPrototypeOf(n)}}function I(r){r.P||(r.P=!0,r.p&&I(r.p))}function E(r){r.o||(r.o=p(r.t))}function R(r,e,n){var t=l(e)?y("MapSet").N(e,n):s(e)?y("MapSet").T(e,n):r.O?function(r,e){var n=Array.isArray(r),t={i:n?1:0,A:e?e.A:_(),P:!1,k:!1,D:{},p:e,t:r,I:null,o:null,g:null,C:!1},i=t,o=tr;n&&(i=[t],o=ir);var a=Proxy.revocable(i,o),u=a.revoke,f=a.proxy;return t.I=f,t.g=u,f}(e,n):y("ES5").J(e,n);return(n?n.A:_()).v.push(t),t}function D(t){return e(t)||r(22,t),function r(e){if(!n(e))return e;var t,a=e[Q],c=o(e);if(a){if(!a.P&&(a.i<4||!y("ES5").K(a)))return a.t;a.k=!0,t=F(e,c),a.k=!1}else t=F(e,c);return i(t,(function(e,n){a&&u(a.t,e)===n||f(t,e,r(n))})),3===c?new Set(t):t}(t)}function F(r,e){switch(e){case 2:return new Map(r);case 3:return Array.from(r)}return p(r)}function N(){function n(r,e){var n=l[r];return n?n.enumerable=e:l[r]=n={configurable:!0,enumerable:e,get:function(){var e=this[Q];return false&&0,tr.get(e,r)},set:function(e){var n=this[Q]; false&&0,tr.set(n,r,e)}},n}function t(r){for(var e=r.length-1;e>=0;e--){var n=r[e][Q];if(!n.P)switch(n.i){case 5:u(n)&&I(n);break;case 4:o(n)&&I(n)}}}function o(r){for(var e=r.t,n=r.I,t=rr(n),i=t.length-1;i>=0;i--){var o=t[i];if(o!==Q){var u=e[o];if(void 0===u&&!a(e,o))return!0;var f=n[o],l=f&&f[Q];if(l?l.t!==u:!c(f,u))return!0}}var s=!!e[Q];return t.length!==rr(e).length+(s?0:1)}function u(r){var e=r.I;if(e.length!==r.t.length)return!0;var n=Object.getOwnPropertyDescriptor(e,e.length-1);if(n&&!n.get)return!0;for(var t=0;t1?n-1:0),o=1;o1?n-1:0),o=1;o=0;t--){var i=n[t];if(0===i.path.length&&"replace"===i.op){r=i.value;break}}t>-1&&(n=n.slice(t+1));var o=y("Patches").$;return e(r)?o(r,n):this.produce(r,(function(r){return o(r,n)}))},t}(),ar=new or,ur=ar.produce,fr=ar.produceWithPatches.bind(ar),cr=ar.setAutoFreeze.bind(ar),lr=ar.setUseProxies.bind(ar),sr=ar.applyPatches.bind(ar),vr=ar.createDraft.bind(ar),pr=ar.finishDraft.bind(ar);/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (ur); +//# sourceMappingURL=immer.esm.js.map + + +/***/ }), + +/***/ 81363: +/***/ ((module) => { + + +var indexOf = [].indexOf; + +module.exports = function(arr, obj){ + if (indexOf) return arr.indexOf(obj); + for (var i = 0; i < arr.length; ++i) { + if (arr[i] === obj) return i; + } + return -1; +}; + /***/ }), /***/ 67483: @@ -14341,6 +13785,18 @@ module.exports = Array.isArray || function (arr) { }; +/***/ }), + +/***/ 26430: +/***/ ((module) => { + +var toString = {}.toString; + +module.exports = Array.isArray || function (arr) { + return toString.call(arr) == '[object Array]'; +}; + + /***/ }), /***/ 28424: @@ -15003,6 +14459,165 @@ utils.encode = function encode(arr, enc) { }; +/***/ }), + +/***/ 71881: +/***/ ((module) => { + +/** + * Helpers. + */ + +var s = 1000; +var m = s * 60; +var h = m * 60; +var d = h * 24; +var y = d * 365.25; + +/** + * Parse or format the given `val`. + * + * Options: + * + * - `long` verbose formatting [false] + * + * @param {String|Number} val + * @param {Object} [options] + * @throws {Error} throw an error if val is not a non-empty string or a number + * @return {String|Number} + * @api public + */ + +module.exports = function(val, options) { + options = options || {}; + var type = typeof val; + if (type === 'string' && val.length > 0) { + return parse(val); + } else if (type === 'number' && isNaN(val) === false) { + return options.long ? fmtLong(val) : fmtShort(val); + } + throw new Error( + 'val is not a non-empty string or a valid number. val=' + + JSON.stringify(val) + ); +}; + +/** + * Parse the given `str` and return milliseconds. + * + * @param {String} str + * @return {Number} + * @api private + */ + +function parse(str) { + str = String(str); + if (str.length > 100) { + return; + } + var match = /^((?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec( + str + ); + if (!match) { + return; + } + var n = parseFloat(match[1]); + var type = (match[2] || 'ms').toLowerCase(); + switch (type) { + case 'years': + case 'year': + case 'yrs': + case 'yr': + case 'y': + return n * y; + case 'days': + case 'day': + case 'd': + return n * d; + case 'hours': + case 'hour': + case 'hrs': + case 'hr': + case 'h': + return n * h; + case 'minutes': + case 'minute': + case 'mins': + case 'min': + case 'm': + return n * m; + case 'seconds': + case 'second': + case 'secs': + case 'sec': + case 's': + return n * s; + case 'milliseconds': + case 'millisecond': + case 'msecs': + case 'msec': + case 'ms': + return n; + default: + return undefined; + } +} + +/** + * Short format for `ms`. + * + * @param {Number} ms + * @return {String} + * @api private + */ + +function fmtShort(ms) { + if (ms >= d) { + return Math.round(ms / d) + 'd'; + } + if (ms >= h) { + return Math.round(ms / h) + 'h'; + } + if (ms >= m) { + return Math.round(ms / m) + 'm'; + } + if (ms >= s) { + return Math.round(ms / s) + 's'; + } + return ms + 'ms'; +} + +/** + * Long format for `ms`. + * + * @param {Number} ms + * @return {String} + * @api private + */ + +function fmtLong(ms) { + return plural(ms, d, 'day') || + plural(ms, h, 'hour') || + plural(ms, m, 'minute') || + plural(ms, s, 'second') || + ms + ' ms'; +} + +/** + * Pluralization helper. + */ + +function plural(ms, n, name) { + if (ms < n) { + return; + } + if (ms < n * 1.5) { + return Math.floor(ms / n) + ' ' + name; + } + return Math.ceil(ms / n) + ' ' + name + 's'; +} + + /***/ }), /***/ 28255: @@ -15264,7 +14879,7 @@ module.exports = function is(a, b) { "use strict"; -var define = __webpack_require__(5597); +var define = __webpack_require__(76699); var callBind = __webpack_require__(25592); var implementation = __webpack_require__(86434); @@ -15306,7 +14921,7 @@ module.exports = function getPolyfill() { var getPolyfill = __webpack_require__(65669); -var define = __webpack_require__(5597); +var define = __webpack_require__(76699); module.exports = function shimObjectIs() { var polyfill = getPolyfill(); @@ -15932,6 +15547,125 @@ module.exports = function (headers) { } +/***/ }), + +/***/ 32386: +/***/ ((__unused_webpack_module, exports) => { + +/** + * Compiles a querystring + * Returns string representation of the object + * + * @param {Object} + * @api private + */ + +exports.encode = function (obj) { + var str = ''; + + for (var i in obj) { + if (obj.hasOwnProperty(i)) { + if (str.length) str += '&'; + str += encodeURIComponent(i) + '=' + encodeURIComponent(obj[i]); + } + } + + return str; +}; + +/** + * Parses a simple querystring into an object + * + * @param {String} qs + * @api private + */ + +exports.decode = function(qs){ + var qry = {}; + var pairs = qs.split('&'); + for (var i = 0, l = pairs.length; i < l; i++) { + var pair = pairs[i].split('='); + qry[decodeURIComponent(pair[0])] = decodeURIComponent(pair[1]); + } + return qry; +}; + + +/***/ }), + +/***/ 89138: +/***/ ((module) => { + +/** + * Parses an URI + * + * @author Steven Levithan (MIT license) + * @api private + */ + +var re = /^(?:(?![^:@]+:[^:@\/]*@)(http|https|ws|wss):\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?((?:[a-f0-9]{0,4}:){2,7}[a-f0-9]{0,4}|[^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/; + +var parts = [ + 'source', 'protocol', 'authority', 'userInfo', 'user', 'password', 'host', 'port', 'relative', 'path', 'directory', 'file', 'query', 'anchor' +]; + +module.exports = function parseuri(str) { + var src = str, + b = str.indexOf('['), + e = str.indexOf(']'); + + if (b != -1 && e != -1) { + str = str.substring(0, b) + str.substring(b, e).replace(/:/g, ';') + str.substring(e, str.length); + } + + var m = re.exec(str || ''), + uri = {}, + i = 14; + + while (i--) { + uri[parts[i]] = m[i] || ''; + } + + if (b != -1 && e != -1) { + uri.source = src; + uri.host = uri.host.substring(1, uri.host.length - 1).replace(/;/g, ':'); + uri.authority = uri.authority.replace('[', '').replace(']', '').replace(/;/g, ':'); + uri.ipv6uri = true; + } + + uri.pathNames = pathNames(uri, uri['path']); + uri.queryKey = queryKey(uri, uri['query']); + + return uri; +}; + +function pathNames(obj, path) { + var regx = /\/{2,9}/g, + names = path.replace(regx, "/").split("/"); + + if (path.substr(0, 1) == '/' || path.length === 0) { + names.splice(0, 1); + } + if (path.substr(path.length - 1, 1) == '/') { + names.splice(names.length - 1, 1); + } + + return names; +} + +function queryKey(uri, query) { + var data = {}; + + query.replace(/(?:^|&)([^&=]*)=?([^&]*)/g, function ($0, $1, $2) { + if ($1) { + data[$1] = $2; + } + }); + + return data; +} + + /***/ }), /***/ 33803: @@ -16076,7 +15810,7 @@ var defaultEncoding if (__webpack_require__.g.process && __webpack_require__.g.process.browser) { defaultEncoding = 'utf-8' } else if (__webpack_require__.g.process && __webpack_require__.g.process.version) { - var pVersionMajor = parseInt("v17.5.0".split('.')[0].slice(1), 10) + var pVersionMajor = parseInt("v18.4.0".split('.')[0].slice(1), 10) defaultEncoding = pVersionMajor >= 6 ? 'utf-8' : 'binary' } else { @@ -16253,8 +15987,8 @@ module.exports = function (thing, encoding, name) { if (typeof process === 'undefined' || - !"v17.5.0" || - "v17.5.0".indexOf('v0.') === 0 || + !"v18.4.0" || + "v18.4.0".indexOf('v0.') === 0 || false && 0) { module.exports = { nextTick: nextTick }; } else { @@ -16865,6 +16599,21 @@ exports.decode = exports.parse = __webpack_require__(24400); exports.encode = exports.stringify = __webpack_require__(7433); +/***/ }), + +/***/ 61393: +/***/ ((module) => { + +let promise + +module.exports = typeof queueMicrotask === 'function' + ? queueMicrotask + // reuse resolved promise, and allocate it lazily + : cb => (promise || (promise = Promise.resolve())) + .then(cb) + .catch(err => setTimeout(() => { throw err }, 0)) + + /***/ }), /***/ 98773: @@ -17115,7 +16864,7 @@ if (true) { /***/ }), -/***/ 36260: +/***/ 34028: /***/ ((__unused_webpack_module, exports) => { "use strict"; @@ -17144,19 +16893,19 @@ for(var m=0;m { "use strict"; if (true) { - module.exports = __webpack_require__(22445); + module.exports = __webpack_require__(88299); } else {} @@ -17819,7 +17568,7 @@ module.exports = safer /***/ }), -/***/ 18055: +/***/ 68945: /***/ ((__unused_webpack_module, exports) => { "use strict"; @@ -17846,501 +17595,17 @@ exports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y /***/ }), -/***/ 68641: +/***/ 52090: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; if (true) { - module.exports = __webpack_require__(18055); + module.exports = __webpack_require__(68945); } else {} -/***/ }), - -/***/ 37508: -/***/ (function(module) { - -"use strict"; - - -(function(root) { - const MAX_VALUE = 0x7fffffff; - - // The SHA256 and PBKDF2 implementation are from scrypt-async-js: - // See: https://github.com/dchest/scrypt-async-js - function SHA256(m) { - const K = new Uint32Array([ - 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, - 0x59f111f1, 0x923f82a4, 0xab1c5ed5, 0xd807aa98, 0x12835b01, - 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, - 0xc19bf174, 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, - 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da, 0x983e5152, - 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, - 0x06ca6351, 0x14292967, 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, - 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85, - 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, - 0xd6990624, 0xf40e3585, 0x106aa070, 0x19a4c116, 0x1e376c08, - 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, - 0x682e6ff3, 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, - 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2 - ]); - - let h0 = 0x6a09e667, h1 = 0xbb67ae85, h2 = 0x3c6ef372, h3 = 0xa54ff53a; - let h4 = 0x510e527f, h5 = 0x9b05688c, h6 = 0x1f83d9ab, h7 = 0x5be0cd19; - const w = new Uint32Array(64); - - function blocks(p) { - let off = 0, len = p.length; - while (len >= 64) { - let a = h0, b = h1, c = h2, d = h3, e = h4, f = h5, g = h6, h = h7, u, i, j, t1, t2; - - for (i = 0; i < 16; i++) { - j = off + i*4; - w[i] = ((p[j] & 0xff)<<24) | ((p[j+1] & 0xff)<<16) | - ((p[j+2] & 0xff)<<8) | (p[j+3] & 0xff); - } - - for (i = 16; i < 64; i++) { - u = w[i-2]; - t1 = ((u>>>17) | (u<<(32-17))) ^ ((u>>>19) | (u<<(32-19))) ^ (u>>>10); - - u = w[i-15]; - t2 = ((u>>>7) | (u<<(32-7))) ^ ((u>>>18) | (u<<(32-18))) ^ (u>>>3); - - w[i] = (((t1 + w[i-7]) | 0) + ((t2 + w[i-16]) | 0)) | 0; - } - - for (i = 0; i < 64; i++) { - t1 = ((((((e>>>6) | (e<<(32-6))) ^ ((e>>>11) | (e<<(32-11))) ^ - ((e>>>25) | (e<<(32-25)))) + ((e & f) ^ (~e & g))) | 0) + - ((h + ((K[i] + w[i]) | 0)) | 0)) | 0; - - t2 = ((((a>>>2) | (a<<(32-2))) ^ ((a>>>13) | (a<<(32-13))) ^ - ((a>>>22) | (a<<(32-22)))) + ((a & b) ^ (a & c) ^ (b & c))) | 0; - - h = g; - g = f; - f = e; - e = (d + t1) | 0; - d = c; - c = b; - b = a; - a = (t1 + t2) | 0; - } - - h0 = (h0 + a) | 0; - h1 = (h1 + b) | 0; - h2 = (h2 + c) | 0; - h3 = (h3 + d) | 0; - h4 = (h4 + e) | 0; - h5 = (h5 + f) | 0; - h6 = (h6 + g) | 0; - h7 = (h7 + h) | 0; - - off += 64; - len -= 64; - } - } - - blocks(m); - - let i, bytesLeft = m.length % 64, - bitLenHi = (m.length / 0x20000000) | 0, - bitLenLo = m.length << 3, - numZeros = (bytesLeft < 56) ? 56 : 120, - p = m.slice(m.length - bytesLeft, m.length); - - p.push(0x80); - for (i = bytesLeft + 1; i < numZeros; i++) { p.push(0); } - p.push((bitLenHi >>> 24) & 0xff); - p.push((bitLenHi >>> 16) & 0xff); - p.push((bitLenHi >>> 8) & 0xff); - p.push((bitLenHi >>> 0) & 0xff); - p.push((bitLenLo >>> 24) & 0xff); - p.push((bitLenLo >>> 16) & 0xff); - p.push((bitLenLo >>> 8) & 0xff); - p.push((bitLenLo >>> 0) & 0xff); - - blocks(p); - - return [ - (h0 >>> 24) & 0xff, (h0 >>> 16) & 0xff, (h0 >>> 8) & 0xff, (h0 >>> 0) & 0xff, - (h1 >>> 24) & 0xff, (h1 >>> 16) & 0xff, (h1 >>> 8) & 0xff, (h1 >>> 0) & 0xff, - (h2 >>> 24) & 0xff, (h2 >>> 16) & 0xff, (h2 >>> 8) & 0xff, (h2 >>> 0) & 0xff, - (h3 >>> 24) & 0xff, (h3 >>> 16) & 0xff, (h3 >>> 8) & 0xff, (h3 >>> 0) & 0xff, - (h4 >>> 24) & 0xff, (h4 >>> 16) & 0xff, (h4 >>> 8) & 0xff, (h4 >>> 0) & 0xff, - (h5 >>> 24) & 0xff, (h5 >>> 16) & 0xff, (h5 >>> 8) & 0xff, (h5 >>> 0) & 0xff, - (h6 >>> 24) & 0xff, (h6 >>> 16) & 0xff, (h6 >>> 8) & 0xff, (h6 >>> 0) & 0xff, - (h7 >>> 24) & 0xff, (h7 >>> 16) & 0xff, (h7 >>> 8) & 0xff, (h7 >>> 0) & 0xff - ]; - } - - function PBKDF2_HMAC_SHA256_OneIter(password, salt, dkLen) { - // compress password if it's longer than hash block length - password = (password.length <= 64) ? password : SHA256(password); - - const innerLen = 64 + salt.length + 4; - const inner = new Array(innerLen); - const outerKey = new Array(64); - - let i; - let dk = []; - - // inner = (password ^ ipad) || salt || counter - for (i = 0; i < 64; i++) { inner[i] = 0x36; } - for (i = 0; i < password.length; i++) { inner[i] ^= password[i]; } - for (i = 0; i < salt.length; i++) { inner[64 + i] = salt[i]; } - for (i = innerLen - 4; i < innerLen; i++) { inner[i] = 0; } - - // outerKey = password ^ opad - for (i = 0; i < 64; i++) outerKey[i] = 0x5c; - for (i = 0; i < password.length; i++) outerKey[i] ^= password[i]; - - // increments counter inside inner - function incrementCounter() { - for (let i = innerLen - 1; i >= innerLen - 4; i--) { - inner[i]++; - if (inner[i] <= 0xff) return; - inner[i] = 0; - } - } - - // output blocks = SHA256(outerKey || SHA256(inner)) ... - while (dkLen >= 32) { - incrementCounter(); - dk = dk.concat(SHA256(outerKey.concat(SHA256(inner)))); - dkLen -= 32; - } - if (dkLen > 0) { - incrementCounter(); - dk = dk.concat(SHA256(outerKey.concat(SHA256(inner))).slice(0, dkLen)); - } - - return dk; - } - - // The following is an adaptation of scryptsy - // See: https://www.npmjs.com/package/scryptsy - function blockmix_salsa8(BY, Yi, r, x, _X) { - let i; - - arraycopy(BY, (2 * r - 1) * 16, _X, 0, 16); - for (i = 0; i < 2 * r; i++) { - blockxor(BY, i * 16, _X, 16); - salsa20_8(_X, x); - arraycopy(_X, 0, BY, Yi + (i * 16), 16); - } - - for (i = 0; i < r; i++) { - arraycopy(BY, Yi + (i * 2) * 16, BY, (i * 16), 16); - } - - for (i = 0; i < r; i++) { - arraycopy(BY, Yi + (i * 2 + 1) * 16, BY, (i + r) * 16, 16); - } - } - - function R(a, b) { - return (a << b) | (a >>> (32 - b)); - } - - function salsa20_8(B, x) { - arraycopy(B, 0, x, 0, 16); - - for (let i = 8; i > 0; i -= 2) { - x[ 4] ^= R(x[ 0] + x[12], 7); - x[ 8] ^= R(x[ 4] + x[ 0], 9); - x[12] ^= R(x[ 8] + x[ 4], 13); - x[ 0] ^= R(x[12] + x[ 8], 18); - x[ 9] ^= R(x[ 5] + x[ 1], 7); - x[13] ^= R(x[ 9] + x[ 5], 9); - x[ 1] ^= R(x[13] + x[ 9], 13); - x[ 5] ^= R(x[ 1] + x[13], 18); - x[14] ^= R(x[10] + x[ 6], 7); - x[ 2] ^= R(x[14] + x[10], 9); - x[ 6] ^= R(x[ 2] + x[14], 13); - x[10] ^= R(x[ 6] + x[ 2], 18); - x[ 3] ^= R(x[15] + x[11], 7); - x[ 7] ^= R(x[ 3] + x[15], 9); - x[11] ^= R(x[ 7] + x[ 3], 13); - x[15] ^= R(x[11] + x[ 7], 18); - x[ 1] ^= R(x[ 0] + x[ 3], 7); - x[ 2] ^= R(x[ 1] + x[ 0], 9); - x[ 3] ^= R(x[ 2] + x[ 1], 13); - x[ 0] ^= R(x[ 3] + x[ 2], 18); - x[ 6] ^= R(x[ 5] + x[ 4], 7); - x[ 7] ^= R(x[ 6] + x[ 5], 9); - x[ 4] ^= R(x[ 7] + x[ 6], 13); - x[ 5] ^= R(x[ 4] + x[ 7], 18); - x[11] ^= R(x[10] + x[ 9], 7); - x[ 8] ^= R(x[11] + x[10], 9); - x[ 9] ^= R(x[ 8] + x[11], 13); - x[10] ^= R(x[ 9] + x[ 8], 18); - x[12] ^= R(x[15] + x[14], 7); - x[13] ^= R(x[12] + x[15], 9); - x[14] ^= R(x[13] + x[12], 13); - x[15] ^= R(x[14] + x[13], 18); - } - - for (let i = 0; i < 16; ++i) { - B[i] += x[i]; - } - } - - // naive approach... going back to loop unrolling may yield additional performance - function blockxor(S, Si, D, len) { - for (let i = 0; i < len; i++) { - D[i] ^= S[Si + i] - } - } - - function arraycopy(src, srcPos, dest, destPos, length) { - while (length--) { - dest[destPos++] = src[srcPos++]; - } - } - - function checkBufferish(o) { - if (!o || typeof(o.length) !== 'number') { return false; } - - for (let i = 0; i < o.length; i++) { - const v = o[i]; - if (typeof(v) !== 'number' || v % 1 || v < 0 || v >= 256) { - return false; - } - } - - return true; - } - - function ensureInteger(value, name) { - if (typeof(value) !== "number" || (value % 1)) { throw new Error('invalid ' + name); } - return value; - } - - // N = Cpu cost, r = Memory cost, p = parallelization cost - // callback(error, progress, key) - function _scrypt(password, salt, N, r, p, dkLen, callback) { - - N = ensureInteger(N, 'N'); - r = ensureInteger(r, 'r'); - p = ensureInteger(p, 'p'); - - dkLen = ensureInteger(dkLen, 'dkLen'); - - if (N === 0 || (N & (N - 1)) !== 0) { throw new Error('N must be power of 2'); } - - if (N > MAX_VALUE / 128 / r) { throw new Error('N too large'); } - if (r > MAX_VALUE / 128 / p) { throw new Error('r too large'); } - - if (!checkBufferish(password)) { - throw new Error('password must be an array or buffer'); - } - password = Array.prototype.slice.call(password); - - if (!checkBufferish(salt)) { - throw new Error('salt must be an array or buffer'); - } - salt = Array.prototype.slice.call(salt); - - let b = PBKDF2_HMAC_SHA256_OneIter(password, salt, p * 128 * r); - const B = new Uint32Array(p * 32 * r) - for (let i = 0; i < B.length; i++) { - const j = i * 4; - B[i] = ((b[j + 3] & 0xff) << 24) | - ((b[j + 2] & 0xff) << 16) | - ((b[j + 1] & 0xff) << 8) | - ((b[j + 0] & 0xff) << 0); - } - - const XY = new Uint32Array(64 * r); - const V = new Uint32Array(32 * r * N); - - const Yi = 32 * r; - - // scratch space - const x = new Uint32Array(16); // salsa20_8 - const _X = new Uint32Array(16); // blockmix_salsa8 - - const totalOps = p * N * 2; - let currentOp = 0; - let lastPercent10 = null; - - // Set this to true to abandon the scrypt on the next step - let stop = false; - - // State information - let state = 0; - let i0 = 0, i1; - let Bi; - - // How many blockmix_salsa8 can we do per step? - const limit = callback ? parseInt(1000 / r): 0xffffffff; - - // Trick from scrypt-async; if there is a setImmediate shim in place, use it - const nextTick = (typeof(setImmediate) !== 'undefined') ? setImmediate : setTimeout; - - // This is really all I changed; making scryptsy a state machine so we occasionally - // stop and give other evnts on the evnt loop a chance to run. ~RicMoo - const incrementalSMix = function() { - if (stop) { - return callback(new Error('cancelled'), currentOp / totalOps); - } - - let steps; - - switch (state) { - case 0: - // for (var i = 0; i < p; i++)... - Bi = i0 * 32 * r; - - arraycopy(B, Bi, XY, 0, Yi); // ROMix - 1 - - state = 1; // Move to ROMix 2 - i1 = 0; - - // Fall through - - case 1: - - // Run up to 1000 steps of the first inner smix loop - steps = N - i1; - if (steps > limit) { steps = limit; } - for (let i = 0; i < steps; i++) { // ROMix - 2 - arraycopy(XY, 0, V, (i1 + i) * Yi, Yi) // ROMix - 3 - blockmix_salsa8(XY, Yi, r, x, _X); // ROMix - 4 - } - - // for (var i = 0; i < N; i++) - i1 += steps; - currentOp += steps; - - if (callback) { - // Call the callback with the progress (optionally stopping us) - const percent10 = parseInt(1000 * currentOp / totalOps); - if (percent10 !== lastPercent10) { - stop = callback(null, currentOp / totalOps); - if (stop) { break; } - lastPercent10 = percent10; - } - } - - if (i1 < N) { break; } - - i1 = 0; // Move to ROMix 6 - state = 2; - - // Fall through - - case 2: - - // Run up to 1000 steps of the second inner smix loop - steps = N - i1; - if (steps > limit) { steps = limit; } - for (let i = 0; i < steps; i++) { // ROMix - 6 - const offset = (2 * r - 1) * 16; // ROMix - 7 - const j = XY[offset] & (N - 1); - blockxor(V, j * Yi, XY, Yi); // ROMix - 8 (inner) - blockmix_salsa8(XY, Yi, r, x, _X); // ROMix - 9 (outer) - } - - // for (var i = 0; i < N; i++)... - i1 += steps; - currentOp += steps; - - // Call the callback with the progress (optionally stopping us) - if (callback) { - const percent10 = parseInt(1000 * currentOp / totalOps); - if (percent10 !== lastPercent10) { - stop = callback(null, currentOp / totalOps); - if (stop) { break; } - lastPercent10 = percent10; - } - } - - if (i1 < N) { break; } - - arraycopy(XY, 0, B, Bi, Yi); // ROMix - 10 - - // for (var i = 0; i < p; i++)... - i0++; - if (i0 < p) { - state = 0; - break; - } - - b = []; - for (let i = 0; i < B.length; i++) { - b.push((B[i] >> 0) & 0xff); - b.push((B[i] >> 8) & 0xff); - b.push((B[i] >> 16) & 0xff); - b.push((B[i] >> 24) & 0xff); - } - - const derivedKey = PBKDF2_HMAC_SHA256_OneIter(password, b, dkLen); - - // Send the result to the callback - if (callback) { callback(null, 1.0, derivedKey); } - - // Done; don't break (which would reschedule) - return derivedKey; - } - - // Schedule the next steps - if (callback) { nextTick(incrementalSMix); } - } - - // Run the smix state machine until completion - if (!callback) { - while (true) { - const derivedKey = incrementalSMix(); - if (derivedKey != undefined) { return derivedKey; } - } - } - - // Bootstrap the async incremental smix - incrementalSMix(); - } - - const lib = { - scrypt: function(password, salt, N, r, p, dkLen, progressCallback) { - return new Promise(function(resolve, reject) { - let lastProgress = 0; - if (progressCallback) { progressCallback(0); } - _scrypt(password, salt, N, r, p, dkLen, function(error, progress, key) { - if (error) { - reject(error); - } else if (key) { - if (progressCallback && lastProgress !== 1) { - progressCallback(1); - } - resolve(new Uint8Array(key)); - } else if (progressCallback && progress !== lastProgress) { - lastProgress = progress; - return progressCallback(progress); - } - }); - }); - }, - syncScrypt: function(password, salt, N, r, p, dkLen) { - return new Uint8Array(_scrypt(password, salt, N, r, p, dkLen)); - } - }; - - // node.js - if (true) { - module.exports = lib; - - // RequireJS/AMD - // http://www.requirejs.org/docs/api.html - // https://github.com/amdjs/amdjs-api/wiki/AMD - } else {} - -})(this); - - /***/ }), /***/ 82849: @@ -19193,325 +18458,1009 @@ module.exports = Sha512 /***/ }), -/***/ 96704: -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -// Copyright Joyent, Inc. and other Node contributors. -// -// Permission is hereby granted, free of charge, to any person obtaining a -// copy of this software and associated documentation files (the -// "Software"), to deal in the Software without restriction, including -// without limitation the rights to use, copy, modify, merge, publish, -// distribute, sublicense, and/or sell copies of the Software, and to permit -// persons to whom the Software is furnished to do so, subject to the -// following conditions: -// -// The above copyright notice and this permission notice shall be included -// in all copies or substantial portions of the Software. -// -// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN -// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, -// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR -// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE -// USE OR OTHER DEALINGS IN THE SOFTWARE. +/***/ 50280: +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { -module.exports = Stream; +"use strict"; +var __webpack_unused_export__; +__webpack_unused_export__ = ({value:true});__webpack_unused_export__=__webpack_unused_export__=__webpack_unused_export__=__webpack_unused_export__=__webpack_unused_export__=void 0;var _buffer=__webpack_require__(15313);var _sponge=_interopRequireDefault(__webpack_require__(33652));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}var createHash=function createHash(_ref){var allowedSizes=_ref.allowedSizes,defaultSize=_ref.defaultSize,padding=_ref.padding;return function Hash(){var _this=this;var size=arguments.length>0&&arguments[0]!==undefined?arguments[0]:defaultSize;if(!this||this.constructor!==Hash){return new Hash(size)}if(allowedSizes&&!allowedSizes.includes(size)){throw new Error("Unsupported hash length")}var sponge=new _sponge["default"]({capacity:size});this.update=function(input){var encoding=arguments.length>1&&arguments[1]!==undefined?arguments[1]:"utf8";if(_buffer.Buffer.isBuffer(input)){sponge.absorb(input);return _this}if(typeof input==="string"){return _this.update(_buffer.Buffer.from(input,encoding))}throw new TypeError("Not a string or buffer")};this.digest=function(){var formatOrOptions=arguments.length>0&&arguments[0]!==undefined?arguments[0]:"binary";var options=typeof formatOrOptions==="string"?{format:formatOrOptions}:formatOrOptions;var buffer=sponge.squeeze({buffer:options.buffer,padding:options.padding||padding});if(options.format&&options.format!=="binary"){return buffer.toString(options.format)}return buffer};this.reset=function(){sponge.reset();return _this};return this}};var Keccak=createHash({allowedSizes:[224,256,384,512],defaultSize:512,padding:1});__webpack_unused_export__=Keccak;var SHA3=createHash({allowedSizes:[224,256,384,512],defaultSize:512,padding:6});__webpack_unused_export__=SHA3;var SHAKE=createHash({allowedSizes:[128,256],defaultSize:256,padding:31});__webpack_unused_export__=SHAKE;var SHA3Hash=Keccak;__webpack_unused_export__=SHA3Hash;SHA3.SHA3Hash=SHA3Hash;var _default=SHA3;__webpack_unused_export__=_default; -var EE = (__webpack_require__(47324).EventEmitter); -var inherits = __webpack_require__(67483); +/***/ }), -inherits(Stream, EE); -Stream.Readable = __webpack_require__(46285); -Stream.Writable = __webpack_require__(42352); -Stream.Duplex = __webpack_require__(56009); -Stream.Transform = __webpack_require__(90016); -Stream.PassThrough = __webpack_require__(68339); -Stream.finished = __webpack_require__(63640) -Stream.pipeline = __webpack_require__(58995) +/***/ 33652: +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { -// Backwards-compat with node 0.4.x -Stream.Stream = Stream; +"use strict"; +Object.defineProperty(exports, "__esModule", ({value:true}));exports["default"]=void 0;var _buffer=__webpack_require__(15313);var _permute=_interopRequireDefault(__webpack_require__(64575));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}var xorWords=function xorWords(I,O){for(var i=0;i>>8;O[o+2]=I[i+1]>>>16;O[o+3]=I[i+1]>>>24;O[o+4]=I[i];O[o+5]=I[i]>>>8;O[o+6]=I[i]>>>16;O[o+7]=I[i]>>>24}return O};var Sponge=function Sponge(_ref){var _this=this;var capacity=_ref.capacity,padding=_ref.padding;var keccak=(0,_permute["default"])();var stateSize=200;var blockSize=capacity/8;var queueSize=stateSize-capacity/4;var queueOffset=0;var state=new Uint32Array(stateSize/4);var queue=_buffer.Buffer.allocUnsafe(queueSize);this.absorb=function(buffer){for(var i=0;i=queueSize){xorWords(queue,state);keccak(state);queueOffset=0}}return _this};this.squeeze=function(){var options=arguments.length>0&&arguments[0]!==undefined?arguments[0]:{};var output={buffer:options.buffer||_buffer.Buffer.allocUnsafe(blockSize),padding:options.padding||padding,queue:_buffer.Buffer.allocUnsafe(queue.length),state:new Uint32Array(state.length)};queue.copy(output.queue);for(var i=0;i { -// old-style streams. Note that the pipe method (the only relevant -// part of this class) is overridden in the Readable class. +"use strict"; +Object.defineProperty(exports, "__esModule", ({value:true}));exports["default"]=void 0;var _copy=_interopRequireDefault(__webpack_require__(42330));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}var chi=function chi(_ref){var A=_ref.A,C=_ref.C;for(var y=0;y<25;y+=5){for(var x=0;x<5;x++){(0,_copy["default"])(A,y+x)(C,x)}for(var _x=0;_x<5;_x++){var xy=(y+_x)*2;var x1=(_x+1)%5*2;var x2=(_x+2)%5*2;A[xy]^=~C[x1]&C[x2];A[xy+1]^=~C[x1+1]&C[x2+1]}}};var _default=chi;exports["default"]=_default; -function Stream() { - EE.call(this); -} +/***/ }), -Stream.prototype.pipe = function(dest, options) { - var source = this; +/***/ 42330: +/***/ ((module) => { - function ondata(chunk) { - if (dest.writable) { - if (false === dest.write(chunk) && source.pause) { - source.pause(); - } - } - } +"use strict"; +var copy=function copy(I,i){return function(O,o){var oi=o*2;var ii=i*2;O[oi]=I[ii];O[oi+1]=I[ii+1]}};module.exports=copy; - source.on('data', ondata); +/***/ }), - function ondrain() { - if (source.readable && source.resume) { - source.resume(); - } - } +/***/ 64575: +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - dest.on('drain', ondrain); +"use strict"; +Object.defineProperty(exports, "__esModule", ({value:true}));exports["default"]=void 0;var _chi=_interopRequireDefault(__webpack_require__(23678));var _iota=_interopRequireDefault(__webpack_require__(7985));var _rhoPi=_interopRequireDefault(__webpack_require__(28845));var _theta=_interopRequireDefault(__webpack_require__(50765));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}var permute=function permute(){var C=new Uint32Array(10);var D=new Uint32Array(10);var W=new Uint32Array(2);return function(A){for(var roundIndex=0;roundIndex<24;roundIndex++){(0,_theta["default"])({A:A,C:C,D:D,W:W});(0,_rhoPi["default"])({A:A,C:C,W:W});(0,_chi["default"])({A:A,C:C});(0,_iota["default"])({A:A,roundIndex:roundIndex})}C.fill(0);D.fill(0);W.fill(0)}};var _default=permute;exports["default"]=_default; - // If the 'end' option is not supplied, dest.end() will be called when - // source gets the 'end' or 'close' events. Only dest.end() once. - if (!dest._isStdio && (!options || options.end !== false)) { - source.on('end', onend); - source.on('close', onclose); - } +/***/ }), - var didOnEnd = false; - function onend() { - if (didOnEnd) return; - didOnEnd = true; +/***/ 7985: +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - dest.end(); - } +"use strict"; +Object.defineProperty(exports, "__esModule", ({value:true}));exports["default"]=void 0;var _roundConstants=_interopRequireDefault(__webpack_require__(75986));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}var iota=function iota(_ref){var A=_ref.A,roundIndex=_ref.roundIndex;var i=roundIndex*2;A[0]^=_roundConstants["default"][i];A[1]^=_roundConstants["default"][i+1]};var _default=iota;exports["default"]=_default; +/***/ }), - function onclose() { - if (didOnEnd) return; - didOnEnd = true; +/***/ 75986: +/***/ ((__unused_webpack_module, exports) => { - if (typeof dest.destroy === 'function') dest.destroy(); - } +"use strict"; +Object.defineProperty(exports, "__esModule", ({value:true}));exports["default"]=void 0;var ROUND_CONSTANTS=new Uint32Array([0,1,0,32898,2147483648,32906,2147483648,2147516416,0,32907,0,2147483649,2147483648,2147516545,2147483648,32777,0,138,0,136,0,2147516425,0,2147483658,0,2147516555,2147483648,139,2147483648,32905,2147483648,32771,2147483648,32770,2147483648,128,0,32778,2147483648,2147483658,2147483648,2147516545,2147483648,32896,0,2147483649,2147483648,2147516424]);var _default=ROUND_CONSTANTS;exports["default"]=_default; - // don't leave dangling pipes when there are errors. - function onerror(er) { - cleanup(); - if (EE.listenerCount(this, 'error') === 0) { - throw er; // Unhandled stream error in pipe. - } - } +/***/ }), - source.on('error', onerror); - dest.on('error', onerror); +/***/ 28845: +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - // remove all the event listeners that were added. - function cleanup() { - source.removeListener('data', ondata); - dest.removeListener('drain', ondrain); +"use strict"; +Object.defineProperty(exports, "__esModule", ({value:true}));exports["default"]=void 0;var _piShuffles=_interopRequireDefault(__webpack_require__(93321));var _rhoOffsets=_interopRequireDefault(__webpack_require__(44805));var _copy=_interopRequireDefault(__webpack_require__(42330));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}var rhoPi=function rhoPi(_ref){var A=_ref.A,C=_ref.C,W=_ref.W;(0,_copy["default"])(A,1)(W,0);var H=0;var L=0;var Wi=0;var ri=32;for(var i=0;i<24;i++){var j=_piShuffles["default"][i];var r=_rhoOffsets["default"][i];(0,_copy["default"])(A,j)(C,0);H=W[0];L=W[1];ri=32-r;Wi=r<32?0:1;W[Wi]=H<>>ri;W[(Wi+1)%2]=L<>>ri;(0,_copy["default"])(W,0)(A,j);(0,_copy["default"])(C,0)(W,0)}};var _default=rhoPi;exports["default"]=_default; - source.removeListener('end', onend); - source.removeListener('close', onclose); +/***/ }), - source.removeListener('error', onerror); - dest.removeListener('error', onerror); +/***/ 93321: +/***/ ((__unused_webpack_module, exports) => { - source.removeListener('end', cleanup); - source.removeListener('close', cleanup); +"use strict"; +Object.defineProperty(exports, "__esModule", ({value:true}));exports["default"]=void 0;var PI_SHUFFLES=[10,7,11,17,18,3,5,16,8,21,24,4,15,23,19,13,12,2,20,14,22,9,6,1];var _default=PI_SHUFFLES;exports["default"]=_default; - dest.removeListener('close', cleanup); - } +/***/ }), - source.on('end', cleanup); - source.on('close', cleanup); +/***/ 44805: +/***/ ((__unused_webpack_module, exports) => { - dest.on('close', cleanup); +"use strict"; +Object.defineProperty(exports, "__esModule", ({value:true}));exports["default"]=void 0;var RHO_OFFSETS=[1,3,6,10,15,21,28,36,45,55,2,14,27,41,56,8,25,43,62,18,39,61,20,44];var _default=RHO_OFFSETS;exports["default"]=_default; - dest.emit('pipe', source); +/***/ }), - // Allow for unix-like usage: A.pipe(B).pipe(C) - return dest; -}; +/***/ 50765: +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { +"use strict"; +Object.defineProperty(exports, "__esModule", ({value:true}));exports["default"]=void 0;var _copy=_interopRequireDefault(__webpack_require__(42330));function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{"default":obj}}var theta=function theta(_ref){var A=_ref.A,C=_ref.C,D=_ref.D,W=_ref.W;var H=0;var L=0;for(var x=0;x<5;x++){var x20=x*2;var x21=(x+5)*2;var x22=(x+10)*2;var x23=(x+15)*2;var x24=(x+20)*2;C[x20]=A[x20]^A[x21]^A[x22]^A[x23]^A[x24];C[x20+1]=A[x20+1]^A[x21+1]^A[x22+1]^A[x23+1]^A[x24+1]}for(var _x=0;_x<5;_x++){(0,_copy["default"])(C,(_x+1)%5)(W,0);H=W[0];L=W[1];W[0]=H<<1|L>>>31;W[1]=L<<1|H>>>31;D[_x*2]=C[(_x+4)%5*2]^W[0];D[_x*2+1]=C[(_x+4)%5*2+1]^W[1];for(var y=0;y<25;y+=5){A[(y+_x)*2]^=D[_x*2];A[(y+_x)*2+1]^=D[_x*2+1]}}};var _default=theta;exports["default"]=_default; /***/ }), -/***/ 98651: +/***/ 27075: /***/ ((__unused_webpack_module, exports, __webpack_require__) => { -var ClientRequest = __webpack_require__(93103) -var response = __webpack_require__(24567) -var extend = __webpack_require__(31693) -var statusCodes = __webpack_require__(12269) -var url = __webpack_require__(51121) +/*global Blob,File*/ -var http = exports +/** + * Module requirements + */ -http.request = function (opts, cb) { - if (typeof opts === 'string') - opts = url.parse(opts) - else - opts = extend(opts) +var isArray = __webpack_require__(26430); +var isBuf = __webpack_require__(50736); +var toString = Object.prototype.toString; +var withNativeBlob = typeof Blob === 'function' || (typeof Blob !== 'undefined' && toString.call(Blob) === '[object BlobConstructor]'); +var withNativeFile = typeof File === 'function' || (typeof File !== 'undefined' && toString.call(File) === '[object FileConstructor]'); - // Normally, the page is loaded from http or https, so not specifying a protocol - // will result in a (valid) protocol-relative url. However, this won't work if - // the protocol is something else, like 'file:' - var defaultProtocol = __webpack_require__.g.location.protocol.search(/^https?:$/) === -1 ? 'http:' : '' +/** + * Replaces every Buffer | ArrayBuffer in packet with a numbered placeholder. + * Anything with blobs or files should be fed through removeBlobs before coming + * here. + * + * @param {Object} packet - socket.io event packet + * @return {Object} with deconstructed packet and list of buffers + * @api public + */ - var protocol = opts.protocol || defaultProtocol - var host = opts.hostname || opts.host - var port = opts.port - var path = opts.path || '/' +exports.deconstructPacket = function(packet) { + var buffers = []; + var packetData = packet.data; + var pack = packet; + pack.data = _deconstructPacket(packetData, buffers); + pack.attachments = buffers.length; // number of binary 'attachments' + return {packet: pack, buffers: buffers}; +}; - // Necessary for IPv6 addresses - if (host && host.indexOf(':') !== -1) - host = '[' + host + ']' +function _deconstructPacket(data, buffers) { + if (!data) return data; - // This may be a relative url. The browser should always be able to interpret it correctly. - opts.url = (host ? (protocol + '//' + host) : '') + (port ? ':' + port : '') + path - opts.method = (opts.method || 'GET').toUpperCase() - opts.headers = opts.headers || {} + if (isBuf(data)) { + var placeholder = { _placeholder: true, num: buffers.length }; + buffers.push(data); + return placeholder; + } else if (isArray(data)) { + var newData = new Array(data.length); + for (var i = 0; i < data.length; i++) { + newData[i] = _deconstructPacket(data[i], buffers); + } + return newData; + } else if (typeof data === 'object' && !(data instanceof Date)) { + var newData = {}; + for (var key in data) { + newData[key] = _deconstructPacket(data[key], buffers); + } + return newData; + } + return data; +} - // Also valid opts.auth, opts.mode +/** + * Reconstructs a binary packet from its placeholder packet and buffers + * + * @param {Object} packet - event packet with placeholders + * @param {Array} buffers - binary buffers to put in placeholder positions + * @return {Object} reconstructed packet + * @api public + */ - var req = new ClientRequest(opts) - if (cb) - req.on('response', cb) - return req -} +exports.reconstructPacket = function(packet, buffers) { + packet.data = _reconstructPacket(packet.data, buffers); + packet.attachments = undefined; // no longer useful + return packet; +}; -http.get = function get (opts, cb) { - var req = http.request(opts, cb) - req.end() - return req +function _reconstructPacket(data, buffers) { + if (!data) return data; + + if (data && data._placeholder) { + return buffers[data.num]; // appropriate buffer (should be natural order anyway) + } else if (isArray(data)) { + for (var i = 0; i < data.length; i++) { + data[i] = _reconstructPacket(data[i], buffers); + } + } else if (typeof data === 'object') { + for (var key in data) { + data[key] = _reconstructPacket(data[key], buffers); + } + } + + return data; } -http.ClientRequest = ClientRequest -http.IncomingMessage = response.IncomingMessage +/** + * Asynchronously removes Blobs or Files from data via + * FileReader's readAsArrayBuffer method. Used before encoding + * data as msgpack. Calls callback with the blobless data. + * + * @param {Object} data + * @param {Function} callback + * @api private + */ -http.Agent = function () {} -http.Agent.defaultMaxSockets = 4 +exports.removeBlobs = function(data, callback) { + function _removeBlobs(obj, curKey, containingObject) { + if (!obj) return obj; -http.globalAgent = new http.Agent() + // convert any blob + if ((withNativeBlob && obj instanceof Blob) || + (withNativeFile && obj instanceof File)) { + pendingBlobs++; -http.STATUS_CODES = statusCodes + // async filereader + var fileReader = new FileReader(); + fileReader.onload = function() { // this.result == arraybuffer + if (containingObject) { + containingObject[curKey] = this.result; + } + else { + bloblessData = this.result; + } + + // if nothing pending its callback time + if(! --pendingBlobs) { + callback(bloblessData); + } + }; + + fileReader.readAsArrayBuffer(obj); // blob -> arraybuffer + } else if (isArray(obj)) { // handle array + for (var i = 0; i < obj.length; i++) { + _removeBlobs(obj[i], i, obj); + } + } else if (typeof obj === 'object' && !isBuf(obj)) { // and object + for (var key in obj) { + _removeBlobs(obj[key], key, obj); + } + } + } + + var pendingBlobs = 0; + var bloblessData = data; + _removeBlobs(bloblessData); + if (!pendingBlobs) { + callback(bloblessData); + } +}; -http.METHODS = [ - 'CHECKOUT', - 'CONNECT', - 'COPY', - 'DELETE', - 'GET', - 'HEAD', - 'LOCK', - 'M-SEARCH', - 'MERGE', - 'MKACTIVITY', - 'MKCOL', - 'MOVE', - 'NOTIFY', - 'OPTIONS', - 'PATCH', - 'POST', - 'PROPFIND', - 'PROPPATCH', - 'PURGE', - 'PUT', - 'REPORT', - 'SEARCH', - 'SUBSCRIBE', - 'TRACE', - 'UNLOCK', - 'UNSUBSCRIBE' -] /***/ }), -/***/ 48845: +/***/ 67173: /***/ ((__unused_webpack_module, exports, __webpack_require__) => { -exports.fetch = isFunction(__webpack_require__.g.fetch) && isFunction(__webpack_require__.g.ReadableStream) -exports.writableStream = isFunction(__webpack_require__.g.WritableStream) +/** + * Module dependencies. + */ -exports.abortController = isFunction(__webpack_require__.g.AbortController) +var debug = __webpack_require__(95553)('socket.io-parser'); +var Emitter = __webpack_require__(24482); +var binary = __webpack_require__(27075); +var isArray = __webpack_require__(26430); +var isBuf = __webpack_require__(50736); -exports.blobConstructor = false -try { - new Blob([new ArrayBuffer(1)]) - exports.blobConstructor = true -} catch (e) {} +/** + * Protocol version. + * + * @api public + */ -// The xhr request to example.com may violate some restrictive CSP configurations, -// so if we're running in a browser that supports `fetch`, avoid calling getXHR() -// and assume support for certain features below. -var xhr -function getXHR () { - // Cache the xhr value - if (xhr !== undefined) return xhr +exports.protocol = 4; - if (__webpack_require__.g.XMLHttpRequest) { - xhr = new __webpack_require__.g.XMLHttpRequest() - // If XDomainRequest is available (ie only, where xhr might not work - // cross domain), use the page location. Otherwise use example.com - // Note: this doesn't actually make an http request. - try { - xhr.open('GET', __webpack_require__.g.XDomainRequest ? '/' : 'https://example.com') - } catch(e) { - xhr = null - } - } else { - // Service workers don't have XHR - xhr = null - } - return xhr -} +/** + * Packet types. + * + * @api public + */ -function checkTypeSupport (type) { - var xhr = getXHR() - if (!xhr) return false - try { - xhr.responseType = type - return xhr.responseType === type - } catch (e) {} - return false -} +exports.types = [ + 'CONNECT', + 'DISCONNECT', + 'EVENT', + 'ACK', + 'ERROR', + 'BINARY_EVENT', + 'BINARY_ACK' +]; -// For some strange reason, Safari 7.0 reports typeof global.ArrayBuffer === 'object'. -// Safari 7.1 appears to have fixed this bug. -var haveArrayBuffer = typeof __webpack_require__.g.ArrayBuffer !== 'undefined' -var haveSlice = haveArrayBuffer && isFunction(__webpack_require__.g.ArrayBuffer.prototype.slice) +/** + * Packet type `connect`. + * + * @api public + */ -// If fetch is supported, then arraybuffer will be supported too. Skip calling -// checkTypeSupport(), since that calls getXHR(). -exports.arraybuffer = exports.fetch || (haveArrayBuffer && checkTypeSupport('arraybuffer')) +exports.CONNECT = 0; -// These next two tests unavoidably show warnings in Chrome. Since fetch will always -// be used if it's available, just return false for these to avoid the warnings. -exports.msstream = !exports.fetch && haveSlice && checkTypeSupport('ms-stream') -exports.mozchunkedarraybuffer = !exports.fetch && haveArrayBuffer && - checkTypeSupport('moz-chunked-arraybuffer') +/** + * Packet type `disconnect`. + * + * @api public + */ -// If fetch is supported, then overrideMimeType will be supported too. Skip calling -// getXHR(). -exports.overrideMimeType = exports.fetch || (getXHR() ? isFunction(getXHR().overrideMimeType) : false) +exports.DISCONNECT = 1; -exports.vbArray = isFunction(__webpack_require__.g.VBArray) +/** + * Packet type `event`. + * + * @api public + */ -function isFunction (value) { - return typeof value === 'function' -} +exports.EVENT = 2; -xhr = null // Help gc +/** + * Packet type `ack`. + * + * @api public + */ +exports.ACK = 3; -/***/ }), +/** + * Packet type `error`. + * + * @api public + */ -/***/ 93103: -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +exports.ERROR = 4; -/* provided dependency */ var Buffer = __webpack_require__(15313)["Buffer"]; -/* provided dependency */ var __webpack_provided_process_dot_nextTick = __webpack_require__(28255); -var capability = __webpack_require__(48845) -var inherits = __webpack_require__(67483) -var response = __webpack_require__(24567) -var stream = __webpack_require__(30376) -var toArrayBuffer = __webpack_require__(51242) +/** + * Packet type 'binary event' + * + * @api public + */ -var IncomingMessage = response.IncomingMessage +exports.BINARY_EVENT = 5; + +/** + * Packet type `binary ack`. For acks with binary arguments. + * + * @api public + */ + +exports.BINARY_ACK = 6; + +/** + * Encoder constructor. + * + * @api public + */ + +exports.Encoder = Encoder; + +/** + * Decoder constructor. + * + * @api public + */ + +exports.Decoder = Decoder; + +/** + * A socket.io Encoder instance + * + * @api public + */ + +function Encoder() {} + +var ERROR_PACKET = exports.ERROR + '"encode error"'; + +/** + * Encode a packet as a single string if non-binary, or as a + * buffer sequence, depending on packet type. + * + * @param {Object} obj - packet object + * @param {Function} callback - function to handle encodings (likely engine.write) + * @return Calls callback with Array of encodings + * @api public + */ + +Encoder.prototype.encode = function(obj, callback){ + debug('encoding packet %j', obj); + + if (exports.BINARY_EVENT === obj.type || exports.BINARY_ACK === obj.type) { + encodeAsBinary(obj, callback); + } else { + var encoding = encodeAsString(obj); + callback([encoding]); + } +}; + +/** + * Encode packet as string. + * + * @param {Object} packet + * @return {String} encoded + * @api private + */ + +function encodeAsString(obj) { + + // first is type + var str = '' + obj.type; + + // attachments if we have them + if (exports.BINARY_EVENT === obj.type || exports.BINARY_ACK === obj.type) { + str += obj.attachments + '-'; + } + + // if we have a namespace other than `/` + // we append it followed by a comma `,` + if (obj.nsp && '/' !== obj.nsp) { + str += obj.nsp + ','; + } + + // immediately followed by the id + if (null != obj.id) { + str += obj.id; + } + + // json data + if (null != obj.data) { + var payload = tryStringify(obj.data); + if (payload !== false) { + str += payload; + } else { + return ERROR_PACKET; + } + } + + debug('encoded %j as %s', obj, str); + return str; +} + +function tryStringify(str) { + try { + return JSON.stringify(str); + } catch(e){ + return false; + } +} + +/** + * Encode packet as 'buffer sequence' by removing blobs, and + * deconstructing packet into object with placeholders and + * a list of buffers. + * + * @param {Object} packet + * @return {Buffer} encoded + * @api private + */ + +function encodeAsBinary(obj, callback) { + + function writeEncoding(bloblessData) { + var deconstruction = binary.deconstructPacket(bloblessData); + var pack = encodeAsString(deconstruction.packet); + var buffers = deconstruction.buffers; + + buffers.unshift(pack); // add packet info to beginning of data list + callback(buffers); // write all the buffers + } + + binary.removeBlobs(obj, writeEncoding); +} + +/** + * A socket.io Decoder instance + * + * @return {Object} decoder + * @api public + */ + +function Decoder() { + this.reconstructor = null; +} + +/** + * Mix in `Emitter` with Decoder. + */ + +Emitter(Decoder.prototype); + +/** + * Decodes an encoded packet string into packet JSON. + * + * @param {String} obj - encoded packet + * @return {Object} packet + * @api public + */ + +Decoder.prototype.add = function(obj) { + var packet; + if (typeof obj === 'string') { + packet = decodeString(obj); + if (exports.BINARY_EVENT === packet.type || exports.BINARY_ACK === packet.type) { // binary packet's json + this.reconstructor = new BinaryReconstructor(packet); + + // no attachments, labeled binary but no binary data to follow + if (this.reconstructor.reconPack.attachments === 0) { + this.emit('decoded', packet); + } + } else { // non-binary full packet + this.emit('decoded', packet); + } + } else if (isBuf(obj) || obj.base64) { // raw binary data + if (!this.reconstructor) { + throw new Error('got binary data when not reconstructing a packet'); + } else { + packet = this.reconstructor.takeBinaryData(obj); + if (packet) { // received final buffer + this.reconstructor = null; + this.emit('decoded', packet); + } + } + } else { + throw new Error('Unknown type: ' + obj); + } +}; + +/** + * Decode a packet String (JSON data) + * + * @param {String} str + * @return {Object} packet + * @api private + */ + +function decodeString(str) { + var i = 0; + // look up type + var p = { + type: Number(str.charAt(0)) + }; + + if (null == exports.types[p.type]) { + return error('unknown packet type ' + p.type); + } + + // look up attachments if type binary + if (exports.BINARY_EVENT === p.type || exports.BINARY_ACK === p.type) { + var start = i + 1; + while (str.charAt(++i) !== '-' && i != str.length) {} + var buf = str.substring(start, i); + if (buf != Number(buf) || str.charAt(i) !== '-') { + throw new Error('Illegal attachments'); + } + p.attachments = Number(buf); + } + + // look up namespace (if any) + if ('/' === str.charAt(i + 1)) { + var start = i + 1; + while (++i) { + var c = str.charAt(i); + if (',' === c) break; + if (i === str.length) break; + } + p.nsp = str.substring(start, i); + } else { + p.nsp = '/'; + } + + // look up id + var next = str.charAt(i + 1); + if ('' !== next && Number(next) == next) { + var start = i + 1; + while (++i) { + var c = str.charAt(i); + if (null == c || Number(c) != c) { + --i; + break; + } + if (i === str.length) break; + } + p.id = Number(str.substring(start, i + 1)); + } + + // look up json data + if (str.charAt(++i)) { + var payload = tryParse(str.substr(i)); + var isPayloadValid = payload !== false && (p.type === exports.ERROR || isArray(payload)); + if (isPayloadValid) { + p.data = payload; + } else { + return error('invalid payload'); + } + } + + debug('decoded %s as %j', str, p); + return p; +} + +function tryParse(str) { + try { + return JSON.parse(str); + } catch(e){ + return false; + } +} + +/** + * Deallocates a parser's resources + * + * @api public + */ + +Decoder.prototype.destroy = function() { + if (this.reconstructor) { + this.reconstructor.finishedReconstruction(); + } +}; + +/** + * A manager of a binary event's 'buffer sequence'. Should + * be constructed whenever a packet of type BINARY_EVENT is + * decoded. + * + * @param {Object} packet + * @return {BinaryReconstructor} initialized reconstructor + * @api private + */ + +function BinaryReconstructor(packet) { + this.reconPack = packet; + this.buffers = []; +} + +/** + * Method to be called when binary data received from connection + * after a BINARY_EVENT packet. + * + * @param {Buffer | ArrayBuffer} binData - the raw binary data received + * @return {null | Object} returns null if more binary data is expected or + * a reconstructed packet object if all buffers have been received. + * @api private + */ + +BinaryReconstructor.prototype.takeBinaryData = function(binData) { + this.buffers.push(binData); + if (this.buffers.length === this.reconPack.attachments) { // done with buffer list + var packet = binary.reconstructPacket(this.reconPack, this.buffers); + this.finishedReconstruction(); + return packet; + } + return null; +}; + +/** + * Cleans up binary packet reconstruction variables. + * + * @api private + */ + +BinaryReconstructor.prototype.finishedReconstruction = function() { + this.reconPack = null; + this.buffers = []; +}; + +function error(msg) { + return { + type: exports.ERROR, + data: 'parser error: ' + msg + }; +} + + +/***/ }), + +/***/ 50736: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +/* provided dependency */ var Buffer = __webpack_require__(15313)["Buffer"]; + +module.exports = isBuf; + +var withNativeBuffer = typeof Buffer === 'function' && typeof Buffer.isBuffer === 'function'; +var withNativeArrayBuffer = typeof ArrayBuffer === 'function'; + +var isView = function (obj) { + return typeof ArrayBuffer.isView === 'function' ? ArrayBuffer.isView(obj) : (obj.buffer instanceof ArrayBuffer); +}; + +/** + * Returns true if obj is a buffer or an arraybuffer. + * + * @api private + */ + +function isBuf(obj) { + return (withNativeBuffer && Buffer.isBuffer(obj)) || + (withNativeArrayBuffer && (obj instanceof ArrayBuffer || isView(obj))); +} + + +/***/ }), + +/***/ 96704: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. + +module.exports = Stream; + +var EE = (__webpack_require__(47324).EventEmitter); +var inherits = __webpack_require__(67483); + +inherits(Stream, EE); +Stream.Readable = __webpack_require__(46285); +Stream.Writable = __webpack_require__(42352); +Stream.Duplex = __webpack_require__(56009); +Stream.Transform = __webpack_require__(90016); +Stream.PassThrough = __webpack_require__(68339); +Stream.finished = __webpack_require__(63640) +Stream.pipeline = __webpack_require__(58995) + +// Backwards-compat with node 0.4.x +Stream.Stream = Stream; + + + +// old-style streams. Note that the pipe method (the only relevant +// part of this class) is overridden in the Readable class. + +function Stream() { + EE.call(this); +} + +Stream.prototype.pipe = function(dest, options) { + var source = this; + + function ondata(chunk) { + if (dest.writable) { + if (false === dest.write(chunk) && source.pause) { + source.pause(); + } + } + } + + source.on('data', ondata); + + function ondrain() { + if (source.readable && source.resume) { + source.resume(); + } + } + + dest.on('drain', ondrain); + + // If the 'end' option is not supplied, dest.end() will be called when + // source gets the 'end' or 'close' events. Only dest.end() once. + if (!dest._isStdio && (!options || options.end !== false)) { + source.on('end', onend); + source.on('close', onclose); + } + + var didOnEnd = false; + function onend() { + if (didOnEnd) return; + didOnEnd = true; + + dest.end(); + } + + + function onclose() { + if (didOnEnd) return; + didOnEnd = true; + + if (typeof dest.destroy === 'function') dest.destroy(); + } + + // don't leave dangling pipes when there are errors. + function onerror(er) { + cleanup(); + if (EE.listenerCount(this, 'error') === 0) { + throw er; // Unhandled stream error in pipe. + } + } + + source.on('error', onerror); + dest.on('error', onerror); + + // remove all the event listeners that were added. + function cleanup() { + source.removeListener('data', ondata); + dest.removeListener('drain', ondrain); + + source.removeListener('end', onend); + source.removeListener('close', onclose); + + source.removeListener('error', onerror); + dest.removeListener('error', onerror); + + source.removeListener('end', cleanup); + source.removeListener('close', cleanup); + + dest.removeListener('close', cleanup); + } + + source.on('end', cleanup); + source.on('close', cleanup); + + dest.on('close', cleanup); + + dest.emit('pipe', source); + + // Allow for unix-like usage: A.pipe(B).pipe(C) + return dest; +}; + + +/***/ }), + +/***/ 98651: +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +var ClientRequest = __webpack_require__(93103) +var response = __webpack_require__(24567) +var extend = __webpack_require__(31693) +var statusCodes = __webpack_require__(12269) +var url = __webpack_require__(51121) + +var http = exports + +http.request = function (opts, cb) { + if (typeof opts === 'string') + opts = url.parse(opts) + else + opts = extend(opts) + + // Normally, the page is loaded from http or https, so not specifying a protocol + // will result in a (valid) protocol-relative url. However, this won't work if + // the protocol is something else, like 'file:' + var defaultProtocol = __webpack_require__.g.location.protocol.search(/^https?:$/) === -1 ? 'http:' : '' + + var protocol = opts.protocol || defaultProtocol + var host = opts.hostname || opts.host + var port = opts.port + var path = opts.path || '/' + + // Necessary for IPv6 addresses + if (host && host.indexOf(':') !== -1) + host = '[' + host + ']' + + // This may be a relative url. The browser should always be able to interpret it correctly. + opts.url = (host ? (protocol + '//' + host) : '') + (port ? ':' + port : '') + path + opts.method = (opts.method || 'GET').toUpperCase() + opts.headers = opts.headers || {} + + // Also valid opts.auth, opts.mode + + var req = new ClientRequest(opts) + if (cb) + req.on('response', cb) + return req +} + +http.get = function get (opts, cb) { + var req = http.request(opts, cb) + req.end() + return req +} + +http.ClientRequest = ClientRequest +http.IncomingMessage = response.IncomingMessage + +http.Agent = function () {} +http.Agent.defaultMaxSockets = 4 + +http.globalAgent = new http.Agent() + +http.STATUS_CODES = statusCodes + +http.METHODS = [ + 'CHECKOUT', + 'CONNECT', + 'COPY', + 'DELETE', + 'GET', + 'HEAD', + 'LOCK', + 'M-SEARCH', + 'MERGE', + 'MKACTIVITY', + 'MKCOL', + 'MOVE', + 'NOTIFY', + 'OPTIONS', + 'PATCH', + 'POST', + 'PROPFIND', + 'PROPPATCH', + 'PURGE', + 'PUT', + 'REPORT', + 'SEARCH', + 'SUBSCRIBE', + 'TRACE', + 'UNLOCK', + 'UNSUBSCRIBE' +] + +/***/ }), + +/***/ 48845: +/***/ ((__unused_webpack_module, exports, __webpack_require__) => { + +exports.fetch = isFunction(__webpack_require__.g.fetch) && isFunction(__webpack_require__.g.ReadableStream) + +exports.writableStream = isFunction(__webpack_require__.g.WritableStream) + +exports.abortController = isFunction(__webpack_require__.g.AbortController) + +exports.blobConstructor = false +try { + new Blob([new ArrayBuffer(1)]) + exports.blobConstructor = true +} catch (e) {} + +// The xhr request to example.com may violate some restrictive CSP configurations, +// so if we're running in a browser that supports `fetch`, avoid calling getXHR() +// and assume support for certain features below. +var xhr +function getXHR () { + // Cache the xhr value + if (xhr !== undefined) return xhr + + if (__webpack_require__.g.XMLHttpRequest) { + xhr = new __webpack_require__.g.XMLHttpRequest() + // If XDomainRequest is available (ie only, where xhr might not work + // cross domain), use the page location. Otherwise use example.com + // Note: this doesn't actually make an http request. + try { + xhr.open('GET', __webpack_require__.g.XDomainRequest ? '/' : 'https://example.com') + } catch(e) { + xhr = null + } + } else { + // Service workers don't have XHR + xhr = null + } + return xhr +} + +function checkTypeSupport (type) { + var xhr = getXHR() + if (!xhr) return false + try { + xhr.responseType = type + return xhr.responseType === type + } catch (e) {} + return false +} + +// For some strange reason, Safari 7.0 reports typeof global.ArrayBuffer === 'object'. +// Safari 7.1 appears to have fixed this bug. +var haveArrayBuffer = typeof __webpack_require__.g.ArrayBuffer !== 'undefined' +var haveSlice = haveArrayBuffer && isFunction(__webpack_require__.g.ArrayBuffer.prototype.slice) + +// If fetch is supported, then arraybuffer will be supported too. Skip calling +// checkTypeSupport(), since that calls getXHR(). +exports.arraybuffer = exports.fetch || (haveArrayBuffer && checkTypeSupport('arraybuffer')) + +// These next two tests unavoidably show warnings in Chrome. Since fetch will always +// be used if it's available, just return false for these to avoid the warnings. +exports.msstream = !exports.fetch && haveSlice && checkTypeSupport('ms-stream') +exports.mozchunkedarraybuffer = !exports.fetch && haveArrayBuffer && + checkTypeSupport('moz-chunked-arraybuffer') + +// If fetch is supported, then overrideMimeType will be supported too. Skip calling +// getXHR(). +exports.overrideMimeType = exports.fetch || (getXHR() ? isFunction(getXHR().overrideMimeType) : false) + +exports.vbArray = isFunction(__webpack_require__.g.VBArray) + +function isFunction (value) { + return typeof value === 'function' +} + +xhr = null // Help gc + + +/***/ }), + +/***/ 93103: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +/* provided dependency */ var Buffer = __webpack_require__(15313)["Buffer"]; +/* provided dependency */ var __webpack_provided_process_dot_nextTick = __webpack_require__(28255); +var capability = __webpack_require__(48845) +var inherits = __webpack_require__(67483) +var response = __webpack_require__(24567) +var stream = __webpack_require__(30376) +var toArrayBuffer = __webpack_require__(51242) + +var IncomingMessage = response.IncomingMessage var rStates = response.readyStates function decideMode (preferBinary, useFetch) { @@ -20710,46 +20659,7 @@ module.exports = function stripHexPrefix(str) { /***/ }), -/***/ 12122: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "c": () => (/* binding */ appendEncryptionTarget) -/* harmony export */ }); -/* harmony import */ var _dimensiondev_kit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(28807); -/* harmony import */ var _Encryption__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20789); -/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(13740); -/* harmony import */ var _v37_ecdh__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(84532); -/* harmony import */ var _v38_ecdh__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(65096); - - - - - -async function appendEncryptionTarget(options, io) { - const target = { - type: 'E2E', - target: options.target - }; - const postKeyEncoded = (0,_Encryption__WEBPACK_IMPORTED_MODULE_1__/* .encodePostKey */ .v3)(options.version, options.postAESKey); - if (options.version === -38) { - return (0,_v38_ecdh__WEBPACK_IMPORTED_MODULE_4__/* .v38_addReceiver */ .i)(postKeyEncoded, target, io); - } else if (options.version === -37) { - const { getEphemeralKey } = (0,_utils__WEBPACK_IMPORTED_MODULE_2__/* .createEphemeralKeysMap */ .X)(io); - return (0,_v37_ecdh__WEBPACK_IMPORTED_MODULE_3__/* .v37_addReceiver */ .m)(false, { - postKeyEncoded, - postIV: options.iv, - getEphemeralKey - }, target, io); - } - (0,_dimensiondev_kit__WEBPACK_IMPORTED_MODULE_0__/* .unreachable */ .t1)(options.version); -} - - -/***/ }), - -/***/ 24663: +/***/ 59182: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; @@ -20759,7 +20669,7 @@ async function appendEncryptionTarget(options, io) { /* harmony export */ "Pj": () => (/* binding */ DecryptProgressKind), /* harmony export */ "gO": () => (/* binding */ DecryptIntermediateProgressKind) /* harmony export */ }); -/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(78144); +/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(44451); var DecryptProgressKind; (function(DecryptProgressKind) { @@ -20813,394 +20723,7 @@ DecryptError.Reasons = DecryptErrorReasons; /***/ }), -/***/ 20789: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "HI": () => (/* binding */ encrypt), -/* harmony export */ "v3": () => (/* binding */ encodePostKey) -/* harmony export */ }); -/* harmony import */ var _dimensiondev_kit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(28807); -/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(78144); -/* harmony import */ var _masknet_typed_message__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(81148); -/* harmony import */ var ts_results__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(48160); -/* harmony import */ var _payload__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(79807); -/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(62435); -/* harmony import */ var _EncryptionTypes__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(65617); -/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(13740); -/* harmony import */ var _v37_ecdh__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(84532); -/* harmony import */ var _v38_ecdh__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(65096); - - - - - - - - - - - -async function encrypt(options, io) { - const postIV = (0,_utils__WEBPACK_IMPORTED_MODULE_7__/* .fillIV */ .i)(io); - const postKey = await aes256GCM(io); - if (!postKey.usages.includes('encrypt') || !postKey.usages.includes('decrypt') || !postKey.extractable) { - throw new _EncryptionTypes__WEBPACK_IMPORTED_MODULE_6__/* .EncryptError */ .x(_EncryptionTypes__WEBPACK_IMPORTED_MODULE_6__/* .EncryptErrorReasons.AESKeyUsageError */ .U.AESKeyUsageError); - } - const authorPublic = queryAuthorPublicKey(options.author, io); - const encodedMessage = encodeMessage(options.version, options.message); - const encryptedMessage = encodedMessage.then((message)=>(0,_utils__WEBPACK_IMPORTED_MODULE_5__/* .encryptWithAES */ .l_)(postKey, postIV, message) - ).then((x)=>x.unwrap() - ); - let encryption; - let ecdhResult; - if (options.target.type === 'public') { - encryption = { - iv: postIV, - type: 'public', - AESKey: postKey - }; - } else { - const postKeyEncoded = encodePostKey(options.version, postKey); - const context = { - authorPublic, - postKeyEncoded, - postIV - }; - if (options.version === -38) [encryption, ecdhResult] = await e2e_v38(context, options.target, io); - else if (options.version === -37) [encryption, ecdhResult] = await e2e_v37(context, options.target, io); - else (0,_dimensiondev_kit__WEBPACK_IMPORTED_MODULE_0__/* .unreachable */ .t1)(options.version); - } - const payload = _payload__WEBPACK_IMPORTED_MODULE_4__/* .encodePayload.NoSign */ .V1.NoSign({ - version: options.version, - author: options.author.isUnknown ? ts_results__WEBPACK_IMPORTED_MODULE_3__/* .None */ .Hq : (0,ts_results__WEBPACK_IMPORTED_MODULE_3__/* .Some */ .bD)(options.author), - authorPublicKey: await authorPublic, - encryption, - encrypted: await encryptedMessage, - signature: ts_results__WEBPACK_IMPORTED_MODULE_3__/* .None */ .Hq - }).then((x)=>x.unwrap() - ); - return { - author: options.author, - identifier: new _masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .PostIVIdentifier */ .bb(options.author.network, (0,_dimensiondev_kit__WEBPACK_IMPORTED_MODULE_0__/* .encodeArrayBuffer */ .ll)(postIV)), - postKey, - output: await payload, - e2e: ecdhResult - }; -} -/** @internal */ async function encodePostKey(version, key) { - if (version === -37) return crypto.subtle.exportKey('raw', key).then((x)=>new Uint8Array(x) - ); - else if (version === -38) return crypto.subtle.exportKey('jwk', key).then(JSON.stringify).then((x)=>new TextEncoder().encode(x) - ); - (0,_dimensiondev_kit__WEBPACK_IMPORTED_MODULE_0__/* .unreachable */ .t1)(version); -} -async function e2e_v37(context, target, io) { - const { authorPublic , postIV: postIV , postKeyEncoded } = context; - const authorPublicKey = await authorPublic; - if (!authorPublicKey.some) throw new _EncryptionTypes__WEBPACK_IMPORTED_MODULE_6__/* .EncryptError */ .x(_EncryptionTypes__WEBPACK_IMPORTED_MODULE_6__/* .EncryptErrorReasons.PublicKeyNotFound */ .U.PublicKeyNotFound); - const { ephemeralKeys , getEphemeralKey } = (0,_utils__WEBPACK_IMPORTED_MODULE_7__/* .createEphemeralKeysMap */ .X)(io); - const ecdhResult = (0,_v37_ecdh__WEBPACK_IMPORTED_MODULE_8__/* .v37_addReceiver */ .m)(true, { - ...context, - getEphemeralKey - }, target, io); - const ownersAESKeyEncrypted = Promise.resolve().then(async ()=>{ - const [, ephemeralPrivateKey] = await getEphemeralKey(authorPublicKey.val.algr); - // we get rid of localKey in v38 - const aes = await crypto.subtle.deriveKey({ - name: 'ECDH', - public: authorPublicKey.val.key - }, ephemeralPrivateKey, { - name: 'AES-GCM', - length: 256 - }, true, [ - 'encrypt' - ]); - // Note: we're reusing iv in the post encryption. - const encryptedPostKey = await (0,_utils__WEBPACK_IMPORTED_MODULE_5__/* .encryptWithAES */ .l_)(aes, postIV, await postKeyEncoded); - return encryptedPostKey.unwrap(); - }); - const encryption = { - type: 'E2E', - ephemeralPublicKey: new Map(), - iv: postIV, - ownersAESKeyEncrypted: await ownersAESKeyEncrypted - }; - // wait ecdh to finish write ephemeralKeys - await ecdhResult; - for (const [curve, keys] of ephemeralKeys){ - encryption.ephemeralPublicKey.set(curve, (await keys)[0]); - } - return [ - encryption, - await ecdhResult - ]; -} -async function e2e_v38(context, target, io) { - const { postIV , postKeyEncoded } = context; - const ecdhResult = await (0,_v38_ecdh__WEBPACK_IMPORTED_MODULE_9__/* .v38_addReceiver */ .i)(postKeyEncoded, target, io); - const encryption = { - type: 'E2E', - // v38 does not support ephemeral encryption. - ephemeralPublicKey: new Map(), - iv: postIV, - ownersAESKeyEncrypted: await io.encryptByLocalKey(await postKeyEncoded, postIV) - }; - return [ - encryption, - ecdhResult - ]; -} -async function encodeMessage(version, message) { - if (version === -37) return (0,_masknet_typed_message__WEBPACK_IMPORTED_MODULE_2__/* .encodeTypedMessageToDocument */ .F9)(message); - if (!(0,_masknet_typed_message__WEBPACK_IMPORTED_MODULE_2__/* .isTypedMessageText */ .Rz)(message)) throw new _EncryptionTypes__WEBPACK_IMPORTED_MODULE_6__/* .EncryptError */ .x(_EncryptionTypes__WEBPACK_IMPORTED_MODULE_6__/* .EncryptErrorReasons.ComplexTypedMessageNotSupportedInPayload38 */ .U.ComplexTypedMessageNotSupportedInPayload38); - return (0,_masknet_typed_message__WEBPACK_IMPORTED_MODULE_2__/* .encodeTypedMessageV38Format */ .Hu)(message); -} -async function queryAuthorPublicKey(of, io) { - try { - if (of.isUnknown) return ts_results__WEBPACK_IMPORTED_MODULE_3__/* .None */ .Hq; - const key = await io.queryPublicKey(of); - if (!key) return ts_results__WEBPACK_IMPORTED_MODULE_3__/* .None */ .Hq; - return (0,ts_results__WEBPACK_IMPORTED_MODULE_3__/* .Some */ .bD)(key); - } catch (error) { - console.warn('[@masknet/encryption] Failed when query author public key', error); - return ts_results__WEBPACK_IMPORTED_MODULE_3__/* .None */ .Hq; - } -} -async function aes256GCM(io) { - if (io.getRandomAESKey) return io.getRandomAESKey(); - return await crypto.subtle.generateKey({ - name: 'AES-GCM', - length: 256 - }, true, [ - 'encrypt', - 'decrypt', - ]); -} - - -/***/ }), - -/***/ 65617: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "U": () => (/* binding */ EncryptErrorReasons), -/* harmony export */ "x": () => (/* binding */ EncryptError) -/* harmony export */ }); -var EncryptErrorReasons; -(function(EncryptErrorReasons) { - EncryptErrorReasons["ComplexTypedMessageNotSupportedInPayload38"] = '[@masknet/encryption] Complex TypedMessage is not supported in payload v38.'; - EncryptErrorReasons["PublicKeyNotFound"] = '[@masknet/encryption] Target public key not found.'; - EncryptErrorReasons["AESKeyUsageError"] = "[@masknet/encryption] AES key generated by IO doesn't have the correct usages or extractable property."; -})(EncryptErrorReasons || (EncryptErrorReasons = {})); -class EncryptError extends Error { - constructor(message, cause){ - super(message, { - cause - }); - this.message = message; - } -} -EncryptError.Reasons = EncryptErrorReasons; - - -/***/ }), - -/***/ 13740: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "X": () => (/* binding */ createEphemeralKeysMap), -/* harmony export */ "i": () => (/* binding */ fillIV) -/* harmony export */ }); -/* harmony import */ var _payload__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(79807); - -/** @internal */ function createEphemeralKeysMap(io) { - const ephemeralKeys = new Map(); - // get ephemeral keys, generate one if not found - async function getEphemeralKey(curve) { - if (ephemeralKeys.has(curve)) return ephemeralKeys.get(curve); - ephemeralKeys.set(curve, generateEC_KeyPair(io, curve)); - return ephemeralKeys.get(curve); - } - return { - ephemeralKeys, - getEphemeralKey - }; -} -/** @internal */ function fillIV(io) { - if (io.getRandomValues) return io.getRandomValues(new Uint8Array(16)); - return crypto.getRandomValues(new Uint8Array(16)); -} -async function generateEC_KeyPair(io, kind) { - if (io.getRandomECKey) return io.getRandomECKey(kind); - const namedCurve = { - [_payload__WEBPACK_IMPORTED_MODULE_0__/* .EC_KeyCurveEnum.secp256p1 */ .qx.secp256p1]: 'P-256', - [_payload__WEBPACK_IMPORTED_MODULE_0__/* .EC_KeyCurveEnum.secp256k1 */ .qx.secp256k1]: 'K-256', - get [_payload__WEBPACK_IMPORTED_MODULE_0__/* .EC_KeyCurveEnum.ed25519 */ .qx.ed25519] () { - throw new Error('TODO: support ED25519'); - } - }; - const { privateKey , publicKey } = await crypto.subtle.generateKey({ - name: 'ECDH', - namedCurve: namedCurve[kind] - }, true, [ - 'deriveKey' - ]); - return [ - publicKey, - privateKey - ]; -} - - -/***/ }), - -/***/ 84532: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "m": () => (/* binding */ v37_addReceiver) -/* harmony export */ }); -/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(78144); -/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(62435); -/* harmony import */ var _EncryptionTypes__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(65617); -/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(13740); - - - - -/** @internal */ async function v37_addReceiver(firstTime, context, target, io) { - const { getEphemeralKey , postIV , postKeyEncoded } = context; - const ecdh = Promise.allSettled(target.target.map(async (id)=>{ - const iv = postIV || (0,_utils__WEBPACK_IMPORTED_MODULE_3__/* .fillIV */ .i)(io); - const receiverPublicKey = id.isUnknown ? undefined : await io.queryPublicKey(id); - if (!receiverPublicKey) throw new _EncryptionTypes__WEBPACK_IMPORTED_MODULE_2__/* .EncryptError */ .x(_EncryptionTypes__WEBPACK_IMPORTED_MODULE_2__/* .EncryptErrorReasons.PublicKeyNotFound */ .U.PublicKeyNotFound); - const [ephemeralPublicKey, ephemeralPrivateKey] = await getEphemeralKey(receiverPublicKey.algr); - const aes = await crypto.subtle.deriveKey({ - name: 'ECDH', - public: receiverPublicKey.key - }, ephemeralPrivateKey, { - name: 'AES-GCM', - length: 256 - }, true, [ - 'encrypt' - ]); - // Note: we're reusing iv in the post encryption. - const encryptedPostKey = await (0,_utils__WEBPACK_IMPORTED_MODULE_1__/* .encryptWithAES */ .l_)(aes, iv, await postKeyEncoded); - const result = { - encryptedPostKey: encryptedPostKey.unwrap(), - target: id - }; - if (!firstTime) result.ephemeralPublicKey = ephemeralPublicKey; - return result; - })).then((x)=>x.entries() - ); - const ecdhResult = new _masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .IdentifierMap */ .qD(new Map(), _masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .ProfileIdentifier */ .WO); - for (const [index, result1] of (await ecdh)){ - ecdhResult.set(target.target[index], result1); - } - return ecdhResult; -} - - -/***/ }), - -/***/ 65096: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "D": () => (/* binding */ deriveAESByECDH_version38OrOlderExtraSteps), -/* harmony export */ "i": () => (/* binding */ v38_addReceiver) -/* harmony export */ }); -/* harmony import */ var _dimensiondev_kit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(28807); -/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(78144); -/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(62435); -/* harmony import */ var _EncryptionTypes__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(65617); -/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(13740); - - - - - -const KEY = (0,_dimensiondev_kit__WEBPACK_IMPORTED_MODULE_0__/* .decodeArrayBuffer */ .xe)('KEY'); -const IV = (0,_dimensiondev_kit__WEBPACK_IMPORTED_MODULE_0__/* .decodeArrayBuffer */ .xe)('IV'); -/** - * Derive a group of AES key for ECDH. - * - * !! For the compatibility, you should refer to the original implementation: - * - * !! https://github.com/DimensionDev/Maskbook/blob/f3d83713d60dd0aad462e0648c4d38586c106edc/packages/mask/src/crypto/crypto-alpha-40.ts#L29-L58 - * - * @internal - */ async function deriveAESByECDH_version38OrOlderExtraSteps(deriveAESByECDH, pub, iv) { - const deriveResult = await deriveAESByECDH(pub); - const extraSteps = deriveResult.map(async (key)=>{ - const derivedKeyRaw = await crypto.subtle.exportKey('raw', key); - const _a = (0,_dimensiondev_kit__WEBPACK_IMPORTED_MODULE_0__/* .concatArrayBuffer */ .v_)(derivedKeyRaw, iv); - const nextAESKeyMaterial = await crypto.subtle.digest('SHA-256', (0,_dimensiondev_kit__WEBPACK_IMPORTED_MODULE_0__/* .concatArrayBuffer */ .v_)(_a, iv, KEY)); - const iv_pre = new Uint8Array(await crypto.subtle.digest('SHA-256', (0,_dimensiondev_kit__WEBPACK_IMPORTED_MODULE_0__/* .concatArrayBuffer */ .v_)(_a, iv, IV))); - const nextIV = new Uint8Array(16); - for(let i = 0; i <= 16; i += 1){ - // eslint-disable-next-line no-bitwise - nextIV[i] = iv_pre[i] ^ iv_pre[16 + i]; - } - const nextAESKey = await crypto.subtle.importKey('raw', nextAESKeyMaterial, { - name: 'AES-GCM', - length: 256 - }, true, [ - 'encrypt', - 'decrypt' - ]); - return [ - nextAESKey, - nextIV - ]; - }); - return Promise.all(extraSteps); -} -/** @internal */ async function v38_addReceiver(postKeyEncoded, target, io) { - // For every receiver R, - // 1. Let R_pub = R.publicKey - // 2. Let Internal_AES be the result of ECDH with the sender's private key and R_pub - // Note: To keep compatibility, here we use the algorithm in - // https://github.com/DimensionDev/Maskbook/blob/f3d83713d60dd0aad462e0648c4d38586c106edc/packages/mask/src/crypto/crypto-alpha-40.ts#L29-L58 - // 3. Let ivToBePublish be a new generated IV. This should be sent to the receiver. - // 4. Calculate new AES key and IV based on Internal_AES and ivToBePublish. - // Note: Internal_AES is not returned by io.deriveAESKey_version38_or_older, it is internal algorithm of that method. - const ecdh = Promise.allSettled(target.target.map(async (id)=>{ - const receiverPublicKey = id.isUnknown ? undefined : await io.queryPublicKey(id); - if (!receiverPublicKey) throw new _EncryptionTypes__WEBPACK_IMPORTED_MODULE_3__/* .EncryptError */ .x(_EncryptionTypes__WEBPACK_IMPORTED_MODULE_3__/* .EncryptErrorReasons.PublicKeyNotFound */ .U.PublicKeyNotFound); - const ivToBePublished = (0,_utils__WEBPACK_IMPORTED_MODULE_4__/* .fillIV */ .i)(io); - const [[aes, iv]] = await deriveAESByECDH_version38OrOlderExtraSteps(async (e)=>[ - await io.deriveAESKey(e) - ] - , receiverPublicKey.key, ivToBePublished); - const encryptedPostKey = await (0,_utils__WEBPACK_IMPORTED_MODULE_2__/* .encryptWithAES */ .l_)(aes, iv, await postKeyEncoded); - return { - ivToBePublished, - encryptedPostKey: encryptedPostKey.unwrap(), - target: id - }; - })).then((x)=>x.entries() - ); - const ecdhResult = new _masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .IdentifierMap */ .qD(new Map(), _masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .ProfileIdentifier */ .WO); - for (const [index, result] of (await ecdh)){ - ecdhResult.set(target.target[index], result); - } - return ecdhResult; -} - - -/***/ }), - -/***/ 79807: +/***/ 91743: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; @@ -21217,23 +20740,23 @@ __webpack_require__.d(__webpack_exports__, { // EXTERNAL MODULE: ../../node_modules/.pnpm/ts-results@3.3.0/node_modules/ts-results/esm/index.js + 3 modules var esm = __webpack_require__(48160); // EXTERNAL MODULE: ../encryption/src/payload_internal/version-40.ts -var version_40 = __webpack_require__(9002); +var version_40 = __webpack_require__(43141); // EXTERNAL MODULE: ../encryption/src/payload_internal/version-39.ts -var version_39 = __webpack_require__(98273); +var version_39 = __webpack_require__(46305); // EXTERNAL MODULE: ../encryption/src/payload_internal/version-38.parser.ts -var version_38_parser = __webpack_require__(91221); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@dimensiondev+kit@0.0.0-20220228054820-f2378be/node_modules/@dimensiondev/kit/esm/index.js + 1 modules -var kit_esm = __webpack_require__(28807); +var version_38_parser = __webpack_require__(64759); +// EXTERNAL MODULE: ../../node_modules/.pnpm/@dimensiondev+kit@0.0.0-20220617045824-8bc7a27/node_modules/@dimensiondev/kit/esm/index.js +var kit_esm = __webpack_require__(46123); // EXTERNAL MODULE: ../encryption/src/types/index.ts + 1 modules -var types = __webpack_require__(25209); +var types = __webpack_require__(30181); // EXTERNAL MODULE: ../encryption/src/utils/index.ts + 1 modules -var utils = __webpack_require__(62435); +var utils = __webpack_require__(53908); // EXTERNAL MODULE: ../encryption/src/payload_internal/shared.ts -var shared = __webpack_require__(31649); -// EXTERNAL MODULE: ../shared-base/src/index.ts + 1 modules -var src = __webpack_require__(78144); +var shared = __webpack_require__(21198); +// EXTERNAL MODULE: ../shared-base/src/index.ts + 2 modules +var src = __webpack_require__(44451); ;// CONCATENATED MODULE: ../encryption/src/payload_internal/version-38.encoder.ts -/* eslint @dimensiondev/unicode-specific-set: ["error", { "only": "code" }] */ +/* eslint @dimensiondev/unicode/specific-set: ["error", { "only": "code" }] */ @@ -21308,17 +20831,17 @@ async function compressSecp256k1Key(key) { const jwk = await (0,utils/* exportCryptoKeyToJWK */.nm)(key); if (jwk.err) return jwk.mapErr((e)=>new src/* CheckedError */.iD(types/* CryptoException.InvalidCryptoKey */.H3.InvalidCryptoKey, e) ); - const arr = esm/* Result.wrap */.x4.wrap(()=>(0,src/* compressSecp256k1Point */.SH)(jwk.val.x, jwk.val.y) - ).mapErr((e)=>new src/* CheckedError */.iD(types/* CryptoException.InvalidCryptoKey */.H3.InvalidCryptoKey, e) + const arr = (await esm/* Result.wrapAsync */.x4.wrapAsync(()=>(0,src/* compressSecp256k1Point */.SH)(jwk.val.x, jwk.val.y) + )).mapErr((e)=>new src/* CheckedError */.iD(types/* CryptoException.InvalidCryptoKey */.H3.InvalidCryptoKey, e) ); if (arr.err) return arr; return (0,esm.Ok)((0,kit_esm/* encodeArrayBuffer */.ll)(arr.val.slice())); } // EXTERNAL MODULE: ../encryption/src/payload_internal/version-37.parser.ts -var version_37_parser = __webpack_require__(82719); +var version_37_parser = __webpack_require__(83363); // EXTERNAL MODULE: ../encryption/src/payload/types.ts -var payload_types = __webpack_require__(12628); +var payload_types = __webpack_require__(80326); ;// CONCATENATED MODULE: ../encryption/src/payload_internal/version-37.encoder.ts @@ -21348,7 +20871,7 @@ async function encode37(payload) { payload_arr[version_37_encoder_Index.authorPublicKeyAlgorithm] = algr; const raw = await (0,utils/* exportCryptoKeyToRaw */.bu)(key); if (raw.ok) { - if (algr === payload_types/* EC_KeyCurveEnum.secp256k1 */.qx.secp256k1) payload_arr[version_37_encoder_Index.authorPublicKey] = (0,src/* compressSecp256k1KeyRaw */.f1)(raw.val); + if (algr === payload_types/* EC_KeyCurveEnum.secp256k1 */.qx.secp256k1) payload_arr[version_37_encoder_Index.authorPublicKey] = await (0,src/* compressSecp256k1KeyRaw */.f1)(raw.val); else payload_arr[version_37_encoder_Index.authorPublicKey] = raw.val; } else { payload_arr[version_37_encoder_Index.authorPublicKey] = null; @@ -21368,7 +20891,7 @@ async function encode37(payload) { const k = await (0,utils/* exportCryptoKeyToRaw */.bu)(key); if (k.err) warn(key, k.err); else { - if (alg === payload_types/* EC_KeyCurveEnum.secp256k1 */.qx.secp256k1) keyMaterials[alg] = (0,src/* compressSecp256k1KeyRaw */.f1)(k.val); + if (alg === payload_types/* EC_KeyCurveEnum.secp256k1 */.qx.secp256k1) keyMaterials[alg] = await (0,src/* compressSecp256k1KeyRaw */.f1)(k.val); else keyMaterials[alg] = k.val; } } @@ -21399,7 +20922,7 @@ function warn(key, err) { // EXTERNAL MODULE: ../encryption/src/payload_internal/SignatureContainer.ts -var SignatureContainer = __webpack_require__(48771); +var SignatureContainer = __webpack_require__(39613); ;// CONCATENATED MODULE: ../encryption/src/payload/index.ts @@ -21445,7 +20968,7 @@ encodePayload.NoSign = (payload)=>encodePayload(payload, async ()=>src/* Optiona /***/ }), -/***/ 25209: +/***/ 30181: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; @@ -21458,8 +20981,8 @@ __webpack_require__.d(__webpack_exports__, { "jY": () => (/* reexport */ assertUint8Array) }); -// EXTERNAL MODULE: ../shared-base/src/index.ts + 1 modules -var src = __webpack_require__(78144); +// EXTERNAL MODULE: ../shared-base/src/index.ts + 2 modules +var src = __webpack_require__(44451); // EXTERNAL MODULE: ../../node_modules/.pnpm/ts-results@3.3.0/node_modules/ts-results/esm/index.js + 3 modules var esm = __webpack_require__(48160); ;// CONCATENATED MODULE: ../encryption/src/types/Exception.ts @@ -21499,7 +21022,7 @@ function assertArray(name, kinds) { /***/ }), -/***/ 62435: +/***/ 53908: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; @@ -21520,20 +21043,20 @@ __webpack_require__.d(__webpack_exports__, { "OT": () => (/* reexport */ importEC_Key) }); -// EXTERNAL MODULE: ../shared-base/src/index.ts + 1 modules -var src = __webpack_require__(78144); +// EXTERNAL MODULE: ../shared-base/src/index.ts + 2 modules +var src = __webpack_require__(44451); // EXTERNAL MODULE: ../../node_modules/.pnpm/ts-results@3.3.0/node_modules/ts-results/esm/index.js + 3 modules var esm = __webpack_require__(48160); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@dimensiondev+kit@0.0.0-20220228054820-f2378be/node_modules/@dimensiondev/kit/esm/index.js + 1 modules -var kit_esm = __webpack_require__(28807); +// EXTERNAL MODULE: ../../node_modules/.pnpm/@dimensiondev+kit@0.0.0-20220617045824-8bc7a27/node_modules/@dimensiondev/kit/esm/index.js +var kit_esm = __webpack_require__(46123); // EXTERNAL MODULE: ../../node_modules/.pnpm/@msgpack+msgpack@2.7.2/node_modules/@msgpack/msgpack/dist.es5+esm/decode.mjs + 3 modules var decode = __webpack_require__(92415); // EXTERNAL MODULE: ../../node_modules/.pnpm/@msgpack+msgpack@2.7.2/node_modules/@msgpack/msgpack/dist.es5+esm/encode.mjs + 1 modules var encode = __webpack_require__(82151); // EXTERNAL MODULE: ../encryption/src/payload/index.ts + 3 modules -var payload = __webpack_require__(79807); +var payload = __webpack_require__(91743); // EXTERNAL MODULE: ../encryption/src/types/index.ts + 1 modules -var types = __webpack_require__(25209); +var types = __webpack_require__(30181); ;// CONCATENATED MODULE: ../encryption/src/utils/crypto.ts @@ -21654,15 +21177,15 @@ function wrap(f, valid) { /***/ }), -/***/ 63997: +/***/ 67558: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "W": () => (/* binding */ FacebookColoredIcon) /* harmony export */ }); -/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(71999); -/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(15679); +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35667); +/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(50498); const FacebookColoredIcon = (0,_utils__WEBPACK_IMPORTED_MODULE_1__/* .createIcon */ .I)('FacebookColoredIcon', /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("g", { @@ -21678,15 +21201,51 @@ const FacebookColoredIcon = (0,_utils__WEBPACK_IMPORTED_MODULE_1__/* .createIcon /***/ }), -/***/ 5795: +/***/ 24421: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "F": () => (/* binding */ FacebookRoundIcon) +/* harmony export */ }); +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35667); +/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(50498); + + +const FacebookRoundIcon = (0,_utils__WEBPACK_IMPORTED_MODULE_1__/* .createIcon */ .I)('FacebookRoundIcon', /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("g", { + fill: "none", + children: [ + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("rect", { + x: "1", + y: "1", + width: "24", + height: "24", + rx: "12", + fill: "#3C599B" + }), + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("path", { + d: "M13.95 19.25h-2.59V13h-1.295v-2.158h1.295V9.547c0-1.727.725-2.806 2.797-2.806h1.726V8.9h-1.07c-.803 0-.863.303-.863.864v1.079h1.95L15.677 13H13.95v6.25Z", + fill: "#fff" + }), + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("path", { + d: "M13 24C6.925 24 2 19.075 2 13H0c0 7.18 5.82 13 13 13v-2Zm11-11c0 6.075-4.925 11-11 11v2c7.18 0 13-5.82 13-13h-2ZM13 2c6.075 0 11 4.925 11 11h2c0-7.18-5.82-13-13-13v2Zm0-2C5.82 0 0 5.82 0 13h2C2 6.925 6.925 2 13 2V0Z", + fill: "#F9F9F9" + }) + ] +}), '0 0 24 24'); + + +/***/ }), + +/***/ 55903: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "$": () => (/* binding */ InstagramColoredIcon) /* harmony export */ }); -/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(71999); -/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(15679); +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35667); +/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(50498); const InstagramColoredIcon = (0,_utils__WEBPACK_IMPORTED_MODULE_1__/* .createIcon */ .I)('InstagramColoredIcon', /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("g", { @@ -21763,15 +21322,78 @@ const InstagramColoredIcon = (0,_utils__WEBPACK_IMPORTED_MODULE_1__/* .createIco /***/ }), -/***/ 14696: +/***/ 62305: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "A": () => (/* binding */ InstagramRoundIcon) +/* harmony export */ }); +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35667); +/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(50498); + + +const InstagramRoundIcon = (0,_utils__WEBPACK_IMPORTED_MODULE_1__/* .createIcon */ .I)('InstagramRoundIcon', /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("g", { + fill: "none", + children: [ + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("rect", { + x: "1", + y: "1", + width: "24", + height: "24", + rx: "12", + fill: "url(#a)" + }), + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("path", { + d: "M13 10.433A2.567 2.567 0 0 0 10.433 13 2.553 2.553 0 0 0 13 15.567 2.567 2.567 0 0 0 15.567 13 2.582 2.582 0 0 0 13 10.433Zm0 4.241A1.672 1.672 0 0 1 11.326 13c0-.915.736-1.652 1.674-1.652.915 0 1.652.737 1.652 1.652 0 .937-.737 1.674-1.652 1.674Zm3.259-4.33a.6.6 0 0 0-.603-.603.6.6 0 0 0-.603.603.6.6 0 0 0 .603.602.6.6 0 0 0 .603-.602Zm1.696.602c-.044-.803-.223-1.517-.803-2.098-.58-.58-1.295-.759-2.099-.803-.825-.045-3.303-.045-4.129 0-.803.044-1.495.223-2.098.803-.58.58-.76 1.295-.804 2.098-.044.826-.044 3.304 0 4.13.045.803.223 1.495.804 2.098.603.58 1.294.759 2.098.804.826.044 3.304.044 4.13 0 .803-.045 1.517-.224 2.098-.804.58-.603.759-1.295.803-2.098.045-.826.045-3.304 0-4.13Zm-1.071 5c-.156.447-.514.782-.938.96-.67.268-2.232.201-2.946.201-.737 0-2.3.067-2.947-.2a1.693 1.693 0 0 1-.96-.96c-.267-.648-.2-2.21-.2-2.947 0-.714-.067-2.277.2-2.947.18-.424.514-.758.96-.937.648-.268 2.21-.2 2.947-.2.714 0 2.277-.068 2.946.2.425.156.76.513.938.938.268.67.2 2.232.2 2.946 0 .737.068 2.3-.2 2.946ZM13 24C6.925 24 2 19.075 2 13H0c0 7.18 5.82 13 13 13v-2Zm11-11c0 6.075-4.925 11-11 11v2c7.18 0 13-5.82 13-13h-2ZM13 2c6.075 0 11 4.925 11 11h2c0-7.18-5.82-13-13-13v2Zm0-2C5.82 0 0 5.82 0 13h2C2 6.925 6.925 2 13 2V0Z", + fill: "#fff" + }), + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("defs", { + children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("linearGradient", { + id: "a", + x1: "16.629", + y1: "42.895", + x2: "50.702", + y2: "9.315", + gradientUnits: "userSpaceOnUse", + children: [ + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("stop", { + stopColor: "#fff" + }), + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("stop", { + offset: ".148", + stopColor: "#F6640E" + }), + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("stop", { + offset: ".444", + stopColor: "#BA03A7" + }), + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("stop", { + offset: ".733", + stopColor: "#6A01B9" + }), + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("stop", { + offset: "1", + stopColor: "#6B01B9" + }) + ] + }) + }) + ] +}), '0 0 24 24'); + + +/***/ }), + +/***/ 78258: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "H": () => (/* binding */ LoadingIcon) /* harmony export */ }); -/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(71999); -/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(15679); +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35667); +/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(50498); const LoadingIcon = (0,_utils__WEBPACK_IMPORTED_MODULE_1__/* .createIcon */ .I)('Loading', /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("g", { @@ -21830,15 +21452,63 @@ const LoadingIcon = (0,_utils__WEBPACK_IMPORTED_MODULE_1__/* .createIcon */ .I)( /***/ }), -/***/ 45227: +/***/ 60989: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "N": () => (/* binding */ LoadingBaseIcon) +/* harmony export */ }); +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35667); +/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(50498); + + +const LoadingBaseIcon = (0,_utils__WEBPACK_IMPORTED_MODULE_1__/* .createPaletteAwareIcon */ .t)('LoadingBaseIcon', /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, { + children: [ + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("path", { + fillRule: "evenodd", + clipRule: "evenodd", + d: "M10 16.75C13.7279 16.75 16.75 13.7279 16.75 10C16.75 6.27208 13.7279 3.25 10 3.25C6.27208 3.25 3.25 6.27208 3.25 10C3.25 13.7279 6.27208 16.75 10 16.75ZM10 18C14.4183 18 18 14.4183 18 10C18 5.58172 14.4183 2 10 2C5.58172 2 2 5.58172 2 10C2 14.4183 5.58172 18 10 18Z", + fill: "#07101B" + }), + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("path", { + opacity: "0.4", + fillRule: "evenodd", + clipRule: "evenodd", + d: "M16.7422 9.82423C16.7422 6.19493 13.6293 3.2528 10 3.2528V2C14.4183 2 18 5.58172 18 10L16.7422 9.82423Z", + fill: "#ffffff" + }) + ] +}), /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, { + children: [ + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("path", { + fillRule: "evenodd", + clipRule: "evenodd", + d: "M10 16.75C13.7279 16.75 16.75 13.7279 16.75 10C16.75 6.27208 13.7279 3.25 10 3.25C6.27208 3.25 3.25 6.27208 3.25 10C3.25 13.7279 6.27208 16.75 10 16.75ZM10 18C14.4183 18 18 14.4183 18 10C18 5.58172 14.4183 2 10 2C5.58172 2 2 5.58172 2 10C2 14.4183 5.58172 18 10 18Z", + fill: "#F5F5F5" + }), + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("path", { + opacity: "0.4", + fillRule: "evenodd", + clipRule: "evenodd", + d: "M16.7422 9.82423C16.7422 6.19493 13.6293 3.2528 10 3.2528V2C14.4183 2 18 5.58172 18 10L16.7422 9.82423Z", + fill: "#000000" + }) + ] +}), undefined, '0 0 20 20'); + + +/***/ }), + +/***/ 12095: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "G": () => (/* binding */ MindsIcon) /* harmony export */ }); -/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(71999); -/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(15679); +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35667); +/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(50498); const MindsIcon = (0,_utils__WEBPACK_IMPORTED_MODULE_1__/* .createIcon */ .I)('MindsIcon', /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("g", { @@ -21948,15 +21618,133 @@ const MindsIcon = (0,_utils__WEBPACK_IMPORTED_MODULE_1__/* .createIcon */ .I)('M /***/ }), -/***/ 65651: +/***/ 75430: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "W": () => (/* binding */ MindsRoundIcon) +/* harmony export */ }); +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35667); +/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(50498); + + +const MindsRoundIcon = (0,_utils__WEBPACK_IMPORTED_MODULE_1__/* .createIcon */ .I)('MindsRoundIcon', /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("g", { + children: [ + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("g", { + clipPath: "url(#minds_round_clip0)", + children: [ + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("path", { + d: "M6.08588 23.9151C5.15758 23.9047 4.23801 23.7344 3.36753 23.4118C2.73187 23.1768 2.15676 22.8027 1.68424 22.3169C1.19712 21.8454 0.822514 21.2701 0.588235 20.6339C0.265824 19.7634 0.0958076 18.8439 0.0856471 17.9158C0.0143529 16.3727 0 15.9099 0 12C0 8.09012 0.0157647 7.62894 0.0849412 6.08471C0.0963347 5.15689 0.26656 4.23788 0.588235 3.36753C0.823654 2.73176 1.19773 2.15642 1.68329 1.68329C2.15523 1.19662 2.73061 0.822358 3.36682 0.588235C4.2373 0.265557 5.15687 0.0953008 6.08518 0.0849412C7.62871 0.0143529 8.09224 0 12 0C15.9078 0 16.3711 0.0157647 17.9153 0.0849412C18.8433 0.0962542 19.7626 0.266481 20.6332 0.588235C21.2691 0.822667 21.8443 1.1968 22.3165 1.68306C22.8029 2.15535 23.1772 2.73073 23.4118 3.36682C23.7345 4.23729 23.9049 5.15686 23.9153 6.08518C23.9859 7.62941 24.0002 8.09176 24.0002 12.0005C24.0002 15.9092 23.9859 16.3715 23.9153 17.9158C23.9041 18.8439 23.7338 19.7633 23.4118 20.6339C23.1682 21.2652 22.7951 21.8386 22.3166 22.317C21.838 22.7954 21.2646 23.1683 20.6332 23.4118C19.7627 23.7345 18.8431 23.9049 17.9148 23.9153C16.372 23.9859 15.9082 24.0002 11.9995 24.0002C8.09082 24.0002 7.62847 23.9866 6.08565 23.9153", + fill: "#21252A" + }), + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("path", { + d: "M10.791 18.7554L10.6973 20.0932L10.791 18.7554Z", + fill: "#656565" + }), + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("path", { + d: "M9.64062 19.6319L10.8008 18.6631L11.9611 20.5546L9.64062 19.6319Z", + fill: "#656565" + }), + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("path", { + d: "M9.64062 16.772V19.6323L10.8008 18.6634L9.64062 16.772Z", + fill: "#787778" + }), + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("path", { + d: "M13.1212 18.6631L11.9609 20.5546L14.2814 19.6319L13.1212 18.6631Z", + fill: "#5C5C5C" + }), + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("path", { + d: "M14.2813 19.632L13.1211 18.6632L14.2813 16.7717V19.632Z", + fill: "#787778" + }), + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("path", { + d: "M9.64062 16.772H14.2815L11.9611 20.5549L9.64062 16.772Z", + fill: "#4A4A4A" + }), + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("path", { + d: "M10.1035 8.05249L15.0228 10.0824L11.4958 12.8965L10.1035 8.05249Z", + fill: "#FED12F" + }), + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("path", { + d: "M13.8164 4.63843L16.6009 7.49871L15.023 10.0822L13.8164 4.63843Z", + fill: "#FED12F" + }), + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("path", { + d: "M9.64062 16.7717L14.7456 15.2954L14.2815 16.7717H9.64062Z", + fill: "#FED12F" + }), + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("path", { + d: "M9.17578 15.2954L11.4962 12.8965L9.63987 16.7717L9.17578 15.2954Z", + fill: "#FED12F" + }), + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("path", { + d: "M7.32031 7.49871L10.1048 4.63843V8.05231L7.32031 7.49871Z", + fill: "#FED12F" + }), + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("path", { + d: "M11.498 12.8964L14.7467 15.2954L15.0251 10.0823L11.498 12.8964Z", + fill: "#FFF3CB" + }), + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("path", { + d: "M11.4962 12.8965L7.04102 12.1122L9.17581 15.2954L11.4962 12.8965Z", + fill: "#FFF3CB" + }), + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("path", { + d: "M10.1035 8.05249L13.8162 4.63861L15.0228 10.0824L10.1035 8.05249Z", + fill: "#FFDD63" + }), + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("path", { + d: "M7.04102 12.1121L10.104 8.05231L11.4962 12.8963L7.04102 12.1121Z", + fill: "#FFEDAC" + }), + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("path", { + d: "M9.63948 16.7718L11.4958 12.8966L14.7444 15.2955L9.63948 16.7718Z", + fill: "#FFDD63" + }), + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("path", { + d: "M14.744 15.2953L15.0224 10.0822L16.8788 12.1121L14.744 15.2953Z", + fill: "#FFDD63" + }), + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("path", { + d: "M7.04167 12.1122L7.32012 7.49888L10.1046 8.05248L7.04167 12.1122Z", + fill: "#FFDD63" + }), + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("path", { + d: "M15.0249 10.0824L16.6028 7.49897L16.8813 12.1123L15.0249 10.0824Z", + fill: "#FEE382" + }), + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("path", { + d: "M13.8176 4.63866L10.1049 8.05255L10.1049 4.63866L13.8176 4.63866Z", + fill: "#FEF1C0" + }) + ] + }), + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("defs", { + children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("clipPath", { + id: "minds_round_clip0", + children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("rect", { + width: "24", + height: "24", + fill: "white" + }) + }) + }) + ] +}), '0 0 24 24'); + + +/***/ }), + +/***/ 35961: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "w": () => (/* binding */ OpenSeaColoredIcon) /* harmony export */ }); -/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(71999); -/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(15679); +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35667); +/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(50498); const OpenSeaColoredIcon = (0,_utils__WEBPACK_IMPORTED_MODULE_1__/* .createIcon */ .I)('OpenSeaColoredIcon', /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("g", { @@ -21979,15 +21767,15 @@ const OpenSeaColoredIcon = (0,_utils__WEBPACK_IMPORTED_MODULE_1__/* .createIcon /***/ }), -/***/ 141: +/***/ 95789: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "w": () => (/* binding */ RiskIcon) /* harmony export */ }); -/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(71999); -/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(15679); +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35667); +/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(50498); const RiskIcon = (0,_utils__WEBPACK_IMPORTED_MODULE_1__/* .createIcon */ .I)('Risk', /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("g", { @@ -22007,15 +21795,15 @@ const RiskIcon = (0,_utils__WEBPACK_IMPORTED_MODULE_1__/* .createIcon */ .I)('Ri /***/ }), -/***/ 38524: +/***/ 68488: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "W": () => (/* binding */ SearchIcon) /* harmony export */ }); -/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(71999); -/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(15679); +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35667); +/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(50498); const SearchIcon = (0,_utils__WEBPACK_IMPORTED_MODULE_1__/* .createIcon */ .I)('Search', /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("g", { @@ -22030,15 +21818,15 @@ const SearchIcon = (0,_utils__WEBPACK_IMPORTED_MODULE_1__/* .createIcon */ .I)(' /***/ }), -/***/ 17946: +/***/ 37594: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "g": () => (/* binding */ TwitterColoredIcon) /* harmony export */ }); -/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(71999); -/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(15679); +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35667); +/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(50498); const TwitterColoredIcon = (0,_utils__WEBPACK_IMPORTED_MODULE_1__/* .createIcon */ .I)('TwitterColoredIcon', /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("g", { @@ -22051,21 +21839,53 @@ const TwitterColoredIcon = (0,_utils__WEBPACK_IMPORTED_MODULE_1__/* .createIcon /***/ }), -/***/ 96154: +/***/ 42099: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "W": () => (/* binding */ TwitterRoundIcon) +/* harmony export */ }); +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35667); +/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(50498); + + +const TwitterRoundIcon = (0,_utils__WEBPACK_IMPORTED_MODULE_1__/* .createIcon */ .I)('TwitterRoundIcon', /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("g", { + fill: "none", + children: [ + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("path", { + d: "M0 12C0 5.373 5.373 0 12 0s12 5.373 12 12-5.373 12-12 12S0 18.627 0 12Z", + fill: "#1DA1F2" + }), + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("path", { + d: "M9.64 17.033c4.8 0 7.424-3.874 7.424-7.233 0-.11 0-.22-.007-.329.51-.36.951-.805 1.302-1.316-.477.206-.982.34-1.499.4a2.563 2.563 0 0 0 1.147-1.406 5.313 5.313 0 0 1-1.657.617 2.634 2.634 0 0 0-1.48-.768 2.672 2.672 0 0 0-1.655.268c-.506.264-.909.683-1.146 1.193a2.484 2.484 0 0 0-.166 1.626 7.562 7.562 0 0 1-2.978-.771 7.376 7.376 0 0 1-2.4-1.885A2.488 2.488 0 0 0 6.24 9.28c.15.63.541 1.182 1.094 1.541a2.64 2.64 0 0 1-1.185-.318v.032c0 .587.21 1.156.59 1.61.382.455.913.766 1.504.882a2.671 2.671 0 0 1-1.178.044c.166.505.491.947.928 1.264.437.316.965.492 1.51.502-.542.414-1.161.72-1.824.901a5.37 5.37 0 0 1-2.038.152 7.531 7.531 0 0 0 4 1.14", + fill: "#fff" + }), + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("path", { + d: "M12 23C5.925 23 1 18.075 1 12h-2c0 7.18 5.82 13 13 13v-2Zm11-11c0 6.075-4.925 11-11 11v2c7.18 0 13-5.82 13-13h-2ZM12 1c6.075 0 11 4.925 11 11h2c0-7.18-5.82-13-13-13v2Zm0-2C4.82-1-1 4.82-1 12h2C1 5.925 5.925 1 12 1v-2Z", + fill: "#F9F9F9" + }) + ] +}), '0 0 24 24'); + + +/***/ }), + +/***/ 79573: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "v": () => (/* binding */ MaskIconPaletteContext) /* harmony export */ }); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(86248); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(58757); const MaskIconPaletteContext = (0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)('dark'); /***/ }), -/***/ 15679: +/***/ 50498: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; @@ -22073,11 +21893,11 @@ const MaskIconPaletteContext = (0,react__WEBPACK_IMPORTED_MODULE_0__.createConte /* harmony export */ "I": () => (/* binding */ createIcon), /* harmony export */ "t": () => (/* binding */ createPaletteAwareIcon) /* harmony export */ }); -/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(71999); -/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(73160); -/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(927); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(86248); -/* harmony import */ var _MaskIconPaletteContext__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(96154); +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35667); +/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(8461); +/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(76618); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(58757); +/* harmony import */ var _MaskIconPaletteContext__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(79573); @@ -22147,221 +21967,266 @@ const MaskIconPaletteContext = (0,react__WEBPACK_IMPORTED_MODULE_0__.createConte /***/ }), -/***/ 88520: +/***/ 47361: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "$": () => (/* binding */ onCoin98Event), -/* harmony export */ "A": () => (/* binding */ bridgedCoin98Provider) +/* harmony export */ "E": () => (/* binding */ InjectedProvider) /* harmony export */ }); -/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7474); +/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(28383); -function request(data) { - return (0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .createPromise */ .wv)((id)=>(0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .sendEvent */ .qP)('coin98BridgeSendRequest', id, data) - ); -} -function send(payload, callback) { - (0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .createPromise */ .wv)((id)=>(0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .sendEvent */ .qP)('coin98BridgeSendRequest', id, { - method: payload.method, - params: payload.params - }) - ).then((value)=>{ - callback(null, { - jsonrpc: '2.0', - id: payload.id, - result: value +class InjectedProvider { + async startup() { + await this.untilAvailable(); + this.on('connected', ()=>{ + this.isConnectedInternal = true; }); - }, (error)=>{ - if (error instanceof Error) callback(error); - }); -} -/** Interact with the current ethereum provider */ const bridgedCoin98Provider = { - request, - send, - sendAsync: send, - on (event, callback) { - if (!bridgedCoin98.has(event)) { - bridgedCoin98.set(event, new Set()); - (0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .sendEvent */ .qP)('coin98BridgeRequestListen', event); - } - const map = bridgedCoin98.get(event); - map.add(callback); - return ()=>void map.delete(callback) - ; - }, - getProperty (key) { - return (0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .createPromise */ .wv)((id)=>(0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .sendEvent */ .qP)('coin98BridgePrimitiveAccess', id, key) + this.on('disconnect', ()=>{ + this.isConnectedInternal = false; + }); + this.isConnectedInternal = await this.getProperty('isConnected'); + } + get isReady() { + return this.isReadyInternal; + } + get isConnected() { + return this.isConnectedInternal; + } + /** + * Build the connection. + */ connect(options) { + return (0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .createPromise */ .wv)((id)=>(0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .sendEvent */ .qP)('web3BridgeExecute', [ + this.pathname, + 'connect' + ].join('.'), id, options) ); - }, - untilAvailable () { - return (0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .createPromise */ .wv)((id)=>(0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .sendEvent */ .qP)('untilCoin98BridgeOnline', id) + } + /** + * Break the connections. + */ disconnect() { + return (0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .createPromise */ .wv)((id)=>(0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .sendEvent */ .qP)('web3BridgeExecute', [ + this.pathname, + 'disconnect' + ].join('.'), id) ); } -}; -const bridgedCoin98 = new Map(); -/** @internal */ function onCoin98Event(event, data) { - for (const f of bridgedCoin98.get(event) || []){ - try { - Reflect.apply(f, null, data); - } catch {} + /** + * Wait until the sdk object injected into the page. + */ async untilAvailable(validator = ()=>Promise.resolve(true) + ) { + await (0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .createPromise */ .wv)((id)=>(0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .sendEvent */ .qP)('web3UntilBridgeOnline', this.pathname.split('.')[0], id) + ); + if (await validator()) { + this.isReadyInternal = true; + } + } + /** + * Send RPC request to the sdk object. + */ request(data) { + return (0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .createPromise */ .wv)((id)=>(0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .sendEvent */ .qP)('web3BridgeExecute', [ + this.pathname, + 'request' + ].join('.'), id, data) + ); + } + /** + * Add event listener on the sdk object. + */ on(event, callback) { + if (!this.events.has(event)) { + this.events.set(event, new Set()); + (0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .sendEvent */ .qP)('web3BridgeBindEvent', this.pathname, 'web3BridgeEmitEvent', event); + } + const set = this.events.get(event); + set.add(callback); + return ()=>void set.delete(callback) + ; + } + /** + * Remove event listener from the sdk object. + */ off(event, callback) { + this.events.get(event)?.delete(callback); + } + /** + * Emit event and invoke registered listeners + */ emit(event, data) { + for (const f of this.events.get(event) || []){ + try { + Reflect.apply(f, null, data); + } catch {} + } + } + /** + * Access primitive property on the sdk object. + */ getProperty(key) { + return (0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .createPromise */ .wv)((id)=>(0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .sendEvent */ .qP)('web3BridgePrimitiveAccess', this.pathname, id, key) + ); + } + constructor(pathname){ + this.pathname = pathname; + this.events = new Map(); + this.isReadyInternal = false; + this.isConnectedInternal = false; + this.startup(); } - return; } /***/ }), -/***/ 22469: +/***/ 45169: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "j": () => (/* binding */ bridgedEthereumProvider), -/* harmony export */ "t": () => (/* binding */ onEthEvent) +/* harmony export */ "E": () => (/* binding */ Coin98ProviderType), +/* harmony export */ "v": () => (/* binding */ Coin98Provider) /* harmony export */ }); -/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7474); - -function request(data) { - return (0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .createPromise */ .wv)((id)=>(0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .sendEvent */ .qP)('ethBridgeSendRequest', id, data) - ); -} -function send(payload, callback) { - (0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .createPromise */ .wv)((id)=>(0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .sendEvent */ .qP)('ethBridgeSendRequest', id, { - method: payload.method, - params: payload.params - }) - ).then((value)=>{ - callback(null, { - jsonrpc: '2.0', - id: payload.id, - result: value - }); - }, (error)=>{ - if (error instanceof Error) callback(error); - }); +/* harmony import */ var _Base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(47361); + +var Coin98ProviderType; +(function(Coin98ProviderType) { + Coin98ProviderType[Coin98ProviderType["EVM"] = 1] = "EVM"; + Coin98ProviderType[Coin98ProviderType["Solana"] = 2] = "Solana"; + Coin98ProviderType[Coin98ProviderType["Near"] = 3] = "Near"; +})(Coin98ProviderType || (Coin98ProviderType = {})); +class Coin98Provider extends _Base__WEBPACK_IMPORTED_MODULE_0__/* .InjectedProvider */ .E { + async request(data) { + // coin98 cannot handle it correctly (test with coin98 v6.0.3) + if (data.method === 'eth_chainId') { + return this.getProperty('chainId'); + } + return super.request(data); + } + constructor(type){ + const pathnameMap = { + [Coin98ProviderType.EVM]: 'coin98.provider', + [Coin98ProviderType.Near]: 'coin98.near', + [Coin98ProviderType.Solana]: 'coin98.sol' + }; + super(pathnameMap[type]); + this.type = type; + } } -/** Interact with the current ethereum provider */ const bridgedEthereumProvider = { - request, - send, - sendAsync: send, - on (event, callback) { - if (!bridgedEthereum.has(event)) { - bridgedEthereum.set(event, new Set()); - (0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .sendEvent */ .qP)('ethBridgeRequestListen', event); - } - const map = bridgedEthereum.get(event); - map.add(callback); - return ()=>void map.delete(callback) - ; - }, - getProperty (key) { - return (0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .createPromise */ .wv)((id)=>(0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .sendEvent */ .qP)('ethBridgePrimitiveAccess', id, key) - ); - }, - untilAvailable () { - return (0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .createPromise */ .wv)((id)=>(0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .sendEvent */ .qP)('untilEthBridgeOnline', id) + + +/***/ }), + +/***/ 42362: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "W": () => (/* binding */ MathWalletProvider) +/* harmony export */ }); +/* harmony import */ var _Base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(47361); + +class MathWalletProvider extends _Base__WEBPACK_IMPORTED_MODULE_0__/* .InjectedProvider */ .E { + async untilAvailable() { + await super.untilAvailable(()=>super.getProperty('isMathWallet') ); } -}; -const bridgedEthereum = new Map(); -/** @internal */ function onEthEvent(event, data) { - for (const f of bridgedEthereum.get(event) || []){ - try { - Reflect.apply(f, null, data); - } catch {} + constructor(){ + super('ethereum'); } - return; } /***/ }), -/***/ 63050: +/***/ 24142: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "C": () => (/* binding */ onSolanaEvent), -/* harmony export */ "i": () => (/* binding */ bridgedSolanaProvider) +/* harmony export */ "Y": () => (/* binding */ MetaMaskProvider) /* harmony export */ }); -/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7474); +/* harmony import */ var _Base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(47361); -function request(data) { - return (0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .createPromise */ .wv)((id)=>(0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .sendEvent */ .qP)('solanaBridgeSendRequest', id, data) - ); +class MetaMaskProvider extends _Base__WEBPACK_IMPORTED_MODULE_0__/* .InjectedProvider */ .E { + async untilAvailable() { + await super.untilAvailable(()=>super.getProperty('isMetaMask') + ); + } + constructor(){ + super('ethereum'); + } } -function send(payload, callback) { - (0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .createPromise */ .wv)((id)=>(0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .sendEvent */ .qP)('solanaBridgeSendRequest', id, { - method: payload.method, - params: payload.params - }) - ).then((value)=>{ - callback(null, { - jsonrpc: '2.0', - id: payload.id, - result: value - }); - }, (error)=>{ - if (error instanceof Error) callback(error); - }); + + +/***/ }), + +/***/ 34240: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "p": () => (/* binding */ PhantomProvider) +/* harmony export */ }); +/* harmony import */ var _Base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(47361); + +class PhantomProvider extends _Base__WEBPACK_IMPORTED_MODULE_0__/* .InjectedProvider */ .E { + constructor(){ + super('phantom.solana'); + } } -let isConnected = false; -/** Interact with the current solana provider */ const bridgedSolanaProvider = { - connect (opts) { - return (0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .createPromise */ .wv)((id)=>(0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .sendEvent */ .qP)('solanaBridgeExecute', 'solana.connect', id, opts) - ); - }, - request, - send, - sendAsync: send, - on (event, callback) { - if (!bridgedSolana.has(event)) { - bridgedSolana.set(event, new Set()); - (0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .sendEvent */ .qP)('solanaBridgeRequestListen', event); - } - const map = bridgedSolana.get(event); - map.add(callback); - return ()=>void map.delete(callback) - ; - }, - getProperty (key) { - return (0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .createPromise */ .wv)((id)=>(0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .sendEvent */ .qP)('solanaBridgePrimitiveAccess', id, key) - ); - }, - isConnected: isConnected, - untilAvailable () { - return (0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .createPromise */ .wv)((id)=>(0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .sendEvent */ .qP)('untilSolanaBridgeOnline', id) - ); + + +/***/ }), + +/***/ 14732: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "B": () => (/* binding */ SolflareProvider) +/* harmony export */ }); +/* harmony import */ var _Base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(47361); + +class SolflareProvider extends _Base__WEBPACK_IMPORTED_MODULE_0__/* .InjectedProvider */ .E { + async connect(options) { + await super.connect(options); + const publicKey = await super.getProperty('publicKey'); + return { + publicKey + }; } -}; -async function watchConnectStatus() { - const connected = await bridgedSolanaProvider.getProperty('isConnected'); - if (connected !== undefined) { - isConnected = connected; + constructor(){ + super('solflare'); } - bridgedSolanaProvider.on('connected', ()=>{ - isConnected = true; - }); - bridgedSolanaProvider.on('disconnect', ()=>{ - isConnected = false; - }); } -watchConnectStatus(); -const bridgedSolana = new Map(); -/** @internal */ function onSolanaEvent(event, data) { - for (const f of bridgedSolana.get(event) || []){ - try { - Reflect.apply(f, null, data); - } catch {} + + +/***/ }), + +/***/ 36859: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "J": () => (/* binding */ WalletLinkProvider) +/* harmony export */ }); +/* harmony import */ var _Base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(47361); +/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(28383); + + +class WalletLinkProvider extends _Base__WEBPACK_IMPORTED_MODULE_0__/* .InjectedProvider */ .E { + connect(options) { + return (0,_utils__WEBPACK_IMPORTED_MODULE_1__/* .createPromise */ .wv)((id)=>(0,_utils__WEBPACK_IMPORTED_MODULE_1__/* .sendEvent */ .qP)('web3BridgeExecute', [ + this.pathname, + 'enable' + ].join('.'), id, options) + ); + } + constructor(){ + super('walletLinkExtension'); } - return; } /***/ }), -/***/ 7474: +/***/ 28383: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; @@ -22371,7 +22236,7 @@ const bridgedSolana = new Map(); /* harmony export */ "qP": () => (/* binding */ sendEvent), /* harmony export */ "wv": () => (/* binding */ createPromise) /* harmony export */ }); -/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(55574); +/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(43906); function sendEvent(name, ...params) { document.dispatchEvent(new CustomEvent(_shared__WEBPACK_IMPORTED_MODULE_0__/* .CustomEventId */ .OV, { @@ -22410,62 +22275,105 @@ function rejectPromise(id2, data) { /***/ }), -/***/ 55574: +/***/ 29130: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "Nu": () => (/* binding */ encodeEvent), -/* harmony export */ "OV": () => (/* binding */ CustomEventId), -/* harmony export */ "Vu": () => (/* binding */ decodeEvent) +/* harmony export */ "q": () => (/* binding */ MaskMessages) /* harmony export */ }); -const CustomEventId = 'c8a6c18e-f6a3-472a-adf3-5335deb80db6'; -const { parse , stringify } = JSON; -const { isArray } = Array; -function encodeEvent(key, args) { - return stringify([ - key, - args - ]); -} -function decodeEvent(data) { - const result = parse(data); - // Do not throw new Error cause it requires a global lookup. - // eslint-disable-next-line - if (!isEventItemBeforeSerialization(result)) throw null; - return result; -} -function isEventItemBeforeSerialization(data) { - if (!isArray(data)) return false; - if (data.length !== 2) return false; - if (typeof data[0] !== 'string') return false; - if (!isArray(data[1])) return false; - return true; -} +/* harmony import */ var _dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(88967); +/* harmony import */ var _dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(44451); + + +const MaskMessages = new _dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_1__.WebExtensionMessage({ + domain: 'mask' +}); +MaskMessages.serialization = _masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .serializer */ .GM; +Object.assign(globalThis, { + MaskMessages +}); /***/ }), -/***/ 47481: +/***/ 76536: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "a": () => (/* binding */ i18n) -/* harmony export */ }); -/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(78144); -// Deprecates. Prefer useMaskI18n() -const i18n = { - t: (key, options)=>{ - return _masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .i18NextInstance.t */ .BV.t(key, options); +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "_": () => (/* binding */ hasNativeAPI), + "Nz": () => (/* binding */ nativeAPI) +}); + +// UNUSED EXPORTS: sharedNativeAPI + +// EXTERNAL MODULE: ../../node_modules/.pnpm/async-call-rpc@6.1.0/node_modules/async-call-rpc/out/full.mjs +var full = __webpack_require__(17889); +;// CONCATENATED MODULE: ./shared/native-rpc/iOS.channel.ts +// cspell:disable-next-line +const key = 'maskbookjsonrpc'; +class iOSWebkitChannel { + on(cb) { + this.listener.add(cb); + return ()=>void this.listener.delete(cb) + ; } -}; + send(data) { + globalThis.webkit.messageHandlers[key].postMessage(data); + } + constructor(){ + this.listener = new Set(); + document.addEventListener(key, (e)=>{ + const detail = e.detail; + for (const f of this.listener){ + try { + f(detail); + } catch {} + } + }); + } +} + +;// CONCATENATED MODULE: ./shared/native-rpc/index.ts + + + +// This module won't be used in Web. Let it not effecting HMR. +if (false) {} +const hasNativeAPI = "app" === 'app'; +let nativeAPI = undefined; +let sharedNativeAPI = (/* unused pure expression or super */ null && (undefined)); +if (true) { + const options = { + key: 'native', + parameterStructures: 'by-name' + }; + if (true) { + const api = sharedNativeAPI = (0,full/* AsyncCall */.LE)(/** + * Typescript will not add the file to the project dependency tree + * but webpack will do constant folding + */ // @ts-ignore + // eslint-disable-next-line no-useless-concat + __webpack_require__.e(/* import() */ 5979).then(__webpack_require__.bind(__webpack_require__, 15979)).then((x)=>x.MaskNetworkAPI + ), { + ...options, + channel: new iOSWebkitChannel() + }); + nativeAPI = { + type: 'iOS', + api + }; + } else {} +} /***/ }), -/***/ 81514: +/***/ 4597: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; @@ -22475,24 +22383,20 @@ __webpack_require__.d(__webpack_exports__, { "Y": () => (/* binding */ MaskUIRoot) }); -// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.0.0/node_modules/react/jsx-runtime.js -var jsx_runtime = __webpack_require__(71999); -// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.0.0/node_modules/react/index.js -var react = __webpack_require__(86248); -// EXTERNAL MODULE: ../web3-shared/evm/context/index.tsx -var context = __webpack_require__(24790); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+styled-engine@5.6.1_840a430ee8e73823706c6e9dc692d93a/node_modules/@mui/styled-engine/StyledEngineProvider/StyledEngineProvider.js -var StyledEngineProvider = __webpack_require__(82978); -// EXTERNAL MODULE: ../plugin-infra/src/entry-web3.ts -var entry_web3 = __webpack_require__(67071); -// EXTERNAL MODULE: ../shared/src/index.ts -var src = __webpack_require__(2666); +// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.1.0/node_modules/react/jsx-runtime.js +var jsx_runtime = __webpack_require__(35667); +// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.1.0/node_modules/react/index.js +var react = __webpack_require__(58757); +// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+styled-engine@5.8.0_t4r7icl7x3elshpaxc4xm7jrem/node_modules/@mui/styled-engine/StyledEngineProvider/StyledEngineProvider.js +var StyledEngineProvider = __webpack_require__(45495); +// EXTERNAL MODULE: ../plugin-infra/src/entry-web3.ts + 1 modules +var entry_web3 = __webpack_require__(50719); +// EXTERNAL MODULE: ../shared/src/index.ts + 2 modules +var src = __webpack_require__(77818); // EXTERNAL MODULE: ../shared-base-ui/src/index.ts -var shared_base_ui_src = __webpack_require__(53242); -// EXTERNAL MODULE: ../shared-base/src/index.ts + 1 modules -var shared_base_src = __webpack_require__(78144); -// EXTERNAL MODULE: ./src/web3/context.ts -var web3_context = __webpack_require__(71172); +var shared_base_ui_src = __webpack_require__(80226); +// EXTERNAL MODULE: ../shared-base/src/index.ts + 2 modules +var shared_base_src = __webpack_require__(44451); ;// CONCATENATED MODULE: ./src/utils/BuildInfoMarkdown.ts const buildInfoMarkdown = `## Build info - Version: ${globalThis.browser?.runtime?.getManifest?.()?.version ?? "v2.5.0"?.slice(1)} @@ -22500,28 +22404,28 @@ const buildInfoMarkdown = `## Build info - target: ${"safari"} - build: ${"stable"} - architecture: ${"app"} -- BUILD_DATE: ${"2022-06-01T07:52:48.068Z"} -- VERSION: ${"v1.29.12-2348-g181e22679"} +- BUILD_DATE: ${"2022-06-27T08:57:48.276Z"} +- VERSION: ${"v1.29.12-2649-g196eec807-dirty"} ## Git (${ true ? '*' : 0}): -${"181e22679"} (${"feat/mobile"}) on tag "${"v2.5.0"}" -${"git@github.com:DimensionDev/Maskbook.git"?.toLowerCase()?.includes('DimensionDev') ? '' : "git@github.com:DimensionDev/Maskbook.git"}`; +${"196eec807"} (${"feat/migrationToMobile"}) on tag "${"v2.5.0"}" +${"https://github.com/DimensionDev/Maskbook.git"?.toLowerCase()?.includes('DimensionDev') ? '' : "https://github.com/DimensionDev/Maskbook.git"}`; // EXTERNAL MODULE: ./src/social-network/index.ts -var social_network = __webpack_require__(3747); +var social_network = __webpack_require__(82192); // EXTERNAL MODULE: ./src/social-network-adaptor/facebook.com/base.ts -var base = __webpack_require__(1650); +var base = __webpack_require__(5492); // EXTERNAL MODULE: ./src/settings/settings.ts -var settings = __webpack_require__(80917); -// EXTERNAL MODULE: ./src/plugins/EVM/UI/Web3State/index.ts + 4 modules -var Web3State = __webpack_require__(99825); -// EXTERNAL MODULE: ./src/utils/index.ts + 7 modules -var utils = __webpack_require__(6955); +var settings = __webpack_require__(5903); +// EXTERNAL MODULE: ./src/utils/index.ts + 4 modules +var utils = __webpack_require__(93455); // EXTERNAL MODULE: ./src/social-network-adaptor/twitter.com/base.ts -var twitter_com_base = __webpack_require__(37732); +var twitter_com_base = __webpack_require__(72005); // EXTERNAL MODULE: ../theme/src/entry.ts -var entry = __webpack_require__(30232); +var entry = __webpack_require__(31939); +// EXTERNAL MODULE: ../web3-shared/base/src/index.ts + 1 modules +var base_src = __webpack_require__(67938); ;// CONCATENATED MODULE: ./src/UIRoot.tsx @@ -22538,11 +22442,10 @@ var entry = __webpack_require__(30232); - - const identity = (jsx)=>jsx ; function compose(init, ...f) { + // eslint-disable-next-line unicorn/no-array-reduce return f.reduceRight((prev, curr)=>curr(prev) , /*#__PURE__*/ (0,jsx_runtime.jsx)(jsx_runtime.Fragment, { children: init @@ -22552,14 +22455,12 @@ function useMaskIconPalette(theme) { const backgroundColor = (0,utils/* getBackgroundColor */.dF)(document.body); const isDark = theme.palette.mode === 'dark'; const isDarker = backgroundColor === 'rgb(0,0,0)'; - return isDark ? !isDarker && (0,twitter_com_base/* isTwitter */.L3)(social_network/* activatedSocialNetworkUI */.LM) ? 'dim' : 'dark' : 'light'; + return isDark ? !isDarker && (0,twitter_com_base/* isTwitter */.L)(social_network/* activatedSocialNetworkUI */.LM) ? 'dim' : 'dark' : 'light'; } function MaskUIRoot({ children , kind , useTheme }) { - const pluginID = (0,shared_base_ui_src/* useValueRef */.E)(settings/* pluginIDSettings */.tR); + const site = (0,shared_base_src/* getSiteType */.sv)(); + const pluginIDs = (0,shared_base_ui_src/* useValueRef */.E)(settings/* pluginIDSettings */.tR); const PluginsWeb3State = (0,entry_web3/* useAllPluginsWeb3State */.Ne)(); - // TODO: - // migrate EVM plugin - (0,Web3State/* fixWeb3State */.v)(PluginsWeb3State[entry_web3/* NetworkPluginID.PLUGIN_EVM */.FF.PLUGIN_EVM], web3_context/* Web3Context */.Sc); return compose(children, (jsx)=>/*#__PURE__*/ (0,jsx_runtime.jsx)(react.Suspense, { fallback: null, children: jsx @@ -22571,13 +22472,10 @@ function MaskUIRoot({ children , kind , useTheme }) { , (jsx)=>/*#__PURE__*/ (0,jsx_runtime.jsx)(shared_base_ui_src/* ErrorBoundary */.SV, { children: jsx }) - , (jsx)=>/*#__PURE__*/ (0,jsx_runtime.jsx)(context/* Web3Provider */.Qg, { - value: web3_context/* Web3Context */.Sc, - children: /*#__PURE__*/ (0,jsx_runtime.jsx)(entry_web3/* PluginsWeb3ContextProvider */.$8, { - pluginID: pluginID, - value: PluginsWeb3State, - children: jsx - }) + , (jsx)=>/*#__PURE__*/ (0,jsx_runtime.jsx)(entry_web3/* PluginsWeb3ContextProvider */.$8, { + pluginID: site ? pluginIDs[site] : base_src/* NetworkPluginID.PLUGIN_EVM */.FF.PLUGIN_EVM, + value: PluginsWeb3State, + children: jsx }) , (jsx)=>/*#__PURE__*/ (0,jsx_runtime.jsx)(src/* I18NextProviderHMR */.qy, { i18n: shared_base_src/* i18NextInstance */.BV, @@ -22589,7 +22487,7 @@ function MaskUIRoot({ children , kind , useTheme }) { }) : identity, (jsx)=>/*#__PURE__*/ (0,jsx_runtime.jsx)(entry/* MaskThemeProvider */.R_, { useMaskIconPalette: useMaskIconPalette, - CustomSnackbarOffsetY: (0,base/* isFacebook */.DF)(social_network/* activatedSocialNetworkUI */.LM) ? 80 : undefined, + CustomSnackbarOffsetY: (0,base/* isFacebook */.D)(social_network/* activatedSocialNetworkUI */.LM) ? 80 : undefined, useTheme: useTheme, children: jsx }) @@ -22602,7 +22500,7 @@ function MaskUIRoot({ children , kind , useTheme }) { /***/ }), -/***/ 83463: +/***/ 72288: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; @@ -22611,21 +22509,21 @@ function MaskUIRoot({ children , kind , useTheme }) { /* harmony export */ "ZP": () => (/* binding */ ActionButton), /* harmony export */ "Zc": () => (/* binding */ ActionButtonPromise) /* harmony export */ }); -/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(71999); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(86248); -/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(98354); -/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(37731); -/* harmony import */ var _masknet_theme__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(30232); -/* harmony import */ var _mui_icons_material_Check__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(69315); -/* harmony import */ var _mui_icons_material_Error__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(53852); -/* harmony import */ var _mui_material_colors__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(67020); -/* harmony import */ var _mui_material_colors__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(66764); +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35667); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(58757); +/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(69314); +/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(85792); +/* harmony import */ var _masknet_theme__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(31939); +/* harmony import */ var _mui_icons_material_Check__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(28937); +/* harmony import */ var _mui_icons_material_Error__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(72388); +/* harmony import */ var _mui_material_colors__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(92017); +/* harmony import */ var _mui_material_colors__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(15746); /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(83849); /* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(30688); -/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(18356); -/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(93618); -/* harmony import */ var _utils_theme__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(92121); +/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(32588); +/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(86698); +/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(40661); +/* harmony import */ var _utils_theme__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(17784); @@ -22787,1129 +22685,981 @@ const useStyles = (0,_masknet_theme__WEBPACK_IMPORTED_MODULE_2__/* .makeStyles * /***/ }), -/***/ 37857: +/***/ 22180: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "u": () => (/* binding */ base) -/* harmony export */ }); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12); - -const base = { - ID: _constants__WEBPACK_IMPORTED_MODULE_0__/* .ARTBLOCKS_PLUGIN_ID */ .g2, - name: { - fallback: _constants__WEBPACK_IMPORTED_MODULE_0__/* .PLUGIN_NAME */ .EW - }, - description: { - fallback: 'Artblocks allow you to pick a style that you like, pay for the work, and a randomly generated version of the content is created by an algorithm and sent to your Ethereum account.' - }, - publisher: { - name: { - fallback: 'ArtBlocks' - }, - link: 'https://www.artblocks.io/' - }, - enableRequirement: { - architecture: { - app: false, - web: true - }, - networks: { - type: 'opt-out', - networks: {} - }, - target: 'stable' - }, - contribution: { - postContent: new Set([ - _constants__WEBPACK_IMPORTED_MODULE_0__/* .URL_PATTERN */ .lu - ]) - } -}; - - -/***/ }), -/***/ 12: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "R": () => (/* binding */ createPluginHost), + "y": () => (/* binding */ createSharedContext) +}); -"use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "EW": () => (/* binding */ PLUGIN_NAME), -/* harmony export */ "GG": () => (/* binding */ ArtBlocksRopstenUrl), -/* harmony export */ "K0": () => (/* binding */ artBlocksHostnames), -/* harmony export */ "PO": () => (/* binding */ ArtBlocksRopstenSubgraphLink), -/* harmony export */ "ZJ": () => (/* binding */ artBlocksPathnameRegexMatcher), -/* harmony export */ "ZW": () => (/* binding */ ArtBlocksRopstenHostImageUrl), -/* harmony export */ "bD": () => (/* binding */ ArtBlocksMainnetUrl), -/* harmony export */ "ey": () => (/* binding */ ArtBlocksMainnetSubgraphLink), -/* harmony export */ "g2": () => (/* binding */ ARTBLOCKS_PLUGIN_ID), -/* harmony export */ "iQ": () => (/* binding */ ArtBlocksLogoUrl), -/* harmony export */ "lu": () => (/* binding */ URL_PATTERN), -/* harmony export */ "xE": () => (/* binding */ ArtBlocksMainnetHostImageUrl) -/* harmony export */ }); -/* unused harmony exports TESTNET_HOSTNAME, MAINNET_HOSTNAME, ArtBlocksMainnetLiveUrl, ArtBlocksRopstenLiveUrl */ -const ARTBLOCKS_PLUGIN_ID = 'io.artblocks'; -const PLUGIN_NAME = 'ArtBlocks'; -const TESTNET_HOSTNAME = 'artist-staging.artblocks.io'; -const MAINNET_HOSTNAME = 'www.artblocks.io'; -const artBlocksHostnames = [ - TESTNET_HOSTNAME, - MAINNET_HOSTNAME -]; -const artBlocksPathnameRegexMatcher = /^\/project\/(\d+)/; -const ArtBlocksLogoUrl = 'https://www.artblocks.io/_next/image?url=%2Fsquig.png&w=48&q=75'; -const ArtBlocksMainnetSubgraphLink = 'https://api.thegraph.com/subgraphs/name/artblocks/art-blocks'; -const ArtBlocksRopstenSubgraphLink = 'https://api.thegraph.com/subgraphs/name/artblocks/art-blocks-artist-staging'; -const ArtBlocksRopstenUrl = 'https://artist-staging.artblocks.io'; -const ArtBlocksMainnetUrl = 'https://artblocks.io'; -const URL_PATTERN = /https:\/\/(www.artblocks.io|artist-staging.artblocks.io)\/project\/(\d+)/; -const ArtBlocksMainnetHostImageUrl = 'https://artblocks-mainnet.s3.amazonaws.com'; -const ArtBlocksRopstenHostImageUrl = 'https://artblocks-artists-staging.s3.amazonaws.com'; -const ArtBlocksMainnetLiveUrl = 'https://generator.artblocks.io'; -const ArtBlocksRopstenLiveUrl = 'https://generator-staging.artblocks.io'; +// EXTERNAL MODULE: ../plugins/example/src/index.ts +var src = __webpack_require__(55103); +// EXTERNAL MODULE: ../plugin-infra/src/entry.ts +var entry = __webpack_require__(70226); +// EXTERNAL MODULE: ../plugins/Debugger/src/base.ts + 7 modules +var base = __webpack_require__(51217); +// EXTERNAL MODULE: ../plugins/Debugger/src/constants.ts +var constants = __webpack_require__(38014); +;// CONCATENATED MODULE: ../plugins/Debugger/src/index.ts -/***/ }), -/***/ 28165: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { +(0,entry/* registerPlugin */.fo)({ + ...base/* base */.u, + SNSAdaptor: { + load: ()=>Promise.all(/* import() */[__webpack_require__.e(5638), __webpack_require__.e(9356)]).then(__webpack_require__.bind(__webpack_require__, 79356)) + , + hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 + } +}); -"use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "u": () => (/* binding */ base) -/* harmony export */ }); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(95095); -/* harmony import */ var _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(79936); +// EXTERNAL MODULE: ../plugins/Flow/src/base.ts + 7 modules +var src_base = __webpack_require__(57670); +;// CONCATENATED MODULE: ../plugins/Flow/src/index.ts -const base = { - ID: _constants__WEBPACK_IMPORTED_MODULE_0__/* .PLUGIN_ID */ .Uu, - name: { - fallback: 'Avatar' - }, - description: { - fallback: 'NFT Avatar on Twitter.' +(0,entry/* registerPlugin */.fo)({ + ...src_base/* base */.u, + SNSAdaptor: { + load: ()=>Promise.all(/* import() */[__webpack_require__.e(7879), __webpack_require__.e(6242)]).then(__webpack_require__.bind(__webpack_require__, 46242)) + , + hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 }, - publisher: { - name: { - fallback: 'Mask Network' - }, - link: 'https://mask.io/' + Dashboard: { + load: ()=>Promise.all(/* import() */[__webpack_require__.e(7879), __webpack_require__.e(9016)]).then(__webpack_require__.bind(__webpack_require__, 29016)) + , + hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 }, - enableRequirement: { - architecture: { - app: true, - web: true - }, - networks: { - type: 'opt-in', - networks: { - [_masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_1__/* .CurrentSNSNetwork.Twitter */ .mv.Twitter]: true - } - }, - target: 'stable' + Worker: { + load: ()=>__webpack_require__.e(/* import() */ 7309).then(__webpack_require__.bind(__webpack_require__, 57309)) + , + hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 } -}; - +}); -/***/ }), +// EXTERNAL MODULE: ../plugins/FileService/src/index.ts +var FileService_src = __webpack_require__(787); +// EXTERNAL MODULE: ../plugins/RSS3/src/base.ts + 7 modules +var RSS3_src_base = __webpack_require__(24829); +// EXTERNAL MODULE: ../plugins/RSS3/src/constants.ts +var src_constants = __webpack_require__(35837); +;// CONCATENATED MODULE: ../plugins/RSS3/src/index.ts -/***/ 38704: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -"use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "u": () => (/* binding */ base) -/* harmony export */ }); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(157); -const base = { - ID: _constants__WEBPACK_IMPORTED_MODULE_0__/* .PLUGIN_ID */ .Uu, - name: { - fallback: _constants__WEBPACK_IMPORTED_MODULE_0__/* .PLUGIN_NAME */ .EW - }, - description: { - fallback: _constants__WEBPACK_IMPORTED_MODULE_0__/* .PLUGIN_DESCRIPTION */ .PP - }, - publisher: { - name: { - fallback: 'Mask Network' - }, - link: 'https://mask.io/' - }, - enableRequirement: { - architecture: { - app: true, - web: true - }, - networks: { - type: 'opt-out', - networks: {} - }, - target: 'stable' +(0,entry/* registerPlugin */.fo)({ + ...RSS3_src_base/* base */.u, + SNSAdaptor: { + load: ()=>Promise.all(/* import() */[__webpack_require__.e(7871), __webpack_require__.e(3294), __webpack_require__.e(5020)]).then(__webpack_require__.bind(__webpack_require__, 75020)) + , + hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 }, - contribution: { - postContent: new Set([ - /opensea.io\/assets\/(0x[\dA-Fa-f]{40})\/(\d+)/, - /rarible.com\/token\/(0x[\dA-Fa-f]{40}):(\d+)/, - /zora.co\/collections\/(0x[\dA-Fa-f]{40})\/\d+$/, - ]) + Worker: { + load: ()=>__webpack_require__.e(/* import() */ 4413).then(__webpack_require__.bind(__webpack_require__, 24413)) + , + hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 } -}; +}); +// EXTERNAL MODULE: ../plugins/DAO/src/base.ts + 7 modules +var DAO_src_base = __webpack_require__(53439); +// EXTERNAL MODULE: ../plugins/DAO/src/constants.ts +var DAO_src_constants = __webpack_require__(71849); +;// CONCATENATED MODULE: ../plugins/DAO/src/index.ts -/***/ }), -/***/ 157: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -"use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "$u": () => (/* binding */ zoraPathnameRegexMatcher), -/* harmony export */ "Cn": () => (/* binding */ NullAddress), -/* harmony export */ "E8": () => (/* binding */ ReferrerAddress), -/* harmony export */ "EW": () => (/* binding */ PLUGIN_NAME), -/* harmony export */ "Kl": () => (/* binding */ OpenSeaMainnetURL), -/* harmony export */ "Kr": () => (/* binding */ openseaHostnames), -/* harmony export */ "Ky": () => (/* binding */ OpenSeaTestnetURL), -/* harmony export */ "PP": () => (/* binding */ PLUGIN_DESCRIPTION), -/* harmony export */ "Pq": () => (/* binding */ openseaPathnameRegexMatcher), -/* harmony export */ "QG": () => (/* binding */ raribleHostnames), -/* harmony export */ "SP": () => (/* binding */ OpenSeaAPI_Key), -/* harmony export */ "Uu": () => (/* binding */ PLUGIN_ID), -/* harmony export */ "Zz": () => (/* binding */ RaribleUserURL), -/* harmony export */ "g5": () => (/* binding */ RaribleRopstenUserURL), -/* harmony export */ "i8": () => (/* binding */ RaribleRinkebyUserURL), -/* harmony export */ "lD": () => (/* binding */ rariblePathnameRegexMatcher), -/* harmony export */ "um": () => (/* binding */ PLUGIN_META_KEY), -/* harmony export */ "zR": () => (/* binding */ zoraHostnames) -/* harmony export */ }); -/* harmony import */ var _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(79936); +(0,entry/* registerPlugin */.fo)({ + ...DAO_src_base/* base */.u, + SNSAdaptor: { + load: ()=>__webpack_require__.e(/* import() */ 9047).then(__webpack_require__.bind(__webpack_require__, 49047)) + , + hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 + } +}); -const PLUGIN_NAME = 'Collectibles'; -const PLUGIN_DESCRIPTION = 'An NFT collectible viewer.'; -const PLUGIN_ID = _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__/* .PluginId.Collectible */ .je.Collectible; -const PLUGIN_META_KEY = `${_masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__/* .PluginId.Collectible */ .je.Collectible}:1`; -const openseaHostnames = [ - 'opensea.io', - 'testnets.opensea.io' -]; -const openseaPathnameRegexMatcher = /^\/assets\/(0x[\dA-Fa-f]{40})\/(\d+)/; -const raribleHostnames = [ - 'rarible.com', - 'app.rarible.com', - 'ropsten.rarible.com' -]; -const rariblePathnameRegexMatcher = /^\/token\/(0x[\dA-Fa-f]{40}):(\d+)/; -const zoraHostnames = [ - 'zora.co' -]; -const zoraPathnameRegexMatcher = /^\/collections\/(0x[\dA-Fa-f]{40})\/(\d+)$/; -const OpenSeaAPI_Key = 'c38fe2446ee34f919436c32db480a2e3'; -const NullAddress = 'NullAddress'; -const ReferrerAddress = ''; -const OpenSeaMainnetURL = 'https://opensea.io'; -const OpenSeaTestnetURL = 'https://testnets.opensea.io'; -const RaribleUserURL = 'https://rarible.com/user/'; -const RaribleRopstenUserURL = 'https://ropsten.rarible.com/user/'; -const RaribleRinkebyUserURL = 'https://rinkeby.rarible.com/user/'; +// EXTERNAL MODULE: ../plugins/Solana/src/base.ts + 7 modules +var Solana_src_base = __webpack_require__(25064); +;// CONCATENATED MODULE: ../plugins/Solana/src/index.ts -/***/ }), +(0,entry/* registerPlugin */.fo)({ + ...Solana_src_base/* base */.u, + SNSAdaptor: { + load: ()=>Promise.all(/* import() */[__webpack_require__.e(5464), __webpack_require__.e(9278), __webpack_require__.e(7425), __webpack_require__.e(686), __webpack_require__.e(237), __webpack_require__.e(1432), __webpack_require__.e(9834), __webpack_require__.e(9831), __webpack_require__.e(7121), __webpack_require__.e(9223), __webpack_require__.e(4520), __webpack_require__.e(7798), __webpack_require__.e(6873)]).then(__webpack_require__.bind(__webpack_require__, 76873)) + , + hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 + }, + Dashboard: { + load: ()=>Promise.all(/* import() */[__webpack_require__.e(5464), __webpack_require__.e(9278), __webpack_require__.e(7425), __webpack_require__.e(686), __webpack_require__.e(237), __webpack_require__.e(1432), __webpack_require__.e(9834), __webpack_require__.e(9831), __webpack_require__.e(7121), __webpack_require__.e(9223), __webpack_require__.e(4520), __webpack_require__.e(7798), __webpack_require__.e(3016)]).then(__webpack_require__.bind(__webpack_require__, 83016)) + , + hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 + }, + Worker: { + load: ()=>__webpack_require__.e(/* import() */ 7379).then(__webpack_require__.bind(__webpack_require__, 77379)) + , + hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 + } +}); -/***/ 2189: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { +// EXTERNAL MODULE: ../plugins/CyberConnect/src/base.tsx +var CyberConnect_src_base = __webpack_require__(51024); +;// CONCATENATED MODULE: ../plugins/CyberConnect/src/index.ts -"use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "u": () => (/* binding */ base) -/* harmony export */ }); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(67288); -const base = { - ID: _constants__WEBPACK_IMPORTED_MODULE_0__/* .PLUGIN_ID */ .Uu, - name: { - fallback: _constants__WEBPACK_IMPORTED_MODULE_0__/* .PLUGIN_NAME */ .EW - }, - description: { - fallback: _constants__WEBPACK_IMPORTED_MODULE_0__/* .PLUGIN_DESCRIPTION */ .PP - }, - publisher: { - name: { - fallback: 'Mask Network' - }, - link: 'https://mask.io/' +(0,entry/* registerPlugin */.fo)({ + ...CyberConnect_src_base/* base */.u, + SNSAdaptor: { + load: ()=>Promise.all(/* import() */[__webpack_require__.e(5638), __webpack_require__.e(8672), __webpack_require__.e(6739), __webpack_require__.e(5464), __webpack_require__.e(3758), __webpack_require__.e(444), __webpack_require__.e(1851), __webpack_require__.e(4227), __webpack_require__.e(7822), __webpack_require__.e(7856), __webpack_require__.e(3453), __webpack_require__.e(400), __webpack_require__.e(3742), __webpack_require__.e(9271), __webpack_require__.e(2253), __webpack_require__.e(5255), __webpack_require__.e(5334), __webpack_require__.e(5393), __webpack_require__.e(8828), __webpack_require__.e(8857), __webpack_require__.e(7318), __webpack_require__.e(9706), __webpack_require__.e(2297), __webpack_require__.e(6124), __webpack_require__.e(2917), __webpack_require__.e(4270), __webpack_require__.e(6191), __webpack_require__.e(97), __webpack_require__.e(1822), __webpack_require__.e(5148), __webpack_require__.e(1651)]).then(__webpack_require__.bind(__webpack_require__, 21181)) + , + hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 }, - enableRequirement: { - architecture: { - app: true, - web: true - }, - networks: { - type: 'opt-out', - networks: {} - }, - target: 'stable' + Worker: { + load: ()=>__webpack_require__.e(/* import() */ 3245).then(__webpack_require__.bind(__webpack_require__, 73245)) + , + hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 } -}; +}); +// EXTERNAL MODULE: ../plugins/GoPlusSecurity/src/base.ts + 7 modules +var GoPlusSecurity_src_base = __webpack_require__(53110); +// EXTERNAL MODULE: ../plugins/GoPlusSecurity/src/constants.ts +var GoPlusSecurity_src_constants = __webpack_require__(67606); +;// CONCATENATED MODULE: ../plugins/GoPlusSecurity/src/index.ts -/***/ }), -/***/ 67288: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -"use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "EW": () => (/* binding */ PLUGIN_NAME), -/* harmony export */ "PP": () => (/* binding */ PLUGIN_DESCRIPTION), -/* harmony export */ "Uu": () => (/* binding */ PLUGIN_ID), -/* harmony export */ "aM": () => (/* binding */ testNetwork), -/* harmony export */ "f3": () => (/* binding */ mainNetwork), -/* harmony export */ "oO": () => (/* binding */ prefixPath) -/* harmony export */ }); -/* harmony import */ var _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(79936); -/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(65506); -/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(35827); +(0,entry/* registerPlugin */.fo)({ + ...GoPlusSecurity_src_base/* base */.u, + SNSAdaptor: { + load: ()=>Promise.all(/* import() */[__webpack_require__.e(5638), __webpack_require__.e(7871), __webpack_require__.e(405), __webpack_require__.e(1290)]).then(__webpack_require__.bind(__webpack_require__, 82251)) + , + hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 + } +}); +// EXTERNAL MODULE: ../plugins/CrossChainBridge/src/base.ts + 7 modules +var CrossChainBridge_src_base = __webpack_require__(82725); +// EXTERNAL MODULE: ../plugins/CrossChainBridge/src/constants.tsx + 1 modules +var CrossChainBridge_src_constants = __webpack_require__(97933); +;// CONCATENATED MODULE: ../plugins/CrossChainBridge/src/index.ts -const PLUGIN_NAME = 'CRYPTOART.AI'; -const PLUGIN_DESCRIPTION = 'The decentralized world of CryptoArt.'; -const PLUGIN_ID = _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__/* .PluginId.CryptoArtAI */ .je.CryptoArtAI; -const prefixPath = '/gallery/detail'; -const mainNetwork = { - contractAddress: '0x3AD503084f1bD8d15A7F5EbE7A038C064e1E3Fa1', - hostname: 'cryptoart.ai', - endpoint: 'https://api.cryptoart.ai', - paymentToken: { - type: 0, - chainId: _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Mainnet */ .a_.Mainnet, - address: _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ZERO_ADDRESS */ .r, - decimals: 18, - name: 'Ether', - symbol: 'ETH' - } -}; -const testNetwork = { - contractAddress: '0x54395e6c737734D3de29Fc62C10a3ed51eFA2E8A', - hostname: 'testweb.cryptoart.ai', - endpoint: 'https://apitest.cryptoart.ai', - paymentToken: { - type: 0, - chainId: _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Kovan */ .a_.Kovan, - address: _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ZERO_ADDRESS */ .r, - decimals: 18, - name: 'Kovan Ether', - symbol: 'KOV' + + +(0,entry/* registerPlugin */.fo)({ + ...CrossChainBridge_src_base/* base */.u, + SNSAdaptor: { + load: ()=>__webpack_require__.e(/* import() */ 2263).then(__webpack_require__.bind(__webpack_require__, 92263)) + , + hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 } -}; +}); +// EXTERNAL MODULE: ../plugins/Wallet/src/index.ts +var Wallet_src = __webpack_require__(10503); +;// CONCATENATED MODULE: ./src/plugins/Wallet/index.ts -/***/ }), -/***/ 99825: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { +(0,entry/* registerPlugin */.fo)({ + ...Wallet_src/* base */.ue, + SNSAdaptor: { + load: ()=>Promise.all(/* import() */[__webpack_require__.e(5638), __webpack_require__.e(2698), __webpack_require__.e(9759), __webpack_require__.e(7871), __webpack_require__.e(3294), __webpack_require__.e(8672), __webpack_require__.e(6230), __webpack_require__.e(2598), __webpack_require__.e(2261), __webpack_require__.e(8331), __webpack_require__.e(7597), __webpack_require__.e(3804), __webpack_require__.e(360), __webpack_require__.e(8876), __webpack_require__.e(104)]).then(__webpack_require__.bind(__webpack_require__, 20104)) + , + hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 + }, + Dashboard: { + load: ()=>Promise.all(/* import() */[__webpack_require__.e(5638), __webpack_require__.e(2698), __webpack_require__.e(9759), __webpack_require__.e(7871), __webpack_require__.e(3294), __webpack_require__.e(6230), __webpack_require__.e(2598), __webpack_require__.e(2261), __webpack_require__.e(8331), __webpack_require__.e(3804), __webpack_require__.e(8876), __webpack_require__.e(9503)]).then(__webpack_require__.bind(__webpack_require__, 39503)) + , + hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 + }, + Worker: { + load: ()=>Promise.all(/* import() */[__webpack_require__.e(6739), __webpack_require__.e(4544), __webpack_require__.e(1077), __webpack_require__.e(2943), __webpack_require__.e(8117), __webpack_require__.e(6045), __webpack_require__.e(6265), __webpack_require__.e(4859), __webpack_require__.e(1993), __webpack_require__.e(30), __webpack_require__.e(6685), __webpack_require__.e(3021)]).then(__webpack_require__.bind(__webpack_require__, 63021)) + , + hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 + } +}); -"use strict"; +// EXTERNAL MODULE: ../plugins/EVM/src/base.ts + 2 modules +var EVM_src_base = __webpack_require__(10760); +// EXTERNAL MODULE: ../plugins/EVM/src/state/index.ts + 58 modules +var state = __webpack_require__(36856); +;// CONCATENATED MODULE: ../plugins/EVM/src/index.ts -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - "v": () => (/* binding */ fixWeb3State) + +(0,entry/* registerPlugin */.fo)({ + ...EVM_src_base/* base */.u, + SNSAdaptor: { + load: ()=>__webpack_require__.e(/* import() */ 1409).then(__webpack_require__.bind(__webpack_require__, 31409)) + , + hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 + }, + Dashboard: { + load: ()=>__webpack_require__.e(/* import() */ 7492).then(__webpack_require__.bind(__webpack_require__, 67492)) + , + hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 + }, + Worker: { + load: ()=>__webpack_require__.e(/* import() */ 9482).then(__webpack_require__.bind(__webpack_require__, 69482)) + , + hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 + } }); -// EXTERNAL MODULE: ../../node_modules/.pnpm/ethjs-ens@2.0.1/node_modules/ethjs-ens/index.js -var ethjs_ens = __webpack_require__(8001); -var ethjs_ens_default = /*#__PURE__*/__webpack_require__.n(ethjs_ens); -// EXTERNAL MODULE: ../web3-shared/evm/types/index.ts -var types = __webpack_require__(65506); -// EXTERNAL MODULE: ../web3-shared/evm/utils/address.ts -var utils_address = __webpack_require__(2239); -// EXTERNAL MODULE: ../web3-shared/evm/utils/provider.ts -var provider = __webpack_require__(30083); -// EXTERNAL MODULE: ../web3-shared/evm/utils/chainDetailed.ts -var chainDetailed = __webpack_require__(80526); -// EXTERNAL MODULE: ../web3-shared/evm/utils/formatter.ts -var formatter = __webpack_require__(66394); -// EXTERNAL MODULE: ../web3-shared/evm/pipes/index.ts -var pipes = __webpack_require__(55678); -// EXTERNAL MODULE: ../web3-shared/evm/utils/domain.ts -var domain = __webpack_require__(86601); -// EXTERNAL MODULE: ./src/plugins/EVM/storage/index.ts -var storage = __webpack_require__(67692); -// EXTERNAL MODULE: ../plugin-infra/src/entry-web3.ts -var entry_web3 = __webpack_require__(67071); -// EXTERNAL MODULE: ../web3-contracts/abis/BalanceChecker.json -var BalanceChecker = __webpack_require__(73003); -// EXTERNAL MODULE: ../web3-contracts/abis/ERC721.json -var ERC721 = __webpack_require__(78322); -// EXTERNAL MODULE: ../web3-providers/src/index.ts -var src = __webpack_require__(92820); -// EXTERNAL MODULE: ../web3-shared/base/src/index.ts + 7 modules -var base_src = __webpack_require__(89260); -// EXTERNAL MODULE: ../web3-shared/evm/constants/constants.ts + 27 modules -var constants = __webpack_require__(26223); -// EXTERNAL MODULE: ../web3-shared/evm/hooks/useContract.ts -var useContract = __webpack_require__(3858); -// EXTERNAL MODULE: ../web3-shared/evm/utils/token.ts -var token = __webpack_require__(33690); -// EXTERNAL MODULE: ../web3-shared/evm/hooks/useERC721TokenDetailed.ts -var useERC721TokenDetailed = __webpack_require__(53465); -// EXTERNAL MODULE: ../../node_modules/.pnpm/bignumber.js@9.0.2/node_modules/bignumber.js/bignumber.js -var bignumber = __webpack_require__(42263); -var bignumber_default = /*#__PURE__*/__webpack_require__.n(bignumber); -// EXTERNAL MODULE: ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/uniqBy.js -var uniqBy = __webpack_require__(18443); -// EXTERNAL MODULE: ../../node_modules/.pnpm/web3@1.7.3/node_modules/web3/lib/index.js -var lib = __webpack_require__(75692); -var lib_default = /*#__PURE__*/__webpack_require__.n(lib); -;// CONCATENATED MODULE: ./src/plugins/EVM/utils/token.ts -// TODO: remove -const getTokenUSDValue = (token)=>token.value ? Number.parseFloat(token.value?.[types/* CurrencyType.USD */.V2.USD] ?? '') : 0 -; -const getBalanceValue = (asset)=>Number.parseFloat((0,formatter/* formatBalance */.az)(asset.balance, asset.token.decimals)) -; -const getTokenChainIdValue = (asset)=>{ - const { NATIVE_TOKEN_ADDRESS } = (0,constants/* getTokenConstants */.aV)(); - return (0,utils_address/* isSameAddress */.Wr)(asset.token.id, NATIVE_TOKEN_ADDRESS) ? 1 / asset.token.chainId : 0; -}; -const makeSortAssertWithoutChainFn = ()=>{ - return (a, b)=>{ - // Token with high usd value estimation has priority - const valueDifference = getTokenUSDValue(b) - getTokenUSDValue(a); - if (valueDifference !== 0) return valueDifference; - // native token sort - const chainValueDifference = getTokenChainIdValue(b) - getTokenChainIdValue(a); - if (chainValueDifference !== 0) return chainValueDifference; - // Token with big balance has priority - if (getBalanceValue(a) > getBalanceValue(b)) return -1; - if (getBalanceValue(a) < getBalanceValue(b)) return 1; - // Sorted by alphabet - if ((a.token.name ?? '') > (b.token.name ?? '')) return 1; - if ((a.token.name ?? '') < (b.token.name ?? '')) return -1; - return 0; - }; -}; +// EXTERNAL MODULE: ./src/plugins/RedPacket/base.ts + 7 modules +var RedPacket_base = __webpack_require__(66511); +;// CONCATENATED MODULE: ./src/plugins/RedPacket/index.ts -;// CONCATENATED MODULE: ./src/plugins/EVM/UI/Web3State/createGetLatestBalance.ts -function createGetLatestBalance(context) { - return (chainId, account)=>{ - const web3 = (0,provider/* createWeb3 */.N)(context.request, ()=>({ - chainId - }) - ); - return web3.eth.getBalance(account); - }; -} +(0,entry/* registerPlugin */.fo)({ + ...RedPacket_base/* base */.u, + SNSAdaptor: { + load: ()=>Promise.all(/* import() */[__webpack_require__.e(5638), __webpack_require__.e(2698), __webpack_require__.e(7871), __webpack_require__.e(3294), __webpack_require__.e(8672), __webpack_require__.e(187), __webpack_require__.e(4806), __webpack_require__.e(1922), __webpack_require__.e(518), __webpack_require__.e(1597)]).then(__webpack_require__.bind(__webpack_require__, 41597)) + , + hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 + }, + Worker: { + load: ()=>__webpack_require__.e(/* import() */ 787).then(__webpack_require__.bind(__webpack_require__, 20787)) + , + hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 + } +}); -;// CONCATENATED MODULE: ./src/plugins/EVM/UI/Web3State/createNonFungibleToken.ts +// EXTERNAL MODULE: ./src/plugins/ITO/base.ts +var ITO_base = __webpack_require__(69690); +;// CONCATENATED MODULE: ./src/plugins/ITO/index.ts -function createNonFungibleToken(token) { - return { - ...token, - id: `${token.contractDetailed.address}_${token.tokenId}`, - tokenId: token.tokenId, - chainId: token.contractDetailed.chainId, - type: entry_web3/* TokenType.NonFungible */.iv.NonFungible, - name: token.info.name ?? `${token.contractDetailed.name} ${token.tokenId}`, - description: token.info.description ?? '', - owner: token.info.owner, - contract: { - ...token.contractDetailed, - type: entry_web3/* TokenType.NonFungible */.iv.NonFungible, - id: token.contractDetailed.address - }, - metadata: { - name: token.info.name ?? `${token.contractDetailed.name} ${token.tokenId}`, - description: token.info.description ?? '', - mediaType: 'Unknown', - iconURL: token.contractDetailed.iconURL, - assetURL: token.info.mediaUrl - } - }; -} -;// CONCATENATED MODULE: ./src/plugins/EVM/UI/Web3State/getAssetsFn.ts +(0,entry/* registerPlugin */.fo)({ + ...ITO_base/* base */.u, + SNSAdaptor: { + load: ()=>Promise.all(/* import() */[__webpack_require__.e(5638), __webpack_require__.e(2698), __webpack_require__.e(9759), __webpack_require__.e(7871), __webpack_require__.e(3294), __webpack_require__.e(8672), __webpack_require__.e(2486), __webpack_require__.e(187), __webpack_require__.e(4806), __webpack_require__.e(3804), __webpack_require__.e(1922), __webpack_require__.e(518), __webpack_require__.e(6284)]).then(__webpack_require__.bind(__webpack_require__, 16284)) + , + hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 + }, + Worker: { + load: ()=>__webpack_require__.e(/* import() */ 2671).then(__webpack_require__.bind(__webpack_require__, 32671)) + , + hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 + } +}); +// EXTERNAL MODULE: ./src/plugins/Snapshot/base.ts +var Snapshot_base = __webpack_require__(89184); +;// CONCATENATED MODULE: ./src/plugins/Snapshot/index.ts +(0,entry/* registerPlugin */.fo)({ + ...Snapshot_base/* base */.u, + SNSAdaptor: { + load: ()=>Promise.all(/* import() */[__webpack_require__.e(5638), __webpack_require__.e(2698), __webpack_require__.e(7871), __webpack_require__.e(3294), __webpack_require__.e(8672), __webpack_require__.e(2486), __webpack_require__.e(8364), __webpack_require__.e(855), __webpack_require__.e(9103)]).then(__webpack_require__.bind(__webpack_require__, 39103)) + , + hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 + }, + Worker: { + load: ()=>__webpack_require__.e(/* import() */ 3895).then(__webpack_require__.bind(__webpack_require__, 33895)) + , + hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 + } +}); +// EXTERNAL MODULE: ./src/plugins/Savings/base.ts +var Savings_base = __webpack_require__(73171); +;// CONCATENATED MODULE: ./src/plugins/Savings/index.ts +(0,entry/* registerPlugin */.fo)({ + ...Savings_base/* base */.u, + SNSAdaptor: { + load: ()=>Promise.all(/* import() */[__webpack_require__.e(5638), __webpack_require__.e(2698), __webpack_require__.e(9759), __webpack_require__.e(3294), __webpack_require__.e(187), __webpack_require__.e(1546), __webpack_require__.e(2939), __webpack_require__.e(4428), __webpack_require__.e(4806), __webpack_require__.e(3804), __webpack_require__.e(7217), __webpack_require__.e(8756)]).then(__webpack_require__.bind(__webpack_require__, 66041)) + , + hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 + }, + Worker: { + load: ()=>__webpack_require__.e(/* import() */ 4250).then(__webpack_require__.bind(__webpack_require__, 34250)) + , + hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 + } +}); +// EXTERNAL MODULE: ./src/plugins/Collectible/base.ts +var Collectible_base = __webpack_require__(1854); +;// CONCATENATED MODULE: ./src/plugins/Collectible/index.ts +(0,entry/* registerPlugin */.fo)({ + ...Collectible_base/* base */.u, + SNSAdaptor: { + load: ()=>Promise.all(/* import() */[__webpack_require__.e(5638), __webpack_require__.e(2698), __webpack_require__.e(7871), __webpack_require__.e(3294), __webpack_require__.e(8672), __webpack_require__.e(405), __webpack_require__.e(4544), __webpack_require__.e(3147), __webpack_require__.e(4227), __webpack_require__.e(8019), __webpack_require__.e(8712), __webpack_require__.e(9278), __webpack_require__.e(6045), __webpack_require__.e(2261), __webpack_require__.e(8331), __webpack_require__.e(8364), __webpack_require__.e(1491), __webpack_require__.e(9714), __webpack_require__.e(5578), __webpack_require__.e(125), __webpack_require__.e(7913), __webpack_require__.e(4806), __webpack_require__.e(9358), __webpack_require__.e(2235), __webpack_require__.e(6969)]).then(__webpack_require__.bind(__webpack_require__, 88436)) + , + hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 + }, + Worker: { + load: ()=>__webpack_require__.e(/* import() */ 8395).then(__webpack_require__.bind(__webpack_require__, 38395)) + , + hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 + } +}); +// EXTERNAL MODULE: ./src/plugins/Transak/base.ts +var Transak_base = __webpack_require__(56071); +;// CONCATENATED MODULE: ./src/plugins/Transak/index.ts -// tokens unavailable neither from api or balance checker. -// https://forum.conflux.fun/t/how-to-upvote-debank-proposal-for-conflux-espace-integration/13935 -const TokenUnavailableFromDebankList = [ - types/* ChainId.Conflux */.a_.Conflux -]; -const getFungibleAssetsFn = (context)=>async (address, providerType, network, pagination)=>{ - const chainId = context.chainId.getCurrentValue(); - const wallet = context.wallets.getCurrentValue().find((x)=>(0,utils_address/* isSameAddress */.Wr)(x.address, address) - ); - const networks = (0,entry_web3/* getRegisteredWeb3Networks */.Rm)().filter((x)=>entry_web3/* NetworkPluginID.PLUGIN_EVM */.FF.PLUGIN_EVM === x.networkSupporterPluginID && x.isMainnet - ); - const supportedNetworkIds = networks.map((x)=>x.chainId - ); - const trustedTokens = (0,uniqBy/* default */.Z)(context.erc20Tokens.getCurrentValue().filter((x)=>wallet?.erc20_token_whitelist.has((0,formatter/* formatEthereumAddress */.j8)(x.address)) - ), (x)=>`${x.chainId}_${(0,formatter/* formatEthereumAddress */.j8)(x.address)}` - ); - const web3 = new (lib_default())((0,provider/* createExternalProvider */.z)(context.request, context.getSendOverrides, context.getRequestOptions)); - const { BALANCE_CHECKER_ADDRESS } = (0,constants/* getEthereumConstants */.Wt)(chainId); - const dataFromProvider = await context.getAssetsList(address, types/* FungibleAssetProvider.DEBANK */.Am.DEBANK); - const assetsFromProvider = dataFromProvider.map((x)=>({ - id: x.token.address, - chainId: x.token.chainId, - balance: x.balance, - price: x.price, - value: x.value, - logoURI: x.logoURI, - token: { - ...x.token, - name: x.token.name ?? 'Unknown Token', - symbol: x.token.symbol ?? 'Unknown', - id: x.token.address, - chainId: x.token.chainId, - type: entry_web3/* TokenType.Fungible */.iv.Fungible - } - }) - ).filter((x)=>supportedNetworkIds.includes(x.chainId) - ); - const balanceCheckerContract = (0,useContract/* createContract */.OP)(web3, BALANCE_CHECKER_ADDRESS ?? '', BalanceChecker); - let balanceList = []; - if (BALANCE_CHECKER_ADDRESS && balanceCheckerContract) { - try { - balanceList = await balanceCheckerContract?.methods.balances([ - address - ], trustedTokens.map((x)=>x.address - )).call({ - from: address - }); - if (balanceList.length !== trustedTokens?.length) return assetsFromProvider; - } catch { - balanceList = []; - } - } - const assetFromChain = balanceList.map((balance, idx)=>({ - id: trustedTokens[idx].address, - chainId, - token: { - ...trustedTokens[idx], - id: trustedTokens[idx].address, - type: entry_web3/* TokenType.Fungible */.iv.Fungible, - name: trustedTokens[idx].name ?? 'Unknown Token', - symbol: trustedTokens[idx].symbol ?? 'Unknown' - }, - balance - }) - ); - const allTokens = [ - ...assetsFromProvider, - ...assetFromChain - ]; - const getBalance = createGetLatestBalance(context); - const allRequest = TokenUnavailableFromDebankList.map(async (x)=>{ - const balance = await getBalance(x, address); - const coinId = (0,chainDetailed/* getCoinGeckoCoinId */.vM)(x); - const price = (await src/* TokenPrice.getNativeTokenPrice */.GI.getNativeTokenPrice([ - coinId - ], types/* CurrencyType.USD */.V2.USD))[coinId]; - return { - chainId: x, - price: price, - balance - }; - }); - const tokenUnavailableFromDebankResults = (await Promise.allSettled(allRequest)).map((x)=>x.status === 'fulfilled' ? x.value : null - ).filter((x)=>Boolean(x) - ); - const nativeTokens = networks.filter((t)=>t.isMainnet && !allTokens.find((x)=>x.token.chainId === t.chainId && (0,utils_address/* isSameAddress */.Wr)(x.token.id, (0,token/* createNativeToken */.$c)(x.chainId).address) - ) - ).map((x)=>{ - const nativeToken = (0,token/* createNativeToken */.$c)(x.chainId); - const result = tokenUnavailableFromDebankResults.find((y)=>y.chainId === x.chainId - ); - return { - id: nativeToken.address, - chainId: x.chainId, - token: { - ...nativeToken, - id: nativeToken.address, - type: entry_web3/* TokenType.Fungible */.iv.Fungible - }, - balance: result?.balance ?? '0', - price: result?.price, - value: { - [types/* CurrencyType.USD */.V2.USD]: new (bignumber_default())(result?.balance ?? '0').dividedBy((0,base_src/* pow10 */.wA)(nativeToken.decimals)).multipliedBy(result ? result.price[types/* CurrencyType.USD */.V2.USD] : '0').toFixed() - } - }; - }); - return (0,uniqBy/* default */.Z)([ - ...nativeTokens, - ...allTokens - ], (x)=>`${x.token.chainId}_${(0,formatter/* formatEthereumAddress */.j8)(x.token.id)}` - ).sort(makeSortAssertWithoutChainFn()); +(0,entry/* registerPlugin */.fo)({ + ...Transak_base/* base */.u, + SNSAdaptor: { + load: ()=>__webpack_require__.e(/* import() */ 9989).then(__webpack_require__.bind(__webpack_require__, 59989)) + , + hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 + }, + Dashboard: { + load: ()=>__webpack_require__.e(/* import() */ 5302).then(__webpack_require__.bind(__webpack_require__, 75302)) + , + hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 } -; -const getNonFungibleTokenFn = (context)=>async (address, pagination, providerType, network)=>{ - const socket = await context.providerSocket; - let tokenInDb = []; - // validate and show trusted erc721 token in first page - if (pagination?.page === 0) { - const trustedTokens = context.erc721Tokens.getCurrentValue(); - const calls = trustedTokens.map(async (x)=>{ - const web3 = new (lib_default())((0,provider/* createExternalProvider */.z)(context.request, ()=>({ - ...context.getSendOverrides?.(), - chainId: x.contractDetailed.chainId - }) - , context.getRequestOptions)); - const contract = (0,useContract/* createContract */.OP)(web3, x.contractDetailed.address, ERC721); - if (!contract) return null; - const tokenDetailed = await (0,useERC721TokenDetailed/* getERC721TokenDetailedFromChain */.qY)(x.contractDetailed, contract, x.tokenId); - const info = await (0,useERC721TokenDetailed/* getERC721TokenAssetFromChain */.qU)(tokenDetailed?.info.tokenURI); - if (tokenDetailed && info) tokenDetailed.info = { - ...info, - ...tokenDetailed.info, - hasTokenDetailed: true, - name: info.name ?? tokenDetailed.info.name - }; - return tokenDetailed; - }); - const fromChain = await Promise.all(calls); - tokenInDb = fromChain.filter(Boolean); - } - const socketId = `mask.fetchNonFungibleCollectibleAsset_${address}`; - socket.send({ - id: socketId, - method: 'mask.fetchNonFungibleCollectibleAsset', - params: { - address, - pageSize: 40 - } - }); - const tokenFromProvider = socket.getResult(socketId); - const allData = [ - ...tokenInDb, - ...tokenFromProvider - ].map(createNonFungibleToken).filter((x)=>(0,utils_address/* isSameAddress */.Wr)(x.owner, address) - ).filter((x)=>!network || x.chainId === network.chainId - ); - return { - hasNextPage: (tokenFromProvider.length === pagination?.size) ?? 20, - currentPage: pagination?.page ?? 0, - data: allData - }; +}); + +// EXTERNAL MODULE: ./src/plugins/Gitcoin/base.ts + 7 modules +var Gitcoin_base = __webpack_require__(83546); +;// CONCATENATED MODULE: ./src/plugins/Gitcoin/index.ts + + +(0,entry/* registerPlugin */.fo)({ + ...Gitcoin_base/* base */.u, + SNSAdaptor: { + load: ()=>Promise.all(/* import() */[__webpack_require__.e(5638), __webpack_require__.e(2698), __webpack_require__.e(7871), __webpack_require__.e(4806), __webpack_require__.e(1922), __webpack_require__.e(1825)]).then(__webpack_require__.bind(__webpack_require__, 91825)) + , + hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 + }, + Worker: { + load: ()=>__webpack_require__.e(/* import() */ 5218).then(__webpack_require__.bind(__webpack_require__, 55218)) + , + hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 } -; +}); -;// CONCATENATED MODULE: ./src/plugins/EVM/UI/Web3State/index.ts +// EXTERNAL MODULE: ./src/plugins/Polls/base.ts +var Polls_base = __webpack_require__(77527); +;// CONCATENATED MODULE: ./src/plugins/Polls/index.ts +(0,entry/* registerPlugin */.fo)({ + ...Polls_base/* base */.u, + SNSAdaptor: { + load: ()=>Promise.all(/* import() */[__webpack_require__.e(5638), __webpack_require__.e(7871), __webpack_require__.e(3294), __webpack_require__.e(8672), __webpack_require__.e(3555)]).then(__webpack_require__.bind(__webpack_require__, 33555)) + , + hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 + }, + Worker: { + load: ()=>__webpack_require__.e(/* import() */ 3618).then(__webpack_require__.bind(__webpack_require__, 53618)) + , + hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 + } +}); +// EXTERNAL MODULE: ./src/plugins/VCent/base.ts +var VCent_base = __webpack_require__(40587); +;// CONCATENATED MODULE: ./src/plugins/VCent/index.ts -const ZERO_X_ERROR_ADDRESS = '0x'; -function fixWeb3State(state, context) { - if (!state || !context) return; - state.Shared = state.Shared ?? { - allowTestnet: context.allowTestnet, - chainId: context.chainId, - account: context.account, - networkType: context.networkType, - providerType: context.providerType, - walletPrimary: context.walletPrimary, - wallets: context.wallets - }; - state.Asset = state.Asset ?? { - getFungibleAssets: getFungibleAssetsFn(context), - getNonFungibleAssets: getNonFungibleTokenFn(context) - }; - state.NameService = state.NameService ?? { - lookup: async (domain)=>{ - const chainId = context.chainId.getCurrentValue(); - const network = context.networkType.getCurrentValue(); - // Only support Ethereum on evm - if (network !== types/* NetworkType.Ethereum */.td.Ethereum) return undefined; - const domainAddressBook = (0,storage/* getStorage */.cF)().domainAddressBook.value; - const cacheAddress = domainAddressBook[chainId]?.[domain]; - if (cacheAddress && (0,utils_address/* isValidAddress */.At)(cacheAddress)) return cacheAddress; - const address = await new (ethjs_ens_default())({ - provider: (0,provider/* createExternalProvider */.z)(context.request, context.getSendOverrides, context.getRequestOptions), - network: chainId - }).lookup(domain); - if ((0,utils_address/* isZeroAddress */.uO)(address) || (0,utils_address/* isSameAddress */.Wr)(address, ZERO_X_ERROR_ADDRESS) || !(0,utils_address/* isValidAddress */.At)(address)) { - return undefined; - } - if (address) await (0,storage/* getStorage */.cF)().domainAddressBook.setValue({ - ...domainAddressBook, - [chainId]: { - ...domainAddressBook[chainId], - ...{ - [address]: domain, - [domain]: address - } - } - }); - return address; - }, - reverse: async (address)=>{ - if (!(0,utils_address/* isValidAddress */.At)(address)) return undefined; - const chainId = context.chainId.getCurrentValue(); - const network = context.networkType.getCurrentValue(); - // Only support Ethereum on evm - if (network !== types/* NetworkType.Ethereum */.td.Ethereum) return undefined; - const domainAddressBook = (0,storage/* getStorage */.cF)().domainAddressBook.value; - const cacheDomain = domainAddressBook[chainId]?.[address]; - if (cacheDomain) return cacheDomain; - const domain = await new (ethjs_ens_default())({ - provider: (0,provider/* createExternalProvider */.z)(context.request, context.getSendOverrides, context.getRequestOptions), - network: chainId - }).reverse(address); - if ((0,utils_address/* isZeroAddress */.uO)(domain) || (0,utils_address/* isSameAddress */.Wr)(domain, ZERO_X_ERROR_ADDRESS)) { - return undefined; - } - if (domain) await (0,storage/* getStorage */.cF)().domainAddressBook.setValue({ - ...domainAddressBook, - [chainId]: { - ...domainAddressBook[chainId], - ...{ - [address]: domain, - [domain]: address - } - } - }); - return domain; - } - }; - state.Utils = state.Utils ?? { - getLatestBalance: createGetLatestBalance(context), - getLatestBlockNumber: (chainId)=>{ - const web3 = (0,provider/* createWeb3 */.N)(context.request, ()=>({ - chainId - }) - ); - return web3.eth.getBlockNumber(); - }, - getChainDetailed: chainDetailed/* getChainDetailed */.$G, - isChainIdValid: chainDetailed/* isChainIdValid */.Ji, - formatAddress: formatter/* formatEthereumAddress */.j8, - formatCurrency: formatter/* formatCurrency */.xG, - formatBalance: formatter/* formatBalance */.az, - resolveChainName: pipes/* resolveChainName */.Po, - resolveChainFullName: pipes/* resolveChainFullName */.r_, - resolveChainColor: pipes/* resolveChainColor */._E, - resolveTransactionLink: pipes/* resolveTransactionLinkOnExplorer */.z4, - resolveAddressLink: pipes/* resolveAddressLinkOnExplorer */.V3, - resolveBlockLink: pipes/* resolveBlockLinkOnExplorer */.vy, - isValidDomain: domain/* isValidDomain */.h, - resolveDomainLink: pipes/* resolveDomainLink */.sJ, - formatDomainName: formatter/* formatDomainName */.bc, - resolveNonFungibleTokenLink: (chainId, address, tokenId)=>(0,pipes/* resolveCollectibleLink */.Q_)(chainId, types/* NonFungibleAssetProvider.OPENSEA */.pI.OPENSEA, { - contractDetailed: { - address: address - }, - tokenId: tokenId - }) - }; - return state; -} +(0,entry/* registerPlugin */.fo)({ + ...VCent_base/* base */.u, + Worker: { + load: ()=>__webpack_require__.e(/* import() */ 3543).then(__webpack_require__.bind(__webpack_require__, 23543)) + , + hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 + }, + SNSAdaptor: { + load: ()=>__webpack_require__.e(/* import() */ 9005).then(__webpack_require__.bind(__webpack_require__, 59005)) + , + hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 + } +}); +// EXTERNAL MODULE: ./src/plugins/Trader/base.ts + 7 modules +var Trader_base = __webpack_require__(96322); +;// CONCATENATED MODULE: ./src/plugins/Trader/index.ts -/***/ }), -/***/ 13234: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { +(0,entry/* registerPlugin */.fo)({ + ...Trader_base/* base */.u, + SNSAdaptor: { + load: ()=>Promise.all(/* import() */[__webpack_require__.e(5638), __webpack_require__.e(2698), __webpack_require__.e(9759), __webpack_require__.e(7871), __webpack_require__.e(3294), __webpack_require__.e(8672), __webpack_require__.e(6230), __webpack_require__.e(2598), __webpack_require__.e(2486), __webpack_require__.e(187), __webpack_require__.e(405), __webpack_require__.e(1546), __webpack_require__.e(2939), __webpack_require__.e(4428), __webpack_require__.e(4072), __webpack_require__.e(7015), __webpack_require__.e(7531), __webpack_require__.e(5678), __webpack_require__.e(4806), __webpack_require__.e(3804), __webpack_require__.e(7217), __webpack_require__.e(3067), __webpack_require__.e(3466), __webpack_require__.e(4506)]).then(__webpack_require__.bind(__webpack_require__, 72562)) + , + hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 + }, + Dashboard: { + load: ()=>Promise.all(/* import() */[__webpack_require__.e(5638), __webpack_require__.e(2698), __webpack_require__.e(9759), __webpack_require__.e(7871), __webpack_require__.e(3294), __webpack_require__.e(8672), __webpack_require__.e(6230), __webpack_require__.e(2598), __webpack_require__.e(2486), __webpack_require__.e(187), __webpack_require__.e(405), __webpack_require__.e(1546), __webpack_require__.e(2939), __webpack_require__.e(4428), __webpack_require__.e(4806), __webpack_require__.e(3804), __webpack_require__.e(7217), __webpack_require__.e(3067), __webpack_require__.e(4926)]).then(__webpack_require__.bind(__webpack_require__, 55274)) + , + hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 + }, + Worker: { + load: ()=>__webpack_require__.e(/* import() */ 5936).then(__webpack_require__.bind(__webpack_require__, 85936)) + , + hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 + } +}); -"use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "u": () => (/* binding */ base) -/* harmony export */ }); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(29729); +// EXTERNAL MODULE: ./src/plugins/dHEDGE/base.tsx +var dHEDGE_base = __webpack_require__(4348); +;// CONCATENATED MODULE: ./src/plugins/dHEDGE/index.ts -const base = { - ID: _constants__WEBPACK_IMPORTED_MODULE_0__/* .PLUGIN_ID */ .Uu, - name: { - fallback: _constants__WEBPACK_IMPORTED_MODULE_0__/* .PLUGIN_NAME */ .EW + +(0,entry/* registerPlugin */.fo)({ + ...dHEDGE_base/* base */.u, + SNSAdaptor: { + load: ()=>Promise.all(/* import() */[__webpack_require__.e(5638), __webpack_require__.e(2698), __webpack_require__.e(7871), __webpack_require__.e(8672), __webpack_require__.e(4072), __webpack_require__.e(7015), __webpack_require__.e(7531), __webpack_require__.e(5678), __webpack_require__.e(8370), __webpack_require__.e(4806), __webpack_require__.e(3466), __webpack_require__.e(2426), __webpack_require__.e(928)]).then(__webpack_require__.bind(__webpack_require__, 71403)) + , + hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 }, - description: { - fallback: _constants__WEBPACK_IMPORTED_MODULE_0__/* .PLUGIN_DESCRIPTION */ .PP + Dashboard: { + load: ()=>Promise.all(/* import() */[__webpack_require__.e(5638), __webpack_require__.e(2698), __webpack_require__.e(4806), __webpack_require__.e(2426), __webpack_require__.e(6708)]).then(__webpack_require__.bind(__webpack_require__, 15969)) + , + hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 }, - publisher: { - name: { - fallback: 'Mask Network' - }, - link: 'https://mask.io/' + Worker: { + load: ()=>__webpack_require__.e(/* import() */ 2916).then(__webpack_require__.bind(__webpack_require__, 82916)) + , + hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 + } +}); + +// EXTERNAL MODULE: ./src/plugins/PoolTogether/base.tsx +var PoolTogether_base = __webpack_require__(50758); +;// CONCATENATED MODULE: ./src/plugins/PoolTogether/index.ts + + +(0,entry/* registerPlugin */.fo)({ + ...PoolTogether_base/* base */.u, + SNSAdaptor: { + load: ()=>Promise.all(/* import() */[__webpack_require__.e(5638), __webpack_require__.e(2698), __webpack_require__.e(9759), __webpack_require__.e(3294), __webpack_require__.e(8672), __webpack_require__.e(4806), __webpack_require__.e(9468), __webpack_require__.e(9896)]).then(__webpack_require__.bind(__webpack_require__, 79896)) + , + hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 }, - enableRequirement: { - architecture: { - app: true, - web: true - }, - networks: { - type: 'opt-out', - networks: {} - }, - target: 'stable' + Dashboard: { + load: ()=>Promise.all(/* import() */[__webpack_require__.e(5638), __webpack_require__.e(2698), __webpack_require__.e(4806), __webpack_require__.e(9468), __webpack_require__.e(9582)]).then(__webpack_require__.bind(__webpack_require__, 59582)) + , + hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 }, - declareApplicationCategories: _constants__WEBPACK_IMPORTED_MODULE_0__/* .PLUGIN_APPLICATION_CATEGORIES */ .hM, - declareWeb3Networks: _constants__WEBPACK_IMPORTED_MODULE_0__/* .PLUGIN_NETWORKS */ .BK, - declareWeb3Providers: _constants__WEBPACK_IMPORTED_MODULE_0__/* .PLUGIN_PROVIDERS */ .aZ -}; + Worker: { + load: ()=>__webpack_require__.e(/* import() */ 5837).then(__webpack_require__.bind(__webpack_require__, 65837)) + , + hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 + } +}); +// EXTERNAL MODULE: ./src/plugins/GoodGhosting/base.ts + 1 modules +var GoodGhosting_base = __webpack_require__(89355); +;// CONCATENATED MODULE: ./src/plugins/GoodGhosting/index.ts -/***/ }), -/***/ 29729: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { +(0,entry/* registerPlugin */.fo)({ + ...GoodGhosting_base/* base */.u, + SNSAdaptor: { + load: ()=>Promise.all(/* import() */[__webpack_require__.e(5638), __webpack_require__.e(2698), __webpack_require__.e(3294), __webpack_require__.e(8672), __webpack_require__.e(4806), __webpack_require__.e(7635)]).then(__webpack_require__.bind(__webpack_require__, 69592)) + , + hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 + } +}); -"use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "BK": () => (/* binding */ PLUGIN_NETWORKS), -/* harmony export */ "EW": () => (/* binding */ PLUGIN_NAME), -/* harmony export */ "PP": () => (/* binding */ PLUGIN_DESCRIPTION), -/* harmony export */ "Uu": () => (/* binding */ PLUGIN_ID), -/* harmony export */ "aZ": () => (/* binding */ PLUGIN_PROVIDERS), -/* harmony export */ "hM": () => (/* binding */ PLUGIN_APPLICATION_CATEGORIES) -/* harmony export */ }); -/* harmony import */ var _masknet_plugin_infra_web3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(67071); -/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(65506); +// EXTERNAL MODULE: ./src/plugins/UnlockProtocol/base.ts +var UnlockProtocol_base = __webpack_require__(33924); +;// CONCATENATED MODULE: ./src/plugins/UnlockProtocol/index.ts -const PLUGIN_ID = _masknet_plugin_infra_web3__WEBPACK_IMPORTED_MODULE_0__/* .NetworkPluginID.PLUGIN_EVM */ .FF.PLUGIN_EVM; -const PLUGIN_NAME = 'EVM'; -const PLUGIN_DESCRIPTION = ''; -const PLUGIN_NETWORKS = [ - { - ID: `${PLUGIN_ID}_ethereum`, - networkSupporterPluginID: PLUGIN_ID, - chainId: _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Mainnet */ .a_.Mainnet, - type: _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .NetworkType.Ethereum */ .td.Ethereum, - name: 'Ethereum', - icon: new URL(/* asset import */ __webpack_require__(43884), __webpack_require__.b), - iconColor: 'rgb(28, 104, 243)', - isMainnet: true - }, - { - ID: `${PLUGIN_ID}_ropsten`, - networkSupporterPluginID: PLUGIN_ID, - chainId: _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Ropsten */ .a_.Ropsten, - type: _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .NetworkType.Ethereum */ .td.Ethereum, - name: 'Ropsten', - icon: new URL(/* asset import */ __webpack_require__(43884), __webpack_require__.b), - iconColor: 'rgb(255, 65, 130)', - isMainnet: false - }, - { - ID: `${PLUGIN_ID}_kovan`, - networkSupporterPluginID: PLUGIN_ID, - chainId: _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Kovan */ .a_.Kovan, - type: _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .NetworkType.Ethereum */ .td.Ethereum, - name: 'Kovan', - icon: new URL(/* asset import */ __webpack_require__(43884), __webpack_require__.b), - iconColor: 'rgb(133, 89, 255)', - isMainnet: false - }, - { - ID: `${PLUGIN_ID}_rinkeby`, - networkSupporterPluginID: PLUGIN_ID, - chainId: _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Rinkeby */ .a_.Rinkeby, - type: _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .NetworkType.Ethereum */ .td.Ethereum, - name: 'Rinkeby', - icon: new URL(/* asset import */ __webpack_require__(43884), __webpack_require__.b), - iconColor: 'rgb(133, 89, 255)', - isMainnet: false - }, - { - ID: `${PLUGIN_ID}_gorli`, - networkSupporterPluginID: PLUGIN_ID, - chainId: _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Gorli */ .a_.Gorli, - type: _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .NetworkType.Ethereum */ .td.Ethereum, - name: 'G\xf6rli', - icon: new URL(/* asset import */ __webpack_require__(43884), __webpack_require__.b), - iconColor: 'rgb(48, 153, 242)', - isMainnet: false +(0,entry/* registerPlugin */.fo)({ + ...UnlockProtocol_base/* base */.u, + SNSAdaptor: { + load: ()=>Promise.all(/* import() */[__webpack_require__.e(5638), __webpack_require__.e(7201)]).then(__webpack_require__.bind(__webpack_require__, 97201)) + , + hotModuleReload: (hot)=> undefined }, - { - ID: `${PLUGIN_ID}_bsc`, - networkSupporterPluginID: PLUGIN_ID, - chainId: _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.BSC */ .a_.BSC, - type: _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .NetworkType.Binance */ .td.Binance, - name: 'BNB Chain', - icon: new URL(/* asset import */ __webpack_require__(59579), __webpack_require__.b), - iconColor: 'rgb(240, 185, 10)', - isMainnet: true + Worker: { + load: ()=>__webpack_require__.e(/* import() */ 1975).then(__webpack_require__.bind(__webpack_require__, 11975)) + , + hotModuleReload: (hot)=> undefined + } +}); + +// EXTERNAL MODULE: ./src/plugins/Avatar/base.ts + 7 modules +var Avatar_base = __webpack_require__(68442); +;// CONCATENATED MODULE: ./src/plugins/Avatar/index.ts + + +(0,entry/* registerPlugin */.fo)({ + ...Avatar_base/* base */.u, + SNSAdaptor: { + load: ()=>Promise.all(/* import() */[__webpack_require__.e(5638), __webpack_require__.e(2698), __webpack_require__.e(9759), __webpack_require__.e(7871), __webpack_require__.e(8672), __webpack_require__.e(2486), __webpack_require__.e(3667), __webpack_require__.e(8580), __webpack_require__.e(4583), __webpack_require__.e(9119)]).then(__webpack_require__.bind(__webpack_require__, 17613)) + , + hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 }, - { - ID: `${PLUGIN_ID}_bsct`, - networkSupporterPluginID: PLUGIN_ID, - chainId: _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.BSCT */ .a_.BSCT, - type: _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .NetworkType.Binance */ .td.Binance, - name: 'BSCT', - icon: new URL(/* asset import */ __webpack_require__(59579), __webpack_require__.b), - iconColor: 'rgb(240, 185, 10)', - isMainnet: false + Worker: { + load: ()=>__webpack_require__.e(/* import() */ 8690).then(__webpack_require__.bind(__webpack_require__, 58690)) + , + hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 + } +}); + +// EXTERNAL MODULE: ./src/plugins/Furucombo/base.tsx +var Furucombo_base = __webpack_require__(4030); +;// CONCATENATED MODULE: ./src/plugins/Furucombo/index.ts + + +(0,entry/* registerPlugin */.fo)({ + ...Furucombo_base/* base */.u, + SNSAdaptor: { + load: ()=>Promise.all(/* import() */[__webpack_require__.e(5638), __webpack_require__.e(7871), __webpack_require__.e(8672), __webpack_require__.e(8136), __webpack_require__.e(5340)]).then(__webpack_require__.bind(__webpack_require__, 85340)) + , + hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 + } +}); + +// EXTERNAL MODULE: ./src/plugins/MaskBox/base.ts + 3 modules +var MaskBox_base = __webpack_require__(98580); +;// CONCATENATED MODULE: ./src/plugins/MaskBox/index.ts + + +(0,entry/* registerPlugin */.fo)({ + ...MaskBox_base/* base */.u, + SNSAdaptor: { + load: ()=>Promise.all(/* import() */[__webpack_require__.e(5638), __webpack_require__.e(2698), __webpack_require__.e(7871), __webpack_require__.e(3294), __webpack_require__.e(8672), __webpack_require__.e(405), __webpack_require__.e(4806), __webpack_require__.e(1922), __webpack_require__.e(9358), __webpack_require__.e(9378)]).then(__webpack_require__.bind(__webpack_require__, 29378)) + , + hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 }, - { - ID: `${PLUGIN_ID}_polygon`, - networkSupporterPluginID: PLUGIN_ID, - chainId: _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Matic */ .a_.Matic, - type: _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .NetworkType.Polygon */ .td.Polygon, - name: 'Polygon', - icon: new URL(/* asset import */ __webpack_require__(30870), __webpack_require__.b), - iconColor: 'rgb(119, 62, 225)', - isMainnet: true + Worker: { + load: ()=>__webpack_require__.e(/* import() */ 4445).then(__webpack_require__.bind(__webpack_require__, 14445)) + , + hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 + } +}); + +// EXTERNAL MODULE: ./src/plugins/NextID/base.ts + 7 modules +var NextID_base = __webpack_require__(13304); +// EXTERNAL MODULE: ./src/plugins/NextID/constants.ts +var NextID_constants = __webpack_require__(27707); +;// CONCATENATED MODULE: ./src/plugins/NextID/index.ts + + + +(0,entry/* registerPlugin */.fo)({ + ...NextID_base/* base */.u, + SNSAdaptor: { + load: ()=>Promise.all(/* import() */[__webpack_require__.e(5638), __webpack_require__.e(2698), __webpack_require__.e(9759), __webpack_require__.e(3294), __webpack_require__.e(8672), __webpack_require__.e(405), __webpack_require__.e(4806), __webpack_require__.e(3804), __webpack_require__.e(360), __webpack_require__.e(1940), __webpack_require__.e(8449)]).then(__webpack_require__.bind(__webpack_require__, 19613)) + , + hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 + } +}); + +// EXTERNAL MODULE: ./src/plugins/Pets/base.tsx +var Pets_base = __webpack_require__(44371); +;// CONCATENATED MODULE: ./src/plugins/Pets/index.ts + + +(0,entry/* registerPlugin */.fo)({ + ...Pets_base/* base */.u, + SNSAdaptor: { + load: ()=>Promise.all(/* import() */[__webpack_require__.e(5638), __webpack_require__.e(2698), __webpack_require__.e(9759), __webpack_require__.e(2486), __webpack_require__.e(3570), __webpack_require__.e(4416)]).then(__webpack_require__.bind(__webpack_require__, 84416)) + , + hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 }, - { - ID: `${PLUGIN_ID}_mumbai`, - networkSupporterPluginID: PLUGIN_ID, - chainId: _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Mumbai */ .a_.Mumbai, - type: _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .NetworkType.Polygon */ .td.Polygon, - name: 'Mumbai', - icon: new URL(/* asset import */ __webpack_require__(30870), __webpack_require__.b), - iconColor: 'rgb(119, 62, 225)', - isMainnet: false + Worker: { + load: ()=>__webpack_require__.e(/* import() */ 7077).then(__webpack_require__.bind(__webpack_require__, 17077)) + , + hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 }, - { - ID: `${PLUGIN_ID}_arbitrum`, - networkSupporterPluginID: PLUGIN_ID, - chainId: _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Arbitrum */ .a_.Arbitrum, - type: _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .NetworkType.Arbitrum */ .td.Arbitrum, - name: 'Arbitrum One', - icon: new URL(/* asset import */ __webpack_require__(74229), __webpack_require__.b), - iconColor: 'rgb(36, 150, 238)', - isMainnet: true - }, - { - ID: `${PLUGIN_ID}_arbitrum_rinkeby`, - networkSupporterPluginID: PLUGIN_ID, - chainId: _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Arbitrum_Rinkeby */ .a_.Arbitrum_Rinkeby, - type: _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .NetworkType.Arbitrum */ .td.Arbitrum, - name: 'Arbitrum Rinkeby', - icon: new URL(/* asset import */ __webpack_require__(74229), __webpack_require__.b), - iconColor: 'rgb(36, 150, 238)', - isMainnet: false - }, - { - ID: `${PLUGIN_ID}_xdai`, - networkSupporterPluginID: PLUGIN_ID, - chainId: _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.xDai */ .a_.xDai, - type: _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .NetworkType.xDai */ .td.xDai, - name: 'Gnosis', - icon: new URL(/* asset import */ __webpack_require__(27154), __webpack_require__.b), - iconColor: 'rgb(73, 169, 166)', - isMainnet: true - }, - { - ID: `${PLUGIN_ID}_celo`, - networkSupporterPluginID: PLUGIN_ID, - chainId: _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Celo */ .a_.Celo, - type: _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .NetworkType.Celo */ .td.Celo, - name: 'Celo', - icon: new URL(/* asset import */ __webpack_require__(24771), __webpack_require__.b), - iconColor: 'rgb(53, 208, 127)', - isMainnet: false - }, - { - ID: `${PLUGIN_ID}_fantom`, - networkSupporterPluginID: PLUGIN_ID, - chainId: _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Fantom */ .a_.Fantom, - type: _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .NetworkType.Fantom */ .td.Fantom, - name: 'Fantom', - icon: new URL(/* asset import */ __webpack_require__(94955), __webpack_require__.b), - iconColor: 'rgb(73, 169, 166)', - isMainnet: true - }, - { - ID: `${PLUGIN_ID}_avalanche`, - networkSupporterPluginID: PLUGIN_ID, - chainId: _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Avalanche */ .a_.Avalanche, - type: _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .NetworkType.Avalanche */ .td.Avalanche, - name: 'Avalanche', - icon: new URL(/* asset import */ __webpack_require__(98339), __webpack_require__.b), - iconColor: 'rgb(232, 65, 66)', - isMainnet: true - }, - { - ID: `${PLUGIN_ID}_aurora`, - networkSupporterPluginID: PLUGIN_ID, - chainId: _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Aurora */ .a_.Aurora, - type: _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .NetworkType.Aurora */ .td.Aurora, - name: 'Aurora', - icon: new URL(/* asset import */ __webpack_require__(42643), __webpack_require__.b), - iconColor: 'rgb(112, 212, 74)', - isMainnet: true - }, - { - ID: `${PLUGIN_ID}_conflux`, - networkSupporterPluginID: PLUGIN_ID, - chainId: _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Conflux */ .a_.Conflux, - type: _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .NetworkType.Conflux */ .td.Conflux, - name: 'Conflux', - icon: new URL(/* asset import */ __webpack_require__(16972), __webpack_require__.b), - iconColor: 'rgb(112, 212, 74)', - isMainnet: true - }, -]; -const PLUGIN_PROVIDERS = [ - { - ID: `${PLUGIN_ID}_maskwallet`, - providerAdaptorPluginID: PLUGIN_ID, - type: _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ProviderType.MaskWallet */ .lP.MaskWallet, - name: 'Mask Network', - icon: new URL(/* asset import */ __webpack_require__(37650), __webpack_require__.b) - }, - { - ID: `${PLUGIN_ID}_metamask`, - providerAdaptorPluginID: PLUGIN_ID, - type: _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ProviderType.MetaMask */ .lP.MetaMask, - name: 'MetaMask', - icon: new URL(/* asset import */ __webpack_require__(661), __webpack_require__.b) - }, - { - ID: `${PLUGIN_ID}_walletconnect`, - providerAdaptorPluginID: PLUGIN_ID, - type: _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ProviderType.WalletConnect */ .lP.WalletConnect, - name: 'WalletConnect', - icon: new URL(/* asset import */ __webpack_require__(55489), __webpack_require__.b) - }, - { - ID: `${PLUGIN_ID}_coin98`, - providerAdaptorPluginID: PLUGIN_ID, - type: _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ProviderType.Coin98 */ .lP.Coin98, - name: 'Coin98', - icon: new URL(/* asset import */ __webpack_require__(73201), __webpack_require__.b) + Dashboard: { + load: ()=>Promise.all(/* import() */[__webpack_require__.e(5638), __webpack_require__.e(2698), __webpack_require__.e(9759), __webpack_require__.e(2486), __webpack_require__.e(3570), __webpack_require__.e(3458)]).then(__webpack_require__.bind(__webpack_require__, 53458)) + , + hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 + } +}); + +// EXTERNAL MODULE: ./src/plugins/CryptoartAI/base.ts +var CryptoartAI_base = __webpack_require__(60268); +;// CONCATENATED MODULE: ./src/plugins/CryptoartAI/index.ts + + +(0,entry/* registerPlugin */.fo)({ + ...CryptoartAI_base/* base */.u, + SNSAdaptor: { + load: ()=>Promise.all(/* import() */[__webpack_require__.e(5638), __webpack_require__.e(2698), __webpack_require__.e(7871), __webpack_require__.e(8672), __webpack_require__.e(2261), __webpack_require__.e(8331), __webpack_require__.e(8364), __webpack_require__.e(4806), __webpack_require__.e(2235), __webpack_require__.e(4272)]).then(__webpack_require__.bind(__webpack_require__, 44272)) + , + hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 + } +}); + +// EXTERNAL MODULE: ./src/plugins/FindTruman/base.ts +var FindTruman_base = __webpack_require__(74119); +;// CONCATENATED MODULE: ./src/plugins/FindTruman/index.ts + + +(0,entry/* registerPlugin */.fo)({ + ...FindTruman_base/* base */.u, + SNSAdaptor: { + load: ()=>Promise.all(/* import() */[__webpack_require__.e(5638), __webpack_require__.e(2698), __webpack_require__.e(9759), __webpack_require__.e(7871), __webpack_require__.e(3294), __webpack_require__.e(8672), __webpack_require__.e(4806), __webpack_require__.e(3804), __webpack_require__.e(4883)]).then(__webpack_require__.bind(__webpack_require__, 17315)) + , + hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 }, - { - ID: `${PLUGIN_ID}_walletlink`, - providerAdaptorPluginID: PLUGIN_ID, - type: _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ProviderType.WalletLink */ .lP.WalletLink, - name: 'Coinbase', - icon: new URL(/* asset import */ __webpack_require__(59204), __webpack_require__.b) + Worker: { + load: ()=>__webpack_require__.e(/* import() */ 4139).then(__webpack_require__.bind(__webpack_require__, 54139)) + , + hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 + } +}); + +// EXTERNAL MODULE: ./src/plugins/ArtBlocks/base.tsx +var ArtBlocks_base = __webpack_require__(45915); +;// CONCATENATED MODULE: ./src/plugins/ArtBlocks/index.ts + + +(0,entry/* registerPlugin */.fo)({ + ...ArtBlocks_base/* base */.u, + SNSAdaptor: { + load: ()=>Promise.all(/* import() */[__webpack_require__.e(5638), __webpack_require__.e(2698), __webpack_require__.e(7871), __webpack_require__.e(8672), __webpack_require__.e(4806), __webpack_require__.e(1922), __webpack_require__.e(4262)]).then(__webpack_require__.bind(__webpack_require__, 14262)) + , + hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 + } +}); + +// EXTERNAL MODULE: ./src/plugins/Referral/base.ts + 7 modules +var Referral_base = __webpack_require__(6681); +;// CONCATENATED MODULE: ./src/plugins/Referral/index.ts + + +(0,entry/* registerPlugin */.fo)({ + ...Referral_base/* base */.u, + SNSAdaptor: { + load: ()=>Promise.all(/* import() */[__webpack_require__.e(5638), __webpack_require__.e(2698), __webpack_require__.e(8672), __webpack_require__.e(8136), __webpack_require__.e(187), __webpack_require__.e(405), __webpack_require__.e(3758), __webpack_require__.e(2788), __webpack_require__.e(445)]).then(__webpack_require__.bind(__webpack_require__, 75892)) + , + hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 }, - { - ID: `${PLUGIN_ID}_mathwallet`, - providerAdaptorPluginID: PLUGIN_ID, - type: _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ProviderType.MathWallet */ .lP.MathWallet, - name: 'MathWallet', - icon: new URL(/* asset import */ __webpack_require__(57191), __webpack_require__.b) + Worker: { + load: ()=>__webpack_require__.e(/* import() */ 8535).then(__webpack_require__.bind(__webpack_require__, 88535)) + , + hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 + } +}); + +// EXTERNAL MODULE: ./src/plugins/Tips/base.ts + 7 modules +var Tips_base = __webpack_require__(2358); +;// CONCATENATED MODULE: ./src/plugins/Tips/index.ts + + +(0,entry/* registerPlugin */.fo)({ + ...Tips_base/* base */.u, + SNSAdaptor: { + load: ()=>Promise.all(/* import() */[__webpack_require__.e(5638), __webpack_require__.e(2698), __webpack_require__.e(9759), __webpack_require__.e(3294), __webpack_require__.e(405), __webpack_require__.e(4806), __webpack_require__.e(1940), __webpack_require__.e(7643)]).then(__webpack_require__.bind(__webpack_require__, 22933)) + , + hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 }, - { - ID: `${PLUGIN_ID}_fortmatic`, - providerAdaptorPluginID: PLUGIN_ID, - type: _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ProviderType.Fortmatic */ .lP.Fortmatic, - name: 'Fortmatic', - icon: new URL(/* asset import */ __webpack_require__(25869), __webpack_require__.b) - }, -]; -const PLUGIN_APPLICATION_CATEGORIES = [ - { - ID: `${PLUGIN_ID}_category_nfts`, - name: 'NFTs', - icon: new URL(/* asset import */ __webpack_require__(88635), __webpack_require__.b) - }, -]; + Worker: { + load: ()=>__webpack_require__.e(/* import() */ 569).then(__webpack_require__.bind(__webpack_require__, 10569)) + , + hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 + } +}); +;// CONCATENATED MODULE: ./src/plugin-infra/register.js +// This file is a JavaScript file because it's reference to the plugins should not be counted as a project reference. +// If your plugin also works in isolated dashboard, please also register it in +// packages/dashboard/src/initialization/plugins.ts -/***/ }), -/***/ 67692: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -"use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "WQ": () => (/* binding */ StorageDefaultValue), -/* harmony export */ "cF": () => (/* binding */ getStorage), -/* harmony export */ "tX": () => (/* binding */ setupStorage) -/* harmony export */ }); -const StorageDefaultValue = { - domainAddressBook: {} -}; -let storage = null; -function setupStorage(_) { - storage = _; + + + + + + + + + + + + + + + +// import '../plugins/External' + + + + + + + + + + + + + + + + + + + + +// EXTERNAL MODULE: ../../node_modules/.pnpm/@servie+events@3.0.0/node_modules/@servie/events/dist/index.js +var dist = __webpack_require__(69260); +// EXTERNAL MODULE: ./shared/messages.ts +var messages = __webpack_require__(29130); +// EXTERNAL MODULE: ./src/extension/service.ts +var service = __webpack_require__(78778); +// EXTERNAL MODULE: ../shared-base/src/index.ts + 2 modules +var shared_base_src = __webpack_require__(44451); +// EXTERNAL MODULE: ./shared/index.ts +var shared = __webpack_require__(94670); +// EXTERNAL MODULE: ./shared/native-rpc/index.ts + 1 modules +var native_rpc = __webpack_require__(76536); +// EXTERNAL MODULE: ./src/plugins/Wallet/settings.ts +var settings = __webpack_require__(7197); +// EXTERNAL MODULE: ./src/plugins/Wallet/messages.ts +var Wallet_messages = __webpack_require__(91788); +;// CONCATENATED MODULE: ./src/plugin-infra/host.ts +// All plugin manager need to call createPluginHost so let's register plugins implicitly. + + + + + + + + + +const SharedContext = { + currentPersona: (0,shared_base_src/* createSubscriptionFromAsync */.Fd)(service/* default.Settings.getCurrentPersonaIdentifier */.ZP.Settings.getCurrentPersonaIdentifier, undefined, messages/* MaskMessages.events.currentPersonaIdentifier.on */.q.events.currentPersonaIdentifier.on), + nativeType: native_rpc/* nativeAPI */.Nz?.type, + hasNativeAPI: native_rpc/* hasNativeAPI */._, + send: Wallet_messages/* WalletRPC.sendPayload */.V.sendPayload, + fetch: service/* default.Helper.r2d2Fetch */.ZP.Helper.r2d2Fetch, + openPopupWindow: service/* default.Helper.openPopupWindow */.ZP.Helper.openPopupWindow, + closePopupWindow: service/* default.Helper.removePopupWindow */.ZP.Helper.removePopupWindow, + openWalletConnectDialog: (uri, callback)=>{ + const onClose = (ev)=>{ + if (ev.open) return; + callback(); + Wallet_messages/* WalletMessages.events.walletConnectQRCodeDialogUpdated.off */.R.events.walletConnectQRCodeDialogUpdated.off(onClose); + }; + Wallet_messages/* WalletMessages.events.walletConnectQRCodeDialogUpdated.on */.R.events.walletConnectQRCodeDialogUpdated.on(onClose); + Wallet_messages/* WalletMessages.events.walletConnectQRCodeDialogUpdated.sendToLocal */.R.events.walletConnectQRCodeDialogUpdated.sendToLocal({ + open: true, + uri + }); + }, + closeWalletConnectDialog: ()=>{ + Wallet_messages/* WalletMessages.events.walletConnectQRCodeDialogUpdated.sendToLocal */.R.events.walletConnectQRCodeDialogUpdated.sendToLocal({ + open: false + }); + }, + account: (0,shared_base_src/* createSubscriptionFromValueRef */._H)(settings/* currentMaskWalletAccountSettings */.T_), + chainId: (0,shared_base_src/* createSubscriptionFromValueRef */._H)(settings/* currentMaskWalletChainIdSettings */.DT), + wallets: (0,shared_base_src/* createSubscriptionFromAsync */.Fd)(()=>Wallet_messages/* WalletRPC.getWallets */.V.getWallets() + , shared_base_src/* EMPTY_LIST */.rP, Wallet_messages/* WalletMessages.events.walletsUpdated.on */.R.events.walletsUpdated.on), + walletPrimary: (0,shared_base_src/* createSubscriptionFromAsync */.Fd)(()=>Wallet_messages/* WalletRPC.getWalletPrimary */.V.getWalletPrimary() + , null, Wallet_messages/* WalletMessages.events.walletsUpdated.on */.R.events.walletsUpdated.on), + personaSignMessage: service/* default.Identity.signWithPersona */.ZP.Identity.signWithPersona, + updateAccount: Wallet_messages/* WalletRPC.updateMaskAccount */.V.updateMaskAccount, + resetAccount: Wallet_messages/* WalletRPC.resetMaskAccount */.V.resetMaskAccount, + selectAccount: Wallet_messages/* WalletRPC.selectMaskAccount */.V.selectMaskAccount, + signTransaction: Wallet_messages/* WalletRPC.signTransaction */.V.signTransaction, + signTypedData: Wallet_messages/* WalletRPC.signTypedData */.V.signTypedData, + signPersonalMessage: Wallet_messages/* WalletRPC.signPersonalMessage */.V.signPersonalMessage, + getWallets: Wallet_messages/* WalletRPC.getWallets */.V.getWallets, + getWalletPrimary: Wallet_messages/* WalletRPC.getWalletPrimary */.V.getWalletPrimary, + addWallet: Wallet_messages/* WalletRPC.updateWallet */.V.updateWallet, + updateWallet: Wallet_messages/* WalletRPC.updateWallet */.V.updateWallet, + removeWallet: Wallet_messages/* WalletRPC.removeWallet */.V.removeWallet +}; +function createSharedContext(pluginID, signal) { + return { + createKVStorage (type, defaultValues) { + if (type === 'memory') return shared/* InMemoryStorages.Plugin.createSubScope */.uU.Plugin.createSubScope(pluginID, defaultValues); + else return shared/* PersistentStorages.Plugin.createSubScope */._H.Plugin.createSubScope(pluginID, defaultValues); + }, + ...SharedContext + }; } -function getStorage() { - return storage.storage; +function createPluginHost(signal, createContext) { + const minimalMode = { + isEnabled: service/* default.Settings.getPluginMinimalModeEnabled */.ZP.Settings.getPluginMinimalModeEnabled, + events: new dist/* Emitter */.Q5() + }; + messages/* MaskMessages.events.pluginMinimalModeChanged.on */.q.events.pluginMinimalModeChanged.on(([id, val])=>minimalMode.events.emit(val ? 'enabled' : 'disabled', id) + , { + signal + }); + return { + signal, + minimalMode, + addI18NResource (plugin, resource) { + (0,shared_base_src/* createI18NBundle */.C9)(plugin, resource)(shared_base_src/* i18NextInstance */.BV); + }, + createContext + }; } /***/ }), -/***/ 47845: +/***/ 45915: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "u": () => (/* binding */ base) /* harmony export */ }); -/* harmony import */ var _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(79936); -/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(62481); - +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(29105); const base = { - ID: _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__/* .PluginId.External */ .je.External, + ID: _constants__WEBPACK_IMPORTED_MODULE_0__/* .ARTBLOCKS_PLUGIN_ID */ .g2, name: { - fallback: 'Mask External Plugin Loader' + fallback: _constants__WEBPACK_IMPORTED_MODULE_0__/* .PLUGIN_NAME */ .EW }, description: { - fallback: 'Able to load external plugins.' + fallback: 'Artblocks allow you to pick a style that you like, pay for the work, and a randomly generated version of the content is created by an algorithm and sent to your Ethereum account.' }, publisher: { name: { - fallback: 'Mask Network' + fallback: 'ArtBlocks' }, - link: 'https://mask.io/' + link: 'https://www.artblocks.io/' }, enableRequirement: { architecture: { - app: true, + app: false, web: true }, networks: { type: 'opt-out', networks: {} }, - target: _shared__WEBPACK_IMPORTED_MODULE_1__/* .Flags.mask_SDK_ready */ .vU.mask_SDK_ready ? 'stable' : 'insider' + target: 'stable' }, - experimentalMark: true + contribution: { + postContent: new Set([ + _constants__WEBPACK_IMPORTED_MODULE_0__/* .URL_PATTERN */ .lu + ]) + } }; /***/ }), -/***/ 29676: +/***/ 29105: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "u": () => (/* binding */ base) +/* harmony export */ "EW": () => (/* binding */ PLUGIN_NAME), +/* harmony export */ "GG": () => (/* binding */ ArtBlocksRopstenUrl), +/* harmony export */ "K0": () => (/* binding */ artBlocksHostnames), +/* harmony export */ "PO": () => (/* binding */ ArtBlocksRopstenSubgraphLink), +/* harmony export */ "ZJ": () => (/* binding */ artBlocksPathnameRegexMatcher), +/* harmony export */ "ZW": () => (/* binding */ ArtBlocksRopstenHostImageUrl), +/* harmony export */ "bD": () => (/* binding */ ArtBlocksMainnetUrl), +/* harmony export */ "ey": () => (/* binding */ ArtBlocksMainnetSubgraphLink), +/* harmony export */ "g2": () => (/* binding */ ARTBLOCKS_PLUGIN_ID), +/* harmony export */ "iQ": () => (/* binding */ ArtBlocksLogoUrl), +/* harmony export */ "lu": () => (/* binding */ URL_PATTERN), +/* harmony export */ "xE": () => (/* binding */ ArtBlocksMainnetHostImageUrl) /* harmony export */ }); -/* harmony import */ var _masknet_plugin_infra_web3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(67071); -/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(65506); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(64188); +/* unused harmony exports TESTNET_HOSTNAME, MAINNET_HOSTNAME, ArtBlocksMainnetLiveUrl, ArtBlocksRopstenLiveUrl */ +const ARTBLOCKS_PLUGIN_ID = 'io.artblocks'; +const PLUGIN_NAME = 'ArtBlocks'; +const TESTNET_HOSTNAME = 'artist-staging.artblocks.io'; +const MAINNET_HOSTNAME = 'www.artblocks.io'; +const artBlocksHostnames = [ + TESTNET_HOSTNAME, + MAINNET_HOSTNAME +]; +const artBlocksPathnameRegexMatcher = /^\/project\/(\d+)/; +const ArtBlocksLogoUrl = 'https://www.artblocks.io/_next/image?url=%2Fsquig.png&w=48&q=75'; +const ArtBlocksMainnetSubgraphLink = 'https://api.thegraph.com/subgraphs/name/artblocks/art-blocks'; +const ArtBlocksRopstenSubgraphLink = 'https://api.thegraph.com/subgraphs/name/artblocks/art-blocks-artist-staging'; +const ArtBlocksRopstenUrl = 'https://artist-staging.artblocks.io'; +const ArtBlocksMainnetUrl = 'https://artblocks.io'; +const URL_PATTERN = /https:\/\/(www.artblocks.io|artist-staging.artblocks.io)\/project\/(\d+)/; +const ArtBlocksMainnetHostImageUrl = 'https://artblocks-mainnet.s3.amazonaws.com'; +const ArtBlocksRopstenHostImageUrl = 'https://artblocks-artists-staging.s3.amazonaws.com'; +const ArtBlocksMainnetLiveUrl = 'https://generator.artblocks.io'; +const ArtBlocksRopstenLiveUrl = 'https://generator-staging.artblocks.io'; + + +/***/ }), + +/***/ 68442: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; + +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "u": () => (/* binding */ base) +}); + +// EXTERNAL MODULE: ./src/plugins/Avatar/constants.ts +var constants = __webpack_require__(80624); +;// CONCATENATED MODULE: ./src/plugins/Avatar/locales/en-US.json +const en_US_namespaceObject = JSON.parse('{"application_dialog_title":"NFT PFP","application_edit_profile_dialog_title":"Edit Profile","persona_set_nft":"Set NFT PFPs","persona_verification_failed":"NFT PFP verification failed","cancel":"Cancel","save":"Save","change":"Change","connect_your_wallet":"Connect your wallet","upload_avatar_failed_message":"Sorry, failed to save NFT Avatar. Please set again.","upload_avatar_success_message":"Update NFT Avatar Success!","collectible_not_found":"No collectible found.","add_collectible":"Add Collectibles","set_avatar_title":"Set NFT Avatar","set_PFP_title":"Set NFT PFP","wallet_settings":"Wallet settings","persona_hint":"Customize NFT experience by connecting social accounts. Enjoy Web2 with a whole new Web3 vibe.","copy_success_of_wallet_address":"Copy wallet address successfully!","copied":"Copied","collectible_on_polygon":"Only NFTs on Ethereum are supported to preview. We are currently
working on supporting Polygon NFTs as well.
Please add your collectibles here.","collectible_no_eth":"No any collectible is available to preview. Please add your collectible here.","collectible_no_collectible":"No any collectible is available to preview.","no_collectible_found":"No collectible found.","retry":"Retry","application_hint":"Socialize and show off your NFTs. People can bid,buy, view your valuable NFTs without leaving Twitter.","provider_by":"Provided by","downloading_image":"Downloading image...","saving":"Saving...","download_image_error":"Download image error","connect_wallet":"Please connect your wallet!","wallet_non_evm_warning":"The NFT PFP feature currently supports only EVM chains. Support for other
chains will be added in the future."}'); +;// CONCATENATED MODULE: ./src/plugins/Avatar/locales/ja-JP.json +const ja_JP_namespaceObject = {}; +;// CONCATENATED MODULE: ./src/plugins/Avatar/locales/ko-KR.json +const ko_KR_namespaceObject = {}; +;// CONCATENATED MODULE: ./src/plugins/Avatar/locales/qya-AA.json +const qya_AA_namespaceObject = JSON.parse('{"application_dialog_title":"crwdns16640:0crwdne16640:0","application_edit_profile_dialog_title":"crwdns16642:0crwdne16642:0","persona_set_nft":"crwdns16644:0crwdne16644:0","persona_verification_failed":"crwdns16646:0crwdne16646:0","cancel":"crwdns16648:0crwdne16648:0","save":"crwdns16650:0crwdne16650:0","change":"crwdns16652:0crwdne16652:0","connect_your_wallet":"crwdns16654:0crwdne16654:0","upload_avatar_failed_message":"crwdns16656:0crwdne16656:0","upload_avatar_success_message":"crwdns16658:0crwdne16658:0","collectible_not_found":"crwdns16660:0crwdne16660:0","add_collectible":"crwdns16662:0crwdne16662:0","set_avatar_title":"crwdns16664:0crwdne16664:0","set_PFP_title":"crwdns16666:0crwdne16666:0","wallet_settings":"crwdns16668:0crwdne16668:0","persona_hint":"crwdns16670:0crwdne16670:0","copy_success_of_wallet_address":"crwdns16672:0crwdne16672:0","copied":"crwdns16674:0crwdne16674:0","collectible_on_polygon":"crwdns16676:0crwdne16676:0","collectible_no_eth":"crwdns16678:0crwdne16678:0","collectible_no_collectible":"crwdns17230:0crwdne17230:0","no_collectible_found":"crwdns16680:0crwdne16680:0","retry":"crwdns16682:0crwdne16682:0","application_hint":"crwdns16684:0crwdne16684:0","provider_by":"crwdns16686:0crwdne16686:0","downloading_image":"crwdns17232:0crwdne17232:0","saving":"crwdns17234:0crwdne17234:0","download_image_error":"crwdns17236:0crwdne17236:0","connect_wallet":"crwdns17238:0crwdne17238:0","wallet_non_evm_warning":"crwdns16688:0crwdne16688:0"}'); +;// CONCATENATED MODULE: ./src/plugins/Avatar/locales/zh-CN.json +const zh_CN_namespaceObject = {}; +;// CONCATENATED MODULE: ./src/plugins/Avatar/locales/zh-TW.json +const zh_TW_namespaceObject = {}; +;// CONCATENATED MODULE: ./src/plugins/Avatar/locales/languages.ts +// This file is auto generated. DO NOT EDIT +// Run `npx gulp sync-languages` to regenerate. +// Default fallback language in a family of languages are chosen by the alphabet order +// To overwrite this, please overwrite packages/scripts/src/locale-kit-next/index.ts + + + + + + +const languages = { + en: en_US_namespaceObject, + ja: ja_JP_namespaceObject, + ko: ko_KR_namespaceObject, + qy: qya_AA_namespaceObject, + 'zh-CN': zh_CN_namespaceObject, + zh: zh_TW_namespaceObject +}; +// @ts-ignore +if (false) {} + +// EXTERNAL MODULE: ../plugin-infra/src/entry.ts +var entry = __webpack_require__(70226); +;// CONCATENATED MODULE: ./src/plugins/Avatar/base.ts const base = { - ID: _constants__WEBPACK_IMPORTED_MODULE_1__/* .FIND_TRUMAN_PLUGIN_ID */ .h4, + ID: constants/* PLUGIN_ID */.Uu, name: { - fallback: _constants__WEBPACK_IMPORTED_MODULE_1__/* .FIND_TRUMAN_PLUGIN_NAME */ .xB + fallback: 'Avatar' }, description: { - fallback: 'A plugin for https://findtruman.io/' + fallback: 'NFT Avatar.' }, publisher: { name: { - fallback: 'FindTruman' + fallback: 'Mask Network' }, - link: 'https://findtruman.io/' + link: 'https://mask.io/' }, enableRequirement: { architecture: { @@ -23917,136 +23667,86 @@ const base = { web: true }, networks: { - type: 'opt-out', - networks: {} - }, - target: 'stable', - web3: { - [_masknet_plugin_infra_web3__WEBPACK_IMPORTED_MODULE_0__/* .NetworkPluginID.PLUGIN_EVM */ .FF.PLUGIN_EVM]: { - supportedChainIds: [ - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Mainnet */ .a_.Mainnet, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.BSC */ .a_.BSC, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Matic */ .a_.Matic, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Arbitrum */ .a_.Arbitrum, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.xDai */ .a_.xDai, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Fantom */ .a_.Fantom, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Avalanche */ .a_.Avalanche, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Aurora */ .a_.Aurora, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Conflux */ .a_.Conflux, - ] - }, - [_masknet_plugin_infra_web3__WEBPACK_IMPORTED_MODULE_0__/* .NetworkPluginID.PLUGIN_FLOW */ .FF.PLUGIN_FLOW]: { - supportedChainIds: [] - }, - [_masknet_plugin_infra_web3__WEBPACK_IMPORTED_MODULE_0__/* .NetworkPluginID.PLUGIN_SOLANA */ .FF.PLUGIN_SOLANA]: { - supportedChainIds: [] + type: 'opt-in', + networks: { + [entry/* CurrentSNSNetwork.Twitter */.mv.Twitter]: true, + [entry/* CurrentSNSNetwork.Facebook */.mv.Facebook]: false, + [entry/* CurrentSNSNetwork.Instagram */.mv.Instagram]: false } - } + }, + target: 'stable' }, - contribution: { - postContent: new Set([ - /https:\/\/findtruman.io\/#\/(findtruman\/stories\/[\dA-Za-z]+(\/|\/(puzzles|polls|puzzle_result|poll_result)\/[\dA-Za-z]+\/?)?|encryption\?payload=.+)/, - ]) - } + i18n: languages }; /***/ }), -/***/ 64188: +/***/ 80624: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; - -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - "h4": () => (/* binding */ FIND_TRUMAN_PLUGIN_ID), - "xB": () => (/* binding */ FIND_TRUMAN_PLUGIN_NAME), - "Oh": () => (/* binding */ FindTruman_Const) -}); - -;// CONCATENATED MODULE: ./src/plugins/FindTruman/SNSAdaptor/ConstPromise.ts -var Status; -(function(Status) { - Status[Status["PENDING"] = 0] = "PENDING"; - Status[Status["FULFILLED"] = 1] = "FULFILLED"; - Status[Status["REJECTED"] = 2] = "REJECTED"; -})(Status || (Status = {})); -class FindTrumanConstPromise { - // eslint-disable-next-line unicorn/no-thenable - then(successCallback, failCallback) { - if (this.status === Status.FULFILLED) { - successCallback(this.value); - } else if (this.status === Status.REJECTED) { - failCallback?.(this.err); - } else { - this.successCallback.push(successCallback); - failCallback && this.failCallback.push(failCallback); - } - } - constructor(){ - this.init = (executor)=>{ - if (this.initialized) return; - this.initialized = true; - executor(this.resolve, this.reject); - }; - this.initialized = false; - this.status = Status.PENDING; - this.successCallback = []; - this.failCallback = []; - this.resolve = (value)=>{ - if (this.status !== Status.PENDING) return; - this.status = Status.FULFILLED; - this.value = value; - while(this.successCallback.length){ - const cb = this.successCallback.shift(); - cb?.(this.value); - } - }; - this.reject = (reason)=>{ - if (this.status !== Status.PENDING) return; - this.status = Status.REJECTED; - this.err = reason; - while(this.failCallback.length){ - const cb = this.failCallback.shift(); - cb?.(this.err); - } - }; - } -} - - -;// CONCATENATED MODULE: ./src/plugins/FindTruman/constants.ts - -const FIND_TRUMAN_PLUGIN_NAME = 'FindTruman'; -const FIND_TRUMAN_PLUGIN_ID = 'org.findtruman'; -const FindTruman_Const = new FindTrumanConstPromise(); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "$s": () => (/* binding */ NFT_AVATAR_DB_NAME), +/* harmony export */ "FQ": () => (/* binding */ SUPPORTED_CHAIN_IDS), +/* harmony export */ "U$": () => (/* binding */ Application_NFT_LIST_PAGE), +/* harmony export */ "Uu": () => (/* binding */ PLUGIN_ID), +/* harmony export */ "t5": () => (/* binding */ NFT_AVATAR_METADATA_STORAGE), +/* harmony export */ "vu": () => (/* binding */ RSS3_KEY_SNS) +/* harmony export */ }); +/* unused harmony exports NFT_AVATAR_JSON_SERVER, NFT_AVATAR_DB_NAME_STORAGE, PLUGIN_NAME, PLUGIN_DESCRIPTION */ +/* harmony import */ var _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(70226); +/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(72499); + + +const NFT_AVATAR_JSON_SERVER = 'https://configuration.r2d2.to/com.maskbook.avatar.json'; +const NFT_AVATAR_DB_NAME = 'com.maskbook.user'; +const NFT_AVATAR_DB_NAME_STORAGE = 'com.maskbook.user.storage'; +const NFT_AVATAR_METADATA_STORAGE = 'com.maskbook.avatar.metadata.storage'; +const PLUGIN_ID = _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__/* .PluginId.Avatar */ .je.Avatar; +const PLUGIN_NAME = 'Avatar'; +const PLUGIN_DESCRIPTION = 'NFT Avatar'; +var RSS3_KEY_SNS; +(function(RSS3_KEY_SNS) { + RSS3_KEY_SNS["TWITTER"] = '_nfts'; + RSS3_KEY_SNS["FACEBOOK"] = '_facebook_nfts'; + RSS3_KEY_SNS["INSTAGRAM"] = '_instagram_nfts'; +})(RSS3_KEY_SNS || (RSS3_KEY_SNS = {})); +var Application_NFT_LIST_PAGE; +(function(Application_NFT_LIST_PAGE) { + Application_NFT_LIST_PAGE["Application_nft_tab_eth_page"] = 'ETH'; + Application_NFT_LIST_PAGE["Application_nft_tab_polygon_page"] = 'Polygon'; +})(Application_NFT_LIST_PAGE || (Application_NFT_LIST_PAGE = {})); +const SUPPORTED_CHAIN_IDS = [ + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Mainnet */ .a_.Mainnet, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Matic */ .a_.Matic +]; /***/ }), -/***/ 16228: +/***/ 1854: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "u": () => (/* binding */ base) /* harmony export */ }); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(16192); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2658); const base = { ID: _constants__WEBPACK_IMPORTED_MODULE_0__/* .PLUGIN_ID */ .Uu, name: { - fallback: 'Furucombo' + fallback: _constants__WEBPACK_IMPORTED_MODULE_0__/* .PLUGIN_NAME */ .EW }, description: { - fallback: 'Furucombo is a tool built for end-users to optimize their DeFi strategy simply by drag and drop.' + fallback: _constants__WEBPACK_IMPORTED_MODULE_0__/* .PLUGIN_DESCRIPTION */ .PP }, publisher: { name: { - fallback: 'SebastianLF' + fallback: 'Mask Network' }, - link: 'https://github.com/SebastianLF' + link: 'https://mask.io/' }, enableRequirement: { architecture: { @@ -24061,7 +23761,9 @@ const base = { }, contribution: { postContent: new Set([ - /https:\/\/furucombo.app\/invest\/(pool|farm)\/(137|1)\/(0x\w+)/ + /opensea.io\/assets\/(0x[\dA-Fa-f]{40})\/(\d+)/, + /rarible.com\/token\/(0x[\dA-Fa-f]{40}):(\d+)/, + /zora.co\/collections\/(0x[\dA-Fa-f]{40})\/\d+$/, ]) } }; @@ -24069,46 +23771,78 @@ const base = { /***/ }), -/***/ 16192: +/***/ 2658: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "$h": () => (/* binding */ API_KEY), -/* harmony export */ "T5": () => (/* binding */ API_URL), +/* harmony export */ "$u": () => (/* binding */ zoraPathnameRegexMatcher), +/* harmony export */ "EW": () => (/* binding */ PLUGIN_NAME), +/* harmony export */ "Kl": () => (/* binding */ OpenSeaMainnetURL), +/* harmony export */ "Kr": () => (/* binding */ openseaHostnames), +/* harmony export */ "Ky": () => (/* binding */ OpenSeaTestnetURL), +/* harmony export */ "PP": () => (/* binding */ PLUGIN_DESCRIPTION), +/* harmony export */ "Pq": () => (/* binding */ openseaPathnameRegexMatcher), +/* harmony export */ "QG": () => (/* binding */ raribleHostnames), +/* harmony export */ "SP": () => (/* binding */ OpenSeaAPI_Key), /* harmony export */ "Uu": () => (/* binding */ PLUGIN_ID), -/* harmony export */ "_n": () => (/* binding */ BASE_URL) +/* harmony export */ "Zz": () => (/* binding */ RaribleUserURL), +/* harmony export */ "g5": () => (/* binding */ RaribleRopstenUserURL), +/* harmony export */ "i8": () => (/* binding */ RaribleRinkebyUserURL), +/* harmony export */ "lD": () => (/* binding */ rariblePathnameRegexMatcher), +/* harmony export */ "um": () => (/* binding */ PLUGIN_META_KEY), +/* harmony export */ "zR": () => (/* binding */ zoraHostnames) /* harmony export */ }); -/* harmony import */ var _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(79936); +/* unused harmony exports NullAddress, ReferrerAddress */ +/* harmony import */ var _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(70226); -const PLUGIN_ID = _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__/* .PluginId.Furucombo */ .je.Furucombo; -const API_KEY = 'EryftBXrpN4ZG6dViNQtM3uNomPQpeyvgW6El9h0'; -const API_URL = 'https://api.furucombo.app/v1/investables'; -const BASE_URL = 'https://furucombo.app/invest'; +const PLUGIN_NAME = 'Collectibles'; +const PLUGIN_DESCRIPTION = 'An NFT collectible viewer.'; +const PLUGIN_ID = _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__/* .PluginId.Collectible */ .je.Collectible; +const PLUGIN_META_KEY = `${_masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__/* .PluginId.Collectible */ .je.Collectible}:1`; +const openseaHostnames = [ + 'opensea.io', + 'testnets.opensea.io' +]; +const openseaPathnameRegexMatcher = /^\/assets\/(?:ethereum\/)?(0x[\dA-Fa-f]{40})\/(\d+)/; +const raribleHostnames = [ + 'rarible.com', + 'app.rarible.com', + 'ropsten.rarible.com' +]; +const rariblePathnameRegexMatcher = /^\/token\/(0x[\dA-Fa-f]{40}):(\d+)/; +const zoraHostnames = [ + 'zora.co' +]; +const zoraPathnameRegexMatcher = /^\/collections\/(0x[\dA-Fa-f]{40})\/(\d+)$/; +const OpenSeaAPI_Key = 'c38fe2446ee34f919436c32db480a2e3'; +const NullAddress = 'NullAddress'; +const ReferrerAddress = ''; +const OpenSeaMainnetURL = 'https://opensea.io'; +const OpenSeaTestnetURL = 'https://testnets.opensea.io'; +const RaribleUserURL = 'https://rarible.com/user/'; +const RaribleRopstenUserURL = 'https://ropsten.rarible.com/user/'; +const RaribleRinkebyUserURL = 'https://rinkeby.rarible.com/user/'; /***/ }), -/***/ 76659: +/***/ 60268: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "u": () => (/* binding */ base) /* harmony export */ }); -/* harmony import */ var _masknet_plugin_infra_web3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(67071); -/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(65506); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(62181); - - +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(92890); const base = { - ID: _constants__WEBPACK_IMPORTED_MODULE_1__/* .PLUGIN_ID */ .Uu, + ID: _constants__WEBPACK_IMPORTED_MODULE_0__/* .PLUGIN_ID */ .Uu, name: { - fallback: _constants__WEBPACK_IMPORTED_MODULE_1__/* .PLUGIN_NAME */ .EW + fallback: _constants__WEBPACK_IMPORTED_MODULE_0__/* .PLUGIN_NAME */ .EW }, description: { - fallback: _constants__WEBPACK_IMPORTED_MODULE_1__/* .PLUGIN_DESCRIPTION */ .PP + fallback: _constants__WEBPACK_IMPORTED_MODULE_0__/* .PLUGIN_DESCRIPTION */ .PP }, publisher: { name: { @@ -24125,27 +23859,11 @@ const base = { type: 'opt-out', networks: {} }, - target: 'stable', - web3: { - [_masknet_plugin_infra_web3__WEBPACK_IMPORTED_MODULE_0__/* .NetworkPluginID.PLUGIN_EVM */ .FF.PLUGIN_EVM]: { - supportedChainIds: [ - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Mainnet */ .a_.Mainnet, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Rinkeby */ .a_.Rinkeby, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Matic */ .a_.Matic, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Mumbai */ .a_.Mumbai - ] - }, - [_masknet_plugin_infra_web3__WEBPACK_IMPORTED_MODULE_0__/* .NetworkPluginID.PLUGIN_FLOW */ .FF.PLUGIN_FLOW]: { - supportedChainIds: [] - }, - [_masknet_plugin_infra_web3__WEBPACK_IMPORTED_MODULE_0__/* .NetworkPluginID.PLUGIN_SOLANA */ .FF.PLUGIN_SOLANA]: { - supportedChainIds: [] - } - } + target: 'stable' }, contribution: { postContent: new Set([ - /https:\/\/gitcoin.co\/grants\/\d+/ + /https:\/\/cryptoart.ai\/gallery\/detail/ ]) } }; @@ -24153,7 +23871,7 @@ const base = { /***/ }), -/***/ 62181: +/***/ 92890: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; @@ -24161,22 +23879,360 @@ const base = { /* harmony export */ "EW": () => (/* binding */ PLUGIN_NAME), /* harmony export */ "PP": () => (/* binding */ PLUGIN_DESCRIPTION), /* harmony export */ "Uu": () => (/* binding */ PLUGIN_ID), -/* harmony export */ "tq": () => (/* binding */ GITCOIN_API_GRANTS_V1), -/* harmony export */ "um": () => (/* binding */ PLUGIN_META_KEY) +/* harmony export */ "aM": () => (/* binding */ testNetwork), +/* harmony export */ "f3": () => (/* binding */ mainNetwork), +/* harmony export */ "oO": () => (/* binding */ prefixPath) /* harmony export */ }); -/* harmony import */ var _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(79936); +/* harmony import */ var _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(70226); +/* harmony import */ var _masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(67938); +/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(36596); +/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(72499); -const PLUGIN_ID = _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__/* .PluginId.Gitcoin */ .je.Gitcoin; -const PLUGIN_META_KEY = `${_masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__/* .PluginId.Gitcoin */ .je.Gitcoin}:1`; -const PLUGIN_NAME = 'Gitcoin'; -const PLUGIN_DESCRIPTION = 'Gitcoin grants sustain web3 projects with quadratic funding.'; -// proxy for: https://gitcoin.co/grants/v1/api/grant/ -const GITCOIN_API_GRANTS_V1 = 'https://gitcoin-agent.r2d2.to/grants/v1/api/grant/:id'; + + +const PLUGIN_NAME = 'CRYPTOART.AI'; +const PLUGIN_DESCRIPTION = 'The decentralized world of CryptoArt.'; +const PLUGIN_ID = _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__/* .PluginId.CryptoArtAI */ .je.CryptoArtAI; +const prefixPath = '/gallery/detail'; +const mainNetwork = { + contractAddress: '0x3AD503084f1bD8d15A7F5EbE7A038C064e1E3Fa1', + hostname: 'cryptoart.ai', + endpoint: 'https://api.cryptoart.ai', + paymentToken: { + id: _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ZERO_ADDRESS */ .r, + schema: _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .SchemaType.Native */ .XQ.Native, + type: _masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .TokenType.Fungible */ .iv.Fungible, + chainId: _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Mainnet */ .a_.Mainnet, + address: _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ZERO_ADDRESS */ .r, + decimals: 18, + name: 'Ether', + symbol: 'ETH' + } +}; +const testNetwork = { + contractAddress: '0x54395e6c737734D3de29Fc62C10a3ed51eFA2E8A', + hostname: 'testweb.cryptoart.ai', + endpoint: 'https://apitest.cryptoart.ai', + paymentToken: { + id: _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ZERO_ADDRESS */ .r, + schema: _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .SchemaType.Native */ .XQ.Native, + type: _masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .TokenType.Fungible */ .iv.Fungible, + chainId: _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Kovan */ .a_.Kovan, + address: _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ZERO_ADDRESS */ .r, + decimals: 18, + name: 'Kovan Ether', + symbol: 'KOV' + } +}; + + +/***/ }), + +/***/ 74119: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "u": () => (/* binding */ base) +/* harmony export */ }); +/* harmony import */ var _masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(67938); +/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(72499); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(67681); + + + +const base = { + ID: _constants__WEBPACK_IMPORTED_MODULE_1__/* .FIND_TRUMAN_PLUGIN_ID */ .h4, + name: { + fallback: _constants__WEBPACK_IMPORTED_MODULE_1__/* .FIND_TRUMAN_PLUGIN_NAME */ .xB + }, + description: { + fallback: 'A plugin for https://findtruman.io/' + }, + publisher: { + name: { + fallback: 'FindTruman' + }, + link: 'https://findtruman.io/' + }, + enableRequirement: { + architecture: { + app: true, + web: true + }, + networks: { + type: 'opt-out', + networks: {} + }, + target: 'stable', + web3: { + [_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .NetworkPluginID.PLUGIN_EVM */ .FF.PLUGIN_EVM]: { + supportedChainIds: [ + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Mainnet */ .a_.Mainnet + ] + }, + [_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .NetworkPluginID.PLUGIN_FLOW */ .FF.PLUGIN_FLOW]: { + supportedChainIds: [] + }, + [_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .NetworkPluginID.PLUGIN_SOLANA */ .FF.PLUGIN_SOLANA]: { + supportedChainIds: [] + } + } + }, + contribution: { + postContent: new Set([ + /https:\/\/findtruman.io\/#\/(findtruman\/stories\/[\dA-Za-z]+(\/|\/(puzzles|polls|puzzle_result|poll_result)\/[\dA-Za-z]+\/?)?|encryption\?payload=.+)/, + ]) + } +}; + + +/***/ }), + +/***/ 67681: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; + +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "h4": () => (/* binding */ FIND_TRUMAN_PLUGIN_ID), + "xB": () => (/* binding */ FIND_TRUMAN_PLUGIN_NAME), + "Oh": () => (/* binding */ FindTruman_Const) +}); + +;// CONCATENATED MODULE: ./src/plugins/FindTruman/SNSAdaptor/ConstPromise.ts +var Status; +(function(Status) { + Status[Status["PENDING"] = 0] = "PENDING"; + Status[Status["FULFILLED"] = 1] = "FULFILLED"; + Status[Status["REJECTED"] = 2] = "REJECTED"; +})(Status || (Status = {})); +class FindTrumanConstPromise { + // eslint-disable-next-line unicorn/no-thenable + then(successCallback, failCallback) { + if (this.status === Status.FULFILLED) { + successCallback(this.value); + } else if (this.status === Status.REJECTED) { + failCallback?.(this.err); + } else { + this.successCallback.push(successCallback); + failCallback && this.failCallback.push(failCallback); + } + } + constructor(){ + this.init = (executor)=>{ + if (this.initialized) return; + this.initialized = true; + executor(this.resolve, this.reject); + }; + this.initialized = false; + this.status = Status.PENDING; + this.successCallback = []; + this.failCallback = []; + this.resolve = (value)=>{ + if (this.status !== Status.PENDING) return; + this.status = Status.FULFILLED; + this.value = value; + while(this.successCallback.length){ + const cb = this.successCallback.shift(); + cb?.(this.value); + } + }; + this.reject = (reason)=>{ + if (this.status !== Status.PENDING) return; + this.status = Status.REJECTED; + this.err = reason; + while(this.failCallback.length){ + const cb = this.failCallback.shift(); + cb?.(this.err); + } + }; + } +} + + +;// CONCATENATED MODULE: ./src/plugins/FindTruman/constants.ts + +const FIND_TRUMAN_PLUGIN_NAME = 'FindTruman'; +const FIND_TRUMAN_PLUGIN_ID = 'org.findtruman'; +const FindTruman_Const = new FindTrumanConstPromise(); + + +/***/ }), + +/***/ 4030: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "u": () => (/* binding */ base) +/* harmony export */ }); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(30214); + +const base = { + ID: _constants__WEBPACK_IMPORTED_MODULE_0__/* .PLUGIN_ID */ .Uu, + name: { + fallback: 'Furucombo' + }, + description: { + fallback: 'Furucombo is a tool built for end-users to optimize their DeFi strategy simply by drag and drop.' + }, + publisher: { + name: { + fallback: 'SebastianLF' + }, + link: 'https://github.com/SebastianLF' + }, + enableRequirement: { + architecture: { + app: true, + web: true + }, + networks: { + type: 'opt-out', + networks: {} + }, + target: 'stable' + }, + contribution: { + postContent: new Set([ + /https:\/\/furucombo.app\/invest\/(pool|farm)\/(137|1)\/(0x\w+)/ + ]) + } +}; + + +/***/ }), + +/***/ 30214: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "$h": () => (/* binding */ API_KEY), +/* harmony export */ "T5": () => (/* binding */ API_URL), +/* harmony export */ "Uu": () => (/* binding */ PLUGIN_ID), +/* harmony export */ "_n": () => (/* binding */ BASE_URL) +/* harmony export */ }); +/* harmony import */ var _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(70226); + +const PLUGIN_ID = _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__/* .PluginId.Furucombo */ .je.Furucombo; +const API_KEY = 'EryftBXrpN4ZG6dViNQtM3uNomPQpeyvgW6El9h0'; +const API_URL = 'https://api.furucombo.app/v1/investables'; +const BASE_URL = 'https://furucombo.app/invest'; /***/ }), -/***/ 5493: +/***/ 83546: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; + +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "u": () => (/* binding */ base) +}); + +// EXTERNAL MODULE: ./src/plugins/Gitcoin/constants.ts +var constants = __webpack_require__(22256); +;// CONCATENATED MODULE: ./src/plugins/Gitcoin/locales/en-US.json +const en_US_namespaceObject = JSON.parse('{"name":"Gitcoin","description":"Display specific information of Gitcoin projects, donate to a project directly on social media.","promote":"Share or browse Gitcoin projects you have donated or interested in.","select_a_token":"Select a token","grant_not_available":"Grant not available","enter_an_amount":"Enter an amount","insufficient_balance":"Insufficient {{symbol}} balance","gitcoin_readme":"By using this service, you will also be contributing 5% of your contribution to the Gitcoin grants development fund.","donate":"Donate","last_updated":"Last update:","by":"By","view_on":"View on Gitcoin","readme_fund_link":"https://gitcoin.co/grants/86/gitcoin-sustainability-fund","account_promote$default":"","account_promote$twitter":"Follow @$t(mask:twitter_account) (mask.io) to donate Gitcoin grants","account_promote$facebook":"Follow @$t(mask:facebook_account) (mask.io) to donate Gitcoin grants","share_text":"I just donated {{title}} with {{balance}} {{symbol}}.\\n{{account_promote}}\\n$t(promote)\\n$t(mask:hash_tag)\\n{{link}}"}'); +;// CONCATENATED MODULE: ./src/plugins/Gitcoin/locales/ja-JP.json +const ja_JP_namespaceObject = JSON.parse('{"select_a_token":"トークンを選択する","grant_not_available":"Grantは有効ではありません","enter_an_amount":"量を決める","insufficient_balance":"{{symbol}} の残高が足りません","gitcoin_readme":"このサービスを利用するにあたり、寄付金額の 5% が Gitcoin grants development fund に寄付されます","donate":"寄付する","last_updated":"最新の更新:","view_on":"Gitcoin で見る"}'); +;// CONCATENATED MODULE: ./src/plugins/Gitcoin/locales/ko-KR.json +const ko_KR_namespaceObject = JSON.parse('{"select_a_token":"토큰 선택","grant_not_available":"이용 불가","enter_an_amount":"수액 입력","insufficient_balance":"{{symbol}} 잔액 부족","gitcoin_readme":"이 서비스를 이용하면 Gitcoin 개발 기금에 당신의 기여금의 5%를 기부할 것이다.","donate":"기부","last_updated":"신규 업데이트","view_on":"Gitcoin에서 보기"}'); +;// CONCATENATED MODULE: ./src/plugins/Gitcoin/locales/qya-AA.json +const qya_AA_namespaceObject = JSON.parse('{"name":"crwdns16706:0crwdne16706:0","description":"crwdns16708:0crwdne16708:0","promote":"crwdns16710:0crwdne16710:0","select_a_token":"crwdns16712:0crwdne16712:0","grant_not_available":"crwdns16714:0crwdne16714:0","enter_an_amount":"crwdns16716:0crwdne16716:0","insufficient_balance":"crwdns16718:0{{symbol}}crwdne16718:0","gitcoin_readme":"crwdns16720:0crwdne16720:0","donate":"crwdns16722:0crwdne16722:0","last_updated":"crwdns16724:0crwdne16724:0","by":"crwdns16726:0crwdne16726:0","view_on":"crwdns16728:0crwdne16728:0","readme_fund_link":"crwdns16730:0crwdne16730:0","account_promote$default":"crwdns17276:0crwdne17276:0","account_promote$twitter":"crwdns17278:0$t(mask:twitter_account)crwdne17278:0","account_promote$facebook":"crwdns17280:0$t(mask:facebook_account)crwdne17280:0","share_text":"crwdns17282:0{{title}}crwdnd17282:0{{balance}}crwdnd17282:0{{symbol}}crwdnd17282:0{{account_promote}}crwdnd17282:0$t(promote)crwdnd17282:0$t(mask:hash_tag)crwdnd17282:0{{link}}crwdne17282:0"}'); +;// CONCATENATED MODULE: ./src/plugins/Gitcoin/locales/zh-CN.json +const zh_CN_namespaceObject = JSON.parse('{"name":"Gitcoin","promote":"分享或浏览曾经捐助过或感兴趣的 Gitcoin 项目。","select_a_token":"选择代币","grant_not_available":"授权不可用","enter_an_amount":"输入数额","gitcoin_readme":"通过使用此服务,您将同时向 Gitcoin grants development fund 捐赠您5%捐款。","donate":"捐赠","last_updated":"最新更新:","by":"提供者为:","view_on":"在 Gitcoin 上查看","readme_fund_link":"https://gitcoin.co/grants/86/gitcoin-sustainability-fund"}'); +;// CONCATENATED MODULE: ./src/plugins/Gitcoin/locales/zh-TW.json +const zh_TW_namespaceObject = JSON.parse('{"select_a_token":"選擇一個代幣","enter_an_amount":"輸入一個金額","insufficient_balance":"{{symbol}} 餘額不足","gitcoin_readme":"通過使用此服務,您還將向 Gitcoin grants development fund 捐款 5%","donate":"捐款","last_updated":"最近更新:","by":"提供者為","view_on":"在 Gitcoin 觀看"}'); +;// CONCATENATED MODULE: ./src/plugins/Gitcoin/locales/languages.ts +// This file is auto generated. DO NOT EDIT +// Run `npx gulp sync-languages` to regenerate. +// Default fallback language in a family of languages are chosen by the alphabet order +// To overwrite this, please overwrite packages/scripts/src/locale-kit-next/index.ts + + + + + + +const languages = { + en: en_US_namespaceObject, + ja: ja_JP_namespaceObject, + ko: ko_KR_namespaceObject, + qy: qya_AA_namespaceObject, + 'zh-CN': zh_CN_namespaceObject, + zh: zh_TW_namespaceObject +}; +// @ts-ignore +if (false) {} + +;// CONCATENATED MODULE: ./src/plugins/Gitcoin/base.ts + + +const base = { + ID: constants/* PLUGIN_ID */.Uu, + name: { + fallback: constants/* PLUGIN_NAME */.EW + }, + description: { + fallback: constants/* PLUGIN_DESCRIPTION */.PP + }, + publisher: { + name: { + fallback: 'Mask Network' + }, + link: 'https://mask.io/' + }, + enableRequirement: { + architecture: { + app: true, + web: true + }, + networks: { + type: 'opt-out', + networks: {} + }, + target: 'stable' + }, + contribution: { + postContent: new Set([ + /https:\/\/gitcoin.co\/grants\/\d+/ + ]) + }, + i18n: languages +}; + + +/***/ }), + +/***/ 22256: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "EW": () => (/* binding */ PLUGIN_NAME), +/* harmony export */ "PP": () => (/* binding */ PLUGIN_DESCRIPTION), +/* harmony export */ "Uu": () => (/* binding */ PLUGIN_ID), +/* harmony export */ "tq": () => (/* binding */ GITCOIN_API_GRANTS_V1), +/* harmony export */ "um": () => (/* binding */ PLUGIN_META_KEY) +/* harmony export */ }); +/* harmony import */ var _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(70226); + +const PLUGIN_ID = _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__/* .PluginId.Gitcoin */ .je.Gitcoin; +const PLUGIN_META_KEY = `${_masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__/* .PluginId.Gitcoin */ .je.Gitcoin}:1`; +const PLUGIN_NAME = 'Gitcoin'; +const PLUGIN_DESCRIPTION = 'Gitcoin grants sustain web3 projects with quadratic funding.'; +const GITCOIN_API_GRANTS_V1 = 'https://gitcoin.co/grants/v1/api/grant/:id/'; + + +/***/ }), + +/***/ 89355: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; @@ -24187,7 +24243,7 @@ __webpack_require__.d(__webpack_exports__, { }); // EXTERNAL MODULE: ../plugin-infra/src/entry.ts -var entry = __webpack_require__(79936); +var entry = __webpack_require__(70226); ;// CONCATENATED MODULE: ./src/plugins/GoodGhosting/constants.ts const PLUGIN_ID = entry/* PluginId.GoodGhosting */.je.GoodGhosting; @@ -24231,16 +24287,16 @@ const base = { /***/ }), -/***/ 1725: +/***/ 69690: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "u": () => (/* binding */ base) /* harmony export */ }); -/* harmony import */ var _masknet_plugin_infra_web3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(67071); -/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(65506); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(22668); +/* harmony import */ var _masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(67938); +/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(72499); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(83072); @@ -24269,7 +24325,7 @@ const base = { }, target: 'stable', web3: { - [_masknet_plugin_infra_web3__WEBPACK_IMPORTED_MODULE_0__/* .NetworkPluginID.PLUGIN_EVM */ .FF.PLUGIN_EVM]: { + [_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .NetworkPluginID.PLUGIN_EVM */ .FF.PLUGIN_EVM]: { supportedChainIds: [ _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Mainnet */ .a_.Mainnet, _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.BSC */ .a_.BSC, @@ -24278,13 +24334,14 @@ const base = { _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.xDai */ .a_.xDai, _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Aurora */ .a_.Aurora, _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Avalanche */ .a_.Avalanche, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Fantom */ .a_.Fantom, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Fantom */ .a_.Fantom, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Harmony */ .a_.Harmony, ] }, - [_masknet_plugin_infra_web3__WEBPACK_IMPORTED_MODULE_0__/* .NetworkPluginID.PLUGIN_FLOW */ .FF.PLUGIN_FLOW]: { + [_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .NetworkPluginID.PLUGIN_FLOW */ .FF.PLUGIN_FLOW]: { supportedChainIds: [] }, - [_masknet_plugin_infra_web3__WEBPACK_IMPORTED_MODULE_0__/* .NetworkPluginID.PLUGIN_SOLANA */ .FF.PLUGIN_SOLANA]: { + [_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .NetworkPluginID.PLUGIN_SOLANA */ .FF.PLUGIN_SOLANA]: { supportedChainIds: [] } } @@ -24300,7 +24357,7 @@ const base = { /***/ }), -/***/ 22668: +/***/ 83072: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; @@ -24317,7 +24374,7 @@ const base = { /* harmony export */ "uJ": () => (/* binding */ ITO_MetaKey_1), /* harmony export */ "yV": () => (/* binding */ ITO_PluginID) /* harmony export */ }); -/* harmony import */ var _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(79936); +/* harmony import */ var _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(70226); const ITO_PluginID = _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__/* .PluginId.ITO */ .je.ITO; const ITO_MetaKey_1 = `${_masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__/* .PluginId.ITO */ .je.ITO}:1`; @@ -24339,7 +24396,7 @@ const MSG_DELIMITER = '2c1aca02'; /***/ }), -/***/ 63867: +/***/ 98580: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; @@ -24367,7 +24424,7 @@ const languages = { }; // EXTERNAL MODULE: ./src/plugins/MaskBox/constants.ts -var constants = __webpack_require__(36420); +var constants = __webpack_require__(64373); ;// CONCATENATED MODULE: ./src/plugins/MaskBox/base.ts @@ -24409,7 +24466,7 @@ const base = { /***/ }), -/***/ 36420: +/***/ 64373: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; @@ -24418,7 +24475,7 @@ const base = { /* harmony export */ "Uu": () => (/* binding */ PLUGIN_ID), /* harmony export */ "mN": () => (/* binding */ MERKLE_PROOF_ENDPOINT) /* harmony export */ }); -/* harmony import */ var _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(79936); +/* harmony import */ var _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(70226); const PLUGIN_ID = _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__/* .PluginId.MaskBox */ .je.MaskBox; const RSS3_ENDPOINT = 'https://hub.pass3.me'; @@ -24427,7 +24484,7 @@ const MERKLE_PROOF_ENDPOINT = 'https://lf8d031acj.execute-api.ap-east-1.amazonaw /***/ }), -/***/ 75611: +/***/ 13304: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; @@ -24438,25 +24495,25 @@ __webpack_require__.d(__webpack_exports__, { }); // EXTERNAL MODULE: ../plugin-infra/src/entry.ts -var entry = __webpack_require__(79936); -// EXTERNAL MODULE: ../plugin-infra/src/entry-web3.ts -var entry_web3 = __webpack_require__(67071); +var entry = __webpack_require__(70226); +// EXTERNAL MODULE: ../web3-shared/base/src/index.ts + 1 modules +var src = __webpack_require__(67938); // EXTERNAL MODULE: ../web3-shared/evm/types/index.ts -var types = __webpack_require__(65506); +var types = __webpack_require__(72499); // EXTERNAL MODULE: ./src/plugins/NextID/constants.ts -var constants = __webpack_require__(6736); +var constants = __webpack_require__(27707); ;// CONCATENATED MODULE: ./src/plugins/NextID/locales/en-US.json -const en_US_namespaceObject = JSON.parse('{"wallet":"Wallet","persona":"Persona","unsupported_network":"Unsupported Network","connect_wallet__other_user_tip_intro":"Wallets not found.","connect_wallet_other_user_tip1":"1. Switch to the user’s tweets page and back.","connect_wallet_other_user_tip2":"2. Invite the user to install the Mask extension and post a verification tweet.","connect_wallet_other_user_instruction":"The user might have not connected wallets yet. You can try as following:","connect_wallet_tip":"In this Web 3 section, you can show your address for receiving tips, your NFT collection, donation records, and other on-chain information to friends who have installed Mask Network.","verify_wallet_intro":"Verify your wallet here.","verify_wallet":"In the Web3 tab, you can show your wallet addresses for receiving tips, NFT collections, donation records, and other on-chain feeds to friends who have also installed the Mask extension.","verify_Twitter_ID_intro":"Verify your Twitter ID here.","verify_Twitter_ID":"You can verify your Twitter ID with Next.ID to enhance your Web3 experience.","verify_other_Twitter_ID_intro":"This user has not connected wallets here.","verify_Twitter_ID_button":"Verify your Twitter ID","verify_wallet_button":"Verify your wallet","add_wallet_button":"Add wallet","verify_wallet_dialog_title":"Verify your wallet","bind_wallet_bound_error":"This wallet address has already been connected.","unbind_wallet_same_account_error":"Please switch to the address that you want to disconnect.","unbind_dialog_title":"Disconnect wallet","persona_sign":"Persona Sign","wallet_sign":"Wallet Sign","copied":"copied","view_on_explorer":"View on explorer","notify_persona_sign":"Persona Sign","notify_persona_sign_confirm":"Confirm this sign in your Personas","notify_persona_sign_cancel":"Your wallet cancelled the sign","notify_wallet_sign":"Wallet Sign","notify_wallet_sign_confirm":"Confirm this transaction in your wallet.","notify_wallet_sign_cancel":"Wallet sign cancelled.","notify_wallet_sign_request_title":"Wallet Sign","notify_wallet_sign_request_success":"Wallet sign succeeded.","notify_wallet_sign_request_failed":"Wallet sign failed.","create_persona":"Create Persona","connect_persona":"Connect Persona","please_create_persona":"Please create persona","please_connect_persona":"Please connect persona","unbind_persona_tip":"Choose either your Persona or the currently connected wallet to sign to disconnect.","unbind_wallet_tip":"Choose either your Persona or the currently connected wallet to sign to disconnect.","done":"Done","confirm":"Confirm","cancel":"Cancel","delete":"Delete","copy_success_of_wallet_address":"Copy wallet address successfully!","disconnect_warning":"This wallet will no longer show up in your web 3 profile page. Your Mask friends can no longer give tips to this wallet, or browse NFTs, donations and other on-chain information of this address.","tips":"Tips","tip_to":"To","token_insufficient_balance":"Insufficient balance","tip_type_token":"Token","tip_type_nft":"NFT","tip_wallets_missed":"Wallets not found.","send_tip":"Send","sending_tip":"Sending...","nft_not_belong_to_you":"The collectible doesn\'t exist or belong to you.","send_tip_successfully":"Sent tip successfully.","send_specific_tip_successfully":"Sent {{amount}} {{name}} tip successfully.","tip_share":"Share","tip_connect_wallet_message":"Please connect to a wallet.","tip_connect_wallet":"Connect Wallet","search":"Search","tip_contracts":"Contracts","tip_mask_promote":"Install https://mask.io/download-links to send your first tip.","tip_token_share_post":"I just tipped {{amount}} {{symbol}} to @{{recipientSnsId}}\'s wallet address {{recipient}}\\n\\n{{promote}}","tip_nft_share_post":"I just tipped a {{name}} to @{{recipientSnsId}}\'s wallet address {{recipient}}\\n\\n{{promote}}","tip_add":"Add","tip_adding":"Adding","tip_add_collectibles":"Add Collectibles","tip_add_collectibles_contract_address":"Input contract address","tip_add_collectibles_token_id":"Token ID","tip_add_collectibles_error":"The contract address is incorrect or the collectible does not belong to you.","tip_loading":"Loading","tip_empty_nft":"No any collectible is available to preview. Please add your collectible here."}'); +const en_US_namespaceObject = JSON.parse('{"wallet":"Wallet","persona":"Persona","unsupported_network":"Unsupported Network","connect_wallet__other_user_tip_intro":"Wallets not found.","connect_wallet_other_user_tip1":"1. Switch to the user’s tweets page and back.","connect_wallet_other_user_tip2":"2. Invite the user to install the Mask extension and post a verification tweet.","connect_wallet_other_user_instruction":"The user might have not connected wallets yet. You can try as following:","connect_wallet_tip":"In this Web 3 section, you can show your address for receiving tips, your NFT collection, donation records, and other on-chain information to friends who have installed Mask Network.","verify_wallet_intro":"Verify your wallet here.","verify_wallet":"In the Web3 tab, you can show your wallet addresses for receiving tips, NFT collections, donation records, and other on-chain feeds to friends who have also installed the Mask extension.","verify_Twitter_ID_intro":"Verify your Twitter ID here.","verify_Twitter_ID":"You can verify your Twitter ID with Next.ID to enhance your Web3 experience.","verify_other_Twitter_ID_intro":"This user has not connected wallets here.","verify_Twitter_ID_button":"Verify your Twitter ID","verify_wallet_button":"Verify your wallet","add_wallet_button":"Add wallet","verify_wallet_dialog_title":"Verify your wallet","bind_wallet_bound_error":"This wallet address has already been connected.","unbind_wallet_same_account_error":"Please switch to the address that you want to disconnect.","unbind_dialog_title":"Disconnect Wallet","persona_sign":"Persona Sign","wallet_sign":"Wallet Sign","copied":"copied","view_on_explorer":"View on explorer","notify_persona_sign":"Persona Sign","notify_persona_sign_confirm":"Confirm this sign in your Personas","notify_persona_sign_cancel":"Your wallet cancelled the sign","notify_wallet_sign":"Wallet Sign","notify_wallet_sign_confirm":"Confirm this transaction in your wallet.","notify_wallet_sign_cancel":"Wallet sign cancelled.","notify_wallet_sign_request_title":"Wallet Sign","notify_wallet_sign_request_success":"Wallet sign succeeded.","notify_wallet_sign_request_failed":"Wallet sign failed.","create_persona":"Create Persona","connect_persona":"Connect Persona","please_create_persona":"Please create persona","please_connect_persona":"Please connect persona","unbind_persona_tip":"Choose either your Persona or the currently connected wallet to sign to disconnect.","unbind_wallet_tip":"Choose either your Persona or the currently connected wallet to sign to disconnect.","done":"Done","confirm":"Confirm","cancel":"Cancel","delete":"Delete","copy_success_of_wallet_address":"Copy wallet address successfully!","disconnect_warning":"This wallet will no longer show up in your web 3 profile page. Your Mask friends can no longer give tips to this wallet, or browse NFTs, donations and other on-chain information of this address.","tips":"Tips","token_insufficient_balance":"Insufficient balance","sending_tip":"Sending...","nft_not_belong_to_you":"The collectible doesn\'t exist or belong to you.","send_tip_successfully":"Sent tip successfully.","send_specific_tip_successfully":"Sent {{amount}} {{name}} tip successfully.","search":"Search"}'); ;// CONCATENATED MODULE: ./src/plugins/NextID/locales/ja-JP.json const ja_JP_namespaceObject = {}; ;// CONCATENATED MODULE: ./src/plugins/NextID/locales/ko-KR.json const ko_KR_namespaceObject = {}; ;// CONCATENATED MODULE: ./src/plugins/NextID/locales/qya-AA.json -const qya_AA_namespaceObject = JSON.parse('{"wallet":"crwdns13073:0crwdne13073:0","persona":"crwdns13075:0crwdne13075:0","unsupported_network":"crwdns13077:0crwdne13077:0","connect_wallet__other_user_tip_intro":"crwdns13225:0crwdne13225:0","connect_wallet_other_user_tip1":"crwdns14726:0crwdne14726:0","connect_wallet_other_user_tip2":"crwdns14728:0crwdne14728:0","connect_wallet_other_user_instruction":"crwdns14730:0crwdne14730:0","connect_wallet_tip":"crwdns13081:0crwdne13081:0","verify_wallet_intro":"crwdns14732:0crwdne14732:0","verify_wallet":"crwdns14734:0crwdne14734:0","verify_Twitter_ID_intro":"crwdns14736:0crwdne14736:0","verify_Twitter_ID":"crwdns14738:0crwdne14738:0","verify_other_Twitter_ID_intro":"crwdns14740:0crwdne14740:0","verify_Twitter_ID_button":"crwdns14742:0crwdne14742:0","verify_wallet_button":"crwdns13083:0crwdne13083:0","add_wallet_button":"crwdns13085:0crwdne13085:0","verify_wallet_dialog_title":"crwdns13087:0crwdne13087:0","bind_wallet_bound_error":"crwdns13089:0crwdne13089:0","unbind_wallet_same_account_error":"crwdns13091:0crwdne13091:0","unbind_dialog_title":"crwdns13093:0crwdne13093:0","persona_sign":"crwdns13095:0crwdne13095:0","wallet_sign":"crwdns13097:0crwdne13097:0","copied":"crwdns13099:0crwdne13099:0","view_on_explorer":"crwdns13101:0crwdne13101:0","notify_persona_sign":"crwdns13103:0crwdne13103:0","notify_persona_sign_confirm":"crwdns13105:0crwdne13105:0","notify_persona_sign_cancel":"crwdns13107:0crwdne13107:0","notify_wallet_sign":"crwdns13109:0crwdne13109:0","notify_wallet_sign_confirm":"crwdns13111:0crwdne13111:0","notify_wallet_sign_cancel":"crwdns13113:0crwdne13113:0","notify_wallet_sign_request_title":"crwdns13115:0crwdne13115:0","notify_wallet_sign_request_success":"crwdns13117:0crwdne13117:0","notify_wallet_sign_request_failed":"crwdns13119:0crwdne13119:0","create_persona":"crwdns13121:0crwdne13121:0","connect_persona":"crwdns13123:0crwdne13123:0","please_create_persona":"crwdns13125:0crwdne13125:0","please_connect_persona":"crwdns13127:0crwdne13127:0","unbind_persona_tip":"crwdns13129:0crwdne13129:0","unbind_wallet_tip":"crwdns13131:0crwdne13131:0","done":"crwdns13133:0crwdne13133:0","confirm":"crwdns14744:0crwdne14744:0","cancel":"crwdns14746:0crwdne14746:0","delete":"crwdns14748:0crwdne14748:0","copy_success_of_wallet_address":"crwdns13135:0crwdne13135:0","disconnect_warning":"crwdns14750:0crwdne14750:0","tips":"crwdns14752:0crwdne14752:0","tip_to":"crwdns14754:0crwdne14754:0","token_insufficient_balance":"crwdns14756:0crwdne14756:0","tip_type_token":"crwdns14758:0crwdne14758:0","tip_type_nft":"crwdns14760:0crwdne14760:0","tip_wallets_missed":"crwdns14762:0crwdne14762:0","send_tip":"crwdns14764:0crwdne14764:0","sending_tip":"crwdns14766:0crwdne14766:0","nft_not_belong_to_you":"crwdns14768:0crwdne14768:0","send_tip_successfully":"crwdns14770:0crwdne14770:0","send_specific_tip_successfully":"crwdns14772:0{{amount}}crwdnd14772:0{{name}}crwdne14772:0","tip_share":"crwdns14774:0crwdne14774:0","tip_connect_wallet_message":"crwdns14776:0crwdne14776:0","tip_connect_wallet":"crwdns14778:0crwdne14778:0","search":"crwdns14780:0crwdne14780:0","tip_contracts":"crwdns14782:0crwdne14782:0","tip_mask_promote":"crwdns14806:0crwdne14806:0","tip_token_share_post":"crwdns14784:0{{amount}}crwdnd14784:0{{symbol}}crwdnd14784:0{{recipientSnsId}}crwdnd14784:0{{recipient}}crwdnd14784:0{{promote}}crwdne14784:0","tip_nft_share_post":"crwdns14786:0{{name}}crwdnd14786:0{{recipientSnsId}}crwdnd14786:0{{recipient}}crwdnd14786:0{{promote}}crwdne14786:0","tip_add":"crwdns14980:0crwdne14980:0","tip_adding":"crwdns14982:0crwdne14982:0","tip_add_collectibles":"crwdns14984:0crwdne14984:0","tip_add_collectibles_contract_address":"crwdns14986:0crwdne14986:0","tip_add_collectibles_token_id":"crwdns14988:0crwdne14988:0","tip_add_collectibles_error":"crwdns14990:0crwdne14990:0","tip_loading":"crwdns14992:0crwdne14992:0","tip_empty_nft":"crwdns14994:0crwdne14994:0"}'); +const qya_AA_namespaceObject = JSON.parse('{"wallet":"crwdns13073:0crwdne13073:0","persona":"crwdns13075:0crwdne13075:0","unsupported_network":"crwdns13077:0crwdne13077:0","connect_wallet__other_user_tip_intro":"crwdns13225:0crwdne13225:0","connect_wallet_other_user_tip1":"crwdns14726:0crwdne14726:0","connect_wallet_other_user_tip2":"crwdns14728:0crwdne14728:0","connect_wallet_other_user_instruction":"crwdns14730:0crwdne14730:0","connect_wallet_tip":"crwdns13081:0crwdne13081:0","verify_wallet_intro":"crwdns14732:0crwdne14732:0","verify_wallet":"crwdns14734:0crwdne14734:0","verify_Twitter_ID_intro":"crwdns14736:0crwdne14736:0","verify_Twitter_ID":"crwdns14738:0crwdne14738:0","verify_other_Twitter_ID_intro":"crwdns14740:0crwdne14740:0","verify_Twitter_ID_button":"crwdns14742:0crwdne14742:0","verify_wallet_button":"crwdns13083:0crwdne13083:0","add_wallet_button":"crwdns13085:0crwdne13085:0","verify_wallet_dialog_title":"crwdns13087:0crwdne13087:0","bind_wallet_bound_error":"crwdns13089:0crwdne13089:0","unbind_wallet_same_account_error":"crwdns13091:0crwdne13091:0","unbind_dialog_title":"crwdns13093:0crwdne13093:0","persona_sign":"crwdns13095:0crwdne13095:0","wallet_sign":"crwdns13097:0crwdne13097:0","copied":"crwdns13099:0crwdne13099:0","view_on_explorer":"crwdns13101:0crwdne13101:0","notify_persona_sign":"crwdns13103:0crwdne13103:0","notify_persona_sign_confirm":"crwdns13105:0crwdne13105:0","notify_persona_sign_cancel":"crwdns13107:0crwdne13107:0","notify_wallet_sign":"crwdns13109:0crwdne13109:0","notify_wallet_sign_confirm":"crwdns13111:0crwdne13111:0","notify_wallet_sign_cancel":"crwdns13113:0crwdne13113:0","notify_wallet_sign_request_title":"crwdns13115:0crwdne13115:0","notify_wallet_sign_request_success":"crwdns13117:0crwdne13117:0","notify_wallet_sign_request_failed":"crwdns13119:0crwdne13119:0","create_persona":"crwdns13121:0crwdne13121:0","connect_persona":"crwdns13123:0crwdne13123:0","please_create_persona":"crwdns13125:0crwdne13125:0","please_connect_persona":"crwdns13127:0crwdne13127:0","unbind_persona_tip":"crwdns13129:0crwdne13129:0","unbind_wallet_tip":"crwdns13131:0crwdne13131:0","done":"crwdns13133:0crwdne13133:0","confirm":"crwdns14744:0crwdne14744:0","cancel":"crwdns14746:0crwdne14746:0","delete":"crwdns14748:0crwdne14748:0","copy_success_of_wallet_address":"crwdns13135:0crwdne13135:0","disconnect_warning":"crwdns14750:0crwdne14750:0","tips":"crwdns14752:0crwdne14752:0","token_insufficient_balance":"crwdns14756:0crwdne14756:0","sending_tip":"crwdns14766:0crwdne14766:0","nft_not_belong_to_you":"crwdns14768:0crwdne14768:0","send_tip_successfully":"crwdns14770:0crwdne14770:0","send_specific_tip_successfully":"crwdns14772:0{{amount}}crwdnd14772:0{{name}}crwdne14772:0","search":"crwdns14780:0crwdne14780:0"}'); ;// CONCATENATED MODULE: ./src/plugins/NextID/locales/zh-CN.json const zh_CN_namespaceObject = JSON.parse('{"wallet":"钱包","persona":"身份","unsupported_network":"此网络尚不支持","connect_wallet__other_user_tip_intro":"目前此账号未绑定任何钱包。","connect_wallet_tip":"在 Web3 选项卡中,您可以向已安装 Mask Network 的好友展示接收打赏的地址、NFT 收藏品、捐赠记录和其他链上信息。","verify_wallet_button":"验证您的钱包","add_wallet_button":"添加钱包","verify_wallet_dialog_title":"验证您的钱包","bind_wallet_bound_error":"此钱包地址已经被绑定。","unbind_wallet_same_account_error":"请切换到需要解绑的钱包地址。","unbind_dialog_title":"解绑钱包","persona_sign":"身份签名","wallet_sign":"钱包签名","copied":"已复制","view_on_explorer":"在区块链浏览器查看","notify_persona_sign":"身份签名","notify_persona_sign_confirm":"请在您的身份页面确认此签名","notify_persona_sign_cancel":"您的钱包取消了此签名","notify_wallet_sign":"钱包签名","notify_wallet_sign_confirm":"请在您的钱包确认此签名","notify_wallet_sign_cancel":"您的钱包取消了此签名","notify_wallet_sign_request_title":"钱包签名","notify_wallet_sign_request_success":"签名成功","notify_wallet_sign_request_failed":"签名失败","create_persona":"创建身份","connect_persona":"连接身份","please_create_persona":"请创建身份","please_connect_persona":"请连接身份","unbind_persona_tip":"选择您的身份或当前绑定的钱包来进行签名解绑。","unbind_wallet_tip":"选择您的身份或当前绑定的钱包来进行签名解绑。","done":"完成","copy_success_of_wallet_address":"成功复制钱包地址!"}'); ;// CONCATENATED MODULE: ./src/plugins/NextID/locales/zh-TW.json -const zh_TW_namespaceObject = JSON.parse('{"wallet":"錢包","connect_wallet__other_user_tip_intro":"錢包尋找失敗!","verify_wallet_button":"驗證錢包","add_wallet_button":"新增錢包","verify_wallet_dialog_title":"驗證錢包","bind_wallet_bound_error":"此錢包地址已被綁定","notify_wallet_sign":"錢包簽名","notify_wallet_sign_cancel":"取消錢包簽名","notify_wallet_sign_request_title":"錢包簽名","notify_wallet_sign_request_success":"簽署成功","notify_wallet_sign_request_failed":"簽署失敗","done":"完成","confirm":"確認","cancel":"取消","delete":"刪除","copy_success_of_wallet_address":"複製錢包地址成功!","tip_to":"到","token_insufficient_balance":"餘額不足","tip_type_token":"代幣","tip_type_nft":"非同質化代幣 (NFT)","tip_wallets_missed":"錢包定位失敗!","send_tip":"送出","sending_tip":"傳送中…","send_tip_successfully":"小費打賞成功"}'); +const zh_TW_namespaceObject = JSON.parse('{"wallet":"錢包","connect_wallet__other_user_tip_intro":"錢包尋找失敗!","verify_wallet_button":"驗證錢包","add_wallet_button":"新增錢包","verify_wallet_dialog_title":"驗證錢包","bind_wallet_bound_error":"此錢包地址已被綁定","notify_wallet_sign":"錢包簽名","notify_wallet_sign_cancel":"取消錢包簽名","notify_wallet_sign_request_title":"錢包簽名","notify_wallet_sign_request_success":"簽署成功","notify_wallet_sign_request_failed":"簽署失敗","done":"完成","confirm":"確認","cancel":"取消","delete":"刪除","copy_success_of_wallet_address":"複製錢包地址成功!","token_insufficient_balance":"餘額不足","sending_tip":"傳送中…","send_tip_successfully":"小費打賞成功"}'); ;// CONCATENATED MODULE: ./src/plugins/NextID/locales/languages.ts // This file is auto generated. DO NOT EDIT // Run `npx gulp sync-languages` to regenerate. @@ -24512,7 +24569,7 @@ const base = { }, target: 'stable', web3: { - [entry_web3/* NetworkPluginID.PLUGIN_EVM */.FF.PLUGIN_EVM]: { + [src/* NetworkPluginID.PLUGIN_EVM */.FF.PLUGIN_EVM]: { supportedChainIds: [ types/* ChainId.Mainnet */.a_.Mainnet, types/* ChainId.BSC */.a_.BSC, @@ -24522,13 +24579,14 @@ const base = { types/* ChainId.Aurora */.a_.Aurora, types/* ChainId.Avalanche */.a_.Avalanche, types/* ChainId.Fantom */.a_.Fantom, + types/* ChainId.Harmony */.a_.Harmony, types/* ChainId.Conflux */.a_.Conflux, ] }, - [entry_web3/* NetworkPluginID.PLUGIN_FLOW */.FF.PLUGIN_FLOW]: { + [src/* NetworkPluginID.PLUGIN_FLOW */.FF.PLUGIN_FLOW]: { supportedChainIds: [] }, - [entry_web3/* NetworkPluginID.PLUGIN_SOLANA */.FF.PLUGIN_SOLANA]: { + [src/* NetworkPluginID.PLUGIN_SOLANA */.FF.PLUGIN_SOLANA]: { supportedChainIds: [] } } @@ -24540,7 +24598,7 @@ const base = { /***/ }), -/***/ 6736: +/***/ 27707: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; @@ -24550,8 +24608,8 @@ const base = { /* harmony export */ "Uu": () => (/* binding */ PLUGIN_ID), /* harmony export */ "tt": () => (/* binding */ TAB_SELECTOR) /* harmony export */ }); -/* harmony import */ var _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(79936); -/* harmony import */ var _social_network_adaptor_twitter_com_utils_selector__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(43399); +/* harmony import */ var _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(70226); +/* harmony import */ var _social_network_adaptor_twitter_com_utils_selector__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(38129); const PLUGIN_ID = _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__/* .PluginId.NextID */ .je.NextID; @@ -24564,17 +24622,17 @@ const TAB_SELECTOR = { /***/ }), -/***/ 39594: +/***/ 44371: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "u": () => (/* binding */ base) /* harmony export */ }); -/* harmony import */ var _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(79936); -/* harmony import */ var _masknet_plugin_infra_web3__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(67071); -/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(65506); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(98817); +/* harmony import */ var _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(70226); +/* harmony import */ var _masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(67938); +/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(72499); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(21252); @@ -24605,16 +24663,18 @@ const base = { } }, web3: { - [_masknet_plugin_infra_web3__WEBPACK_IMPORTED_MODULE_1__/* .NetworkPluginID.PLUGIN_EVM */ .FF.PLUGIN_EVM]: { + [_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .NetworkPluginID.PLUGIN_EVM */ .FF.PLUGIN_EVM]: { supportedChainIds: [ - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Mainnet */ .a_.Mainnet + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Mainnet */ .a_.Mainnet, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.BSC */ .a_.BSC, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Matic */ .a_.Matic, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Arbitrum */ .a_.Arbitrum, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.xDai */ .a_.xDai, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Fantom */ .a_.Fantom, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Avalanche */ .a_.Avalanche, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Aurora */ .a_.Aurora, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Conflux */ .a_.Conflux, ] - }, - [_masknet_plugin_infra_web3__WEBPACK_IMPORTED_MODULE_1__/* .NetworkPluginID.PLUGIN_FLOW */ .FF.PLUGIN_FLOW]: { - supportedChainIds: [] - }, - [_masknet_plugin_infra_web3__WEBPACK_IMPORTED_MODULE_1__/* .NetworkPluginID.PLUGIN_SOLANA */ .FF.PLUGIN_SOLANA]: { - supportedChainIds: [] } }, target: 'stable' @@ -24624,7 +24684,7 @@ const base = { /***/ }), -/***/ 98817: +/***/ 21252: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; @@ -24645,11 +24705,11 @@ const base = { /* harmony export */ "zi": () => (/* binding */ DEFAULT_SET_WORD) /* harmony export */ }); /* unused harmony exports TWITTER, Share_Twitter */ -/* harmony import */ var _masknet_shared__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2666); +/* harmony import */ var _masknet_shared__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(77818); /* harmony import */ var urlcat__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(19802); /* harmony import */ var urlcat__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(urlcat__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(22041); -/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(55678); +/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(62690); +/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(70854); @@ -24681,8 +24741,8 @@ const Punk3D = { type: 'model/gltf-binary' }) }; -const Share_Twitter = 'https://twitter.com/realMaskNetwork/status/1486648872558424064'; -const Share_Twitter_TXT = `I just set up my Non-Fungible Friend with @realMaskNetwork (powered by @MintTeamNFT). Visit my profile to check it out! Install Mask Network extension from mask.io and set yours.\n #mask_io #nonfungiblefriends\n${Share_Twitter}`; +const Share_Twitter = 'https://twitter.com/NonFFriend/status/1508791087149641731'; +const Share_Twitter_TXT = `I just set up my Non-Fungible Friend with @realMaskNetwork (powered by @NonFFriend). Visit my profile to check it out! Install Mask Network extension from mask.io and set yours.\n #mask_io #nonfungiblefriends\n${Share_Twitter}`; const GLB3DIcon = new URL(/* asset import */ __webpack_require__(19196), __webpack_require__.b).toString(); const CloseIcon = new URL(/* asset import */ __webpack_require__(86302), __webpack_require__.b).toString(); const DragIcon = new URL(/* asset import */ __webpack_require__(93563), __webpack_require__.b).toString(); @@ -24692,7 +24752,7 @@ const PunkIcon = new URL(/* asset import */ __webpack_require__(68391), __webpac /***/ }), -/***/ 22041: +/***/ 62690: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; @@ -24708,14 +24768,14 @@ var ImageType; /***/ }), -/***/ 23594: +/***/ 77527: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "u": () => (/* binding */ base) /* harmony export */ }); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(49374); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(116); const base = { ID: _constants__WEBPACK_IMPORTED_MODULE_0__/* .PLUGIN_ID */ .Uu, @@ -24753,7 +24813,7 @@ const base = { /***/ }), -/***/ 49374: +/***/ 116: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; @@ -24764,7 +24824,7 @@ const base = { /* harmony export */ "Uu": () => (/* binding */ PLUGIN_ID), /* harmony export */ "um": () => (/* binding */ PLUGIN_META_KEY) /* harmony export */ }); -/* harmony import */ var _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(79936); +/* harmony import */ var _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(70226); const PollGunRootNode = 'com.maskbook.plugin.polls'; const PLUGIN_META_KEY = `${_masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__/* .PluginId.Poll */ .je.Poll}:1`; @@ -24775,19 +24835,19 @@ const PLUGIN_DESCRIPTION = 'Easily create a Poll for receiving public votes.'; /***/ }), -/***/ 30689: +/***/ 50758: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "u": () => (/* binding */ base) /* harmony export */ }); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(29708); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(78755); const base = { ID: _constants__WEBPACK_IMPORTED_MODULE_0__/* .POOLTOGETHER_PLUGIN_ID */ .hD, name: { - fallback: 'PoolTogether' + fallback: 'Pooltogether' }, description: { fallback: 'PoolTogether is a protocol for no-loss prize games on the Ethereum blockchain' @@ -24807,7 +24867,7 @@ const base = { type: 'opt-out', networks: {} }, - target: 'stable' + target: 'insider' }, contribution: { postContent: new Set([ @@ -24819,7 +24879,7 @@ const base = { /***/ }), -/***/ 29708: +/***/ 78755: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; @@ -24849,23 +24909,65 @@ const ONE_WEEK_SECONDS = ONE_DAY_SECONDS * 7; /***/ }), -/***/ 84078: +/***/ 66511: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "u": () => (/* binding */ base) -/* harmony export */ }); -/* harmony import */ var _masknet_plugin_infra_web3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(67071); -/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(65506); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(80149); + +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "u": () => (/* binding */ base) +}); + +// EXTERNAL MODULE: ../web3-shared/base/src/index.ts + 1 modules +var src = __webpack_require__(67938); +// EXTERNAL MODULE: ../web3-shared/evm/types/index.ts +var types = __webpack_require__(72499); +// EXTERNAL MODULE: ./src/plugins/RedPacket/constants.ts +var constants = __webpack_require__(70176); +;// CONCATENATED MODULE: ./src/plugins/RedPacket/locales/en-US.json +const en_US_namespaceObject = JSON.parse('{"promote":"🧧🧧🧧 Try sending Lucky Drop to your friends with tokens or NFTs to share the joy now! Install Mask.io to send your first Lucky Drop.","promote_short":"🧧🧧🧧 Try sending Lucky Drop to your friends with Mask.io.","nft_shift_select_tip":"You can also use {{text}} to select multiple NFTs.","collections":"Collections","select_a_token":"Select a Token","search":"Search","loading_token":"Loading token...","search_no_result":"No results.","nft_already_added":"The collectible has already been added.","nft_invalid_owner":"The collectible does not belong to you.","nft_max_shares":"The maximum number of NFTs to be sold in NFT lucky drop contract is {{amount}}.","nft_max_shares_tip":"The NFT lucky drop supports up to {{amount, number}} NFTs selected for one time.","nft_non_existed_tip":"Token ID does not exist or belong to you.","nft_select_collection":"Choose your collection","completed":"Completed","expired":"Expired","nft_tip":"This is an NFT lucky drop.","account_promote$default":"","account_promote$twitter":"Follow @$t(mask:twitter_account) (mask.io) to claim NFT lucky drops.","account_promote$facebook":"Follow @$t(mask:facebook_account) (mask.io) to claim NFT lucky drops.","nft_share_foreshow_message":"@{{sender}} is sending an NFT lucky drop on {{network}} network. {{account_promote}}\\n$t(promote_short)\\n$t(mask:hash_tag) #LuckyDrop\\n{{payload}}","nft_share_claimed_message":"I just claimed an NFT lucky drop from @{{sender}} on {{network}} network. {{account_promote}}\\n$t(promote_short)\\n$t(mask:hash_tag) #LuckyDrop\\n{{payload}}","nft_total_amount":"Total Amount","nft_attached_message":"Attached Message","nft_account_name":"Wallet account","message_label":"Enclose a Message","claiming":"Claiming...","claim":"Claim","data_broken":"The Lucky Drop can’t be sent due to data damage. Please withdraw the assets after {{duration}}.","refund":"Refund","empty":"Empty","refunding":"Refunding","history_send":"Send","history_total_amount":"Total Amount: {{amount}} {{symbol}}","history_split_mode":"Split Mode: {{mode}}","history_total_claimed_amount":"Total: {{claimedAmount}}/{{amount}} {{symbol}}","attached_message":"Attached Message","indivisible":"The minimum amount for each share is {{amount}} {{symbol}}","name":"Lucky Drop","description":"Gift crypto or NFTs to any users, first come, first served.","next":"Next","nft_approve_all_tip":"Note: When you \\"Unlock All\\", all of the NFTs in the collection will be by default authorized for sale. This includes the NFTs transferred afterwards.","nft_unapproved_tip":"You can get the rest of your NFTs back 24 hours later after sending them out.","nft_select_partially_option":"Select partially","nft_select_all_option":"ALL ({{total}} NFT)","erc721_insufficient_balance":"Insufficient Balance","erc721_tab_title":"NFT Collections","erc20_tab_title":"Token","claimed":"Claimed","details":"Lucky Drop Details","display_name":"Lucky Drop","select_existing":"History","create_new":"New","send_symbol":"Send {{amount}} {{symbol}}","back":"Back","hint":"You can withdraw the remaining balance 24 hours after the Lucky Drop is sent.","total_amount":"Total Amount","amount_per_share":"Amount per Share","shares":"Shares","average":"Average","random":"Random","split_mode":"Split Mode","token":"Token","chain_not_supported":"Not supported on {{chain}} yet.","nft_no_history":"You haven\'t created any NFT yet. Create one now and share the luck with your friends.","history_claimed":"Claimed: {{claimedShares}}/{{shares}} Share","send":"Send","history_duration":"Time: {{startTime}} ~ {{endTime}} (UTC+8)","best_wishes":"Best Wishes!","nft_data_broken":"The Lucky Drop can’t be sent due to data damage.","from":"From: @{{name}}","share_message_official_account":"I just claimed a lucky drop from @{{sender}} on {{network}} network. Follow @{{account}} (mask.io) to claim lucky drops.\\n$t(promote_short)\\n#mask_io #LuckyDrop\\n{{payload}}","share_message_not_twitter":"I just claimed a lucky drop from @{{sender}} on {{network}} network.\\n$t(promote_short)\\n{{payload}}","share_unclaimed_message_official_account":"Hi friends, I just found a lucky drop sent by @{{sender}} on {{network}} network. Follow @{{account}} (mask.io) to claim lucky drops.\\n$t(promote_short)\\n#mask_io #LuckyDrop\\n{{payload}}","share_unclaimed_message_not_twitter":"Hi friends, I just found a lucky drop sent by @{{sender}} on {{network}} network.\\n$t(promote_short)\\n{{payload}}","description_claimed":"You got {{amount}} {{symbol}}","description_refund":"You could refund {{balance}} {{symbol}}.","description_refunded":"The Lucky Drop has been refunded.","description_expired":"The Lucky Drop is expired.","description_broken":"The Lucky Drop is broken.","description_empty":"The Lucky Drop is empty.","description_failover":"{{shares}} shares / {{total}} {{symbol}}","recommend_feature_description":"Send a surprise crypto giveaway. Tokens and NFTs on multiple chains are supported."}'); +;// CONCATENATED MODULE: ./src/plugins/RedPacket/locales/ja-JP.json +const ja_JP_namespaceObject = {}; +;// CONCATENATED MODULE: ./src/plugins/RedPacket/locales/ko-KR.json +const ko_KR_namespaceObject = {}; +;// CONCATENATED MODULE: ./src/plugins/RedPacket/locales/qya-AA.json +const qya_AA_namespaceObject = JSON.parse('{"promote":"crwdns16732:0crwdne16732:0","promote_short":"crwdns16734:0crwdne16734:0","nft_shift_select_tip":"crwdns16736:0{{text}}crwdne16736:0","collections":"crwdns16738:0crwdne16738:0","select_a_token":"crwdns16740:0crwdne16740:0","search":"crwdns16742:0crwdne16742:0","loading_token":"crwdns16744:0crwdne16744:0","search_no_result":"crwdns16746:0crwdne16746:0","nft_already_added":"crwdns16748:0crwdne16748:0","nft_invalid_owner":"crwdns16750:0crwdne16750:0","nft_max_shares":"crwdns16752:0{{amount}}crwdne16752:0","nft_max_shares_tip":"crwdns16754:0{{amount, number}}crwdne16754:0","nft_non_existed_tip":"crwdns16756:0crwdne16756:0","nft_select_collection":"crwdns16758:0crwdne16758:0","completed":"crwdns16760:0crwdne16760:0","expired":"crwdns16762:0crwdne16762:0","nft_tip":"crwdns16764:0crwdne16764:0","account_promote$default":"crwdns17284:0crwdne17284:0","account_promote$twitter":"crwdns17286:0$t(mask:twitter_account)crwdne17286:0","account_promote$facebook":"crwdns17288:0$t(mask:facebook_account)crwdne17288:0","nft_share_foreshow_message":"crwdns16768:0{{sender}}crwdnd16768:0{{network}}crwdnd16768:0{{account_promote}}crwdnd16768:0$t(promote_short)crwdnd16768:0$t(mask:hash_tag)crwdnd16768:0{{payload}}crwdne16768:0","nft_share_claimed_message":"crwdns16772:0{{sender}}crwdnd16772:0{{network}}crwdnd16772:0{{account_promote}}crwdnd16772:0$t(promote_short)crwdnd16772:0$t(mask:hash_tag)crwdnd16772:0{{payload}}crwdne16772:0","nft_total_amount":"crwdns16774:0crwdne16774:0","nft_attached_message":"crwdns16776:0crwdne16776:0","nft_account_name":"crwdns16778:0crwdne16778:0","message_label":"crwdns16780:0crwdne16780:0","claiming":"crwdns16782:0crwdne16782:0","claim":"crwdns16784:0crwdne16784:0","data_broken":"crwdns16786:0{{duration}}crwdne16786:0","refund":"crwdns16788:0crwdne16788:0","empty":"crwdns16790:0crwdne16790:0","refunding":"crwdns16792:0crwdne16792:0","history_send":"crwdns16794:0crwdne16794:0","history_total_amount":"crwdns16796:0{{amount}}crwdnd16796:0{{symbol}}crwdne16796:0","history_split_mode":"crwdns16798:0{{mode}}crwdne16798:0","history_total_claimed_amount":"crwdns16800:0{{claimedAmount}}crwdnd16800:0{{amount}}crwdnd16800:0{{symbol}}crwdne16800:0","attached_message":"crwdns16802:0crwdne16802:0","indivisible":"crwdns16804:0{{amount}}crwdnd16804:0{{symbol}}crwdne16804:0","name":"crwdns16806:0crwdne16806:0","description":"crwdns16808:0crwdne16808:0","next":"crwdns16810:0crwdne16810:0","nft_approve_all_tip":"crwdns16812:0crwdne16812:0","nft_unapproved_tip":"crwdns16814:0crwdne16814:0","nft_select_partially_option":"crwdns16816:0crwdne16816:0","nft_select_all_option":"crwdns16818:0{{total}}crwdne16818:0","erc721_insufficient_balance":"crwdns16820:0crwdne16820:0","erc721_tab_title":"crwdns16822:0crwdne16822:0","erc20_tab_title":"crwdns16824:0crwdne16824:0","claimed":"crwdns16826:0crwdne16826:0","details":"crwdns16828:0crwdne16828:0","display_name":"crwdns16830:0crwdne16830:0","select_existing":"crwdns16832:0crwdne16832:0","create_new":"crwdns16834:0crwdne16834:0","send_symbol":"crwdns16836:0{{amount}}crwdnd16836:0{{symbol}}crwdne16836:0","back":"crwdns16838:0crwdne16838:0","hint":"crwdns16840:0crwdne16840:0","total_amount":"crwdns17248:0crwdne17248:0","amount_per_share":"crwdns16844:0crwdne16844:0","shares":"crwdns16846:0crwdne16846:0","average":"crwdns16848:0crwdne16848:0","random":"crwdns16850:0crwdne16850:0","split_mode":"crwdns16852:0crwdne16852:0","token":"crwdns16854:0crwdne16854:0","chain_not_supported":"crwdns16856:0{{chain}}crwdne16856:0","nft_no_history":"crwdns16858:0crwdne16858:0","history_claimed":"crwdns16860:0{{claimedShares}}crwdnd16860:0{{shares}}crwdne16860:0","send":"crwdns16862:0crwdne16862:0","history_duration":"crwdns16864:0{{startTime}}crwdnd16864:0{{endTime}}crwdne16864:0","best_wishes":"crwdns16866:0crwdne16866:0","nft_data_broken":"crwdns16868:0crwdne16868:0","from":"crwdns16870:0{{name}}crwdne16870:0","share_message_official_account":"crwdns16872:0{{sender}}crwdnd16872:0{{network}}crwdnd16872:0{{account}}crwdnd16872:0$t(promote_short)crwdnd16872:0{{payload}}crwdne16872:0","share_message_not_twitter":"crwdns16874:0{{sender}}crwdnd16874:0{{network}}crwdnd16874:0$t(promote_short)crwdnd16874:0{{payload}}crwdne16874:0","share_unclaimed_message_official_account":"crwdns16876:0{{sender}}crwdnd16876:0{{network}}crwdnd16876:0{{account}}crwdnd16876:0$t(promote_short)crwdnd16876:0{{payload}}crwdne16876:0","share_unclaimed_message_not_twitter":"crwdns16878:0{{sender}}crwdnd16878:0{{network}}crwdnd16878:0$t(promote_short)crwdnd16878:0{{payload}}crwdne16878:0","description_claimed":"crwdns16880:0{{amount}}crwdnd16880:0{{symbol}}crwdne16880:0","description_refund":"crwdns16882:0{{balance}}crwdnd16882:0{{symbol}}crwdne16882:0","description_refunded":"crwdns16884:0crwdne16884:0","description_expired":"crwdns16886:0crwdne16886:0","description_broken":"crwdns16888:0crwdne16888:0","description_empty":"crwdns16890:0crwdne16890:0","description_failover":"crwdns16892:0{{shares}}crwdnd16892:0{{total}}crwdnd16892:0{{symbol}}crwdne16892:0","recommend_feature_description":"crwdns16894:0crwdne16894:0"}'); +;// CONCATENATED MODULE: ./src/plugins/RedPacket/locales/zh-CN.json +const zh_CN_namespaceObject = JSON.parse('{"collections":"收藏品","select_a_token":"选择代币","nft_max_shares":"NFT红包合约最多支持 {{amount}} 个NFT投放。","nft_max_shares_tip":"NFT红包合约最多支持 {{amount, number}} 个NFT投放。","nft_non_existed_tip":"Token ID 不存在或不属于您。","nft_select_collection":"选择您的收藏品系列","completed":"已完成","expired":"已过期","nft_tip":"这是一个 NFT 红包。","nft_share_foreshow_message":"@{{sender}} 正在 {{network}} 网络上发送一个 NFT 红包。关注@{{account}} (mask.io) 以获取NFT 红包。\\n#mask_io #LuckyDrop\\n{{payload}}","nft_share_claimed_message":"我刚从@{{sender}} 在 {{network}} 网络上认领了一个 NFT 红包。关注@{{account}} (mask.io) 来获取红包。\\n$t(promote_short)\\n#mask_io #LuckyDrop\\n{{payload}}","nft_total_amount":"总数","nft_attached_message":"附加信息","nft_account_name":"钱包账户","message_label":"标题","claiming":"认领中...","claim":"认领","data_broken":"由于数据损坏,此红包无法发送。请在 {{duration}} 之后申请退款。","refund":"退款","empty":"空的","refunding":"退款中","history_send":"发送","history_total_amount":"总额: {{amount}} {{symbol}}","history_split_mode":"分享模式:{{mode}}","history_total_claimed_amount":"总额: {{claimedAmount}}/{{amount}} {{symbol}}","attached_message":"附加信息","indivisible":"每个份额的最小金额为 {{amount}} {{symbol}}","next":"下一步","nft_approve_all_tip":"注意:在选择批准所有NFT时,合约中的所有NFT都将被授权默认销售,包括随后转移的NFT。","nft_select_partially_option":"选择部分","nft_select_all_option":"全部 ({{total}} NFT)","erc721_insufficient_balance":"余额不足","erc721_tab_title":"收藏品","erc20_tab_title":"代币","claimed":"已认领","details":"红包详情","display_name":"插件:红包"}'); +;// CONCATENATED MODULE: ./src/plugins/RedPacket/locales/zh-TW.json +const zh_TW_namespaceObject = JSON.parse('{"search":"搜尋","nft_already_added":"此收藏品已被添加","nft_invalid_owner":"此藏品不屬於你","completed":"已完成","expired":"已過期","nft_tip":"這是一個NFT紅包","nft_total_amount":"總額","nft_attached_message":"附加的訊息","message_label":"標題","claiming":"認領中...","claim":"認領","refund":"退款","empty":"空的","refunding":"退款中","history_send":"發送","history_total_amount":"總額: {{amount}} {{symbol}}","history_split_mode":"分割模式: {{mode}}","history_total_claimed_amount":"總共: {{claimedAmount}}/{{amount}} {{symbol}}","attached_message":"附加的訊息","next":"下一步","erc721_insufficient_balance":"餘額不足","erc20_tab_title":"代幣","claimed":"已領取","details":"紅包詳情"}'); +;// CONCATENATED MODULE: ./src/plugins/RedPacket/locales/languages.ts +// This file is auto generated. DO NOT EDIT +// Run `npx gulp sync-languages` to regenerate. +// Default fallback language in a family of languages are chosen by the alphabet order +// To overwrite this, please overwrite packages/scripts/src/locale-kit-next/index.ts + + + + + + +const languages = { + en: en_US_namespaceObject, + ja: ja_JP_namespaceObject, + ko: ko_KR_namespaceObject, + qy: qya_AA_namespaceObject, + 'zh-CN': zh_CN_namespaceObject, + zh: zh_TW_namespaceObject +}; +// @ts-ignore +if (false) {} + +;// CONCATENATED MODULE: ./src/plugins/RedPacket/base.ts + const base = { - ID: _constants__WEBPACK_IMPORTED_MODULE_1__/* .RedPacketPluginID */ .jY, + ID: constants/* RedPacketPluginID */.jY, name: { - fallback: 'Lucky drop' + fallback: 'Lucky Drop' }, description: { fallback: 'Lucky drop is a special feature in Mask Network which was launched in early 2020. Once users have installed the Chrome/Firefox plugin, they can claim and give out cryptocurrencies on Twitter.' @@ -24887,39 +24989,41 @@ const base = { }, target: 'stable', web3: { - [_masknet_plugin_infra_web3__WEBPACK_IMPORTED_MODULE_0__/* .NetworkPluginID.PLUGIN_EVM */ .FF.PLUGIN_EVM]: { + [src/* NetworkPluginID.PLUGIN_EVM */.FF.PLUGIN_EVM]: { supportedChainIds: [ - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Mainnet */ .a_.Mainnet, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.BSC */ .a_.BSC, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Matic */ .a_.Matic, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Arbitrum */ .a_.Arbitrum, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.xDai */ .a_.xDai, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Fantom */ .a_.Fantom, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Avalanche */ .a_.Avalanche, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Aurora */ .a_.Aurora, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Conflux */ .a_.Conflux, + types/* ChainId.Mainnet */.a_.Mainnet, + types/* ChainId.BSC */.a_.BSC, + types/* ChainId.Matic */.a_.Matic, + types/* ChainId.Arbitrum */.a_.Arbitrum, + types/* ChainId.xDai */.a_.xDai, + types/* ChainId.Fantom */.a_.Fantom, + types/* ChainId.Avalanche */.a_.Avalanche, + types/* ChainId.Aurora */.a_.Aurora, + types/* ChainId.Harmony */.a_.Harmony, + types/* ChainId.Conflux */.a_.Conflux, ] }, - [_masknet_plugin_infra_web3__WEBPACK_IMPORTED_MODULE_0__/* .NetworkPluginID.PLUGIN_FLOW */ .FF.PLUGIN_FLOW]: { + [src/* NetworkPluginID.PLUGIN_FLOW */.FF.PLUGIN_FLOW]: { supportedChainIds: [] }, - [_masknet_plugin_infra_web3__WEBPACK_IMPORTED_MODULE_0__/* .NetworkPluginID.PLUGIN_SOLANA */ .FF.PLUGIN_SOLANA]: { + [src/* NetworkPluginID.PLUGIN_SOLANA */.FF.PLUGIN_SOLANA]: { supportedChainIds: [] } } }, contribution: { metadataKeys: new Set([ - _constants__WEBPACK_IMPORTED_MODULE_1__/* .RedPacketMetaKey */ .Vr, - _constants__WEBPACK_IMPORTED_MODULE_1__/* .RedPacketNftMetaKey */ .HA + constants/* RedPacketMetaKey */.Vr, + constants/* RedPacketNftMetaKey */.HA ]) - } + }, + i18n: languages }; /***/ }), -/***/ 80149: +/***/ 70176: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; @@ -24932,7 +25036,7 @@ const base = { /* harmony export */ "jY": () => (/* binding */ RedPacketPluginID), /* harmony export */ "sX": () => (/* binding */ RED_PACKET_DEFAULT_SHARES) /* harmony export */ }); -/* harmony import */ var _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(79936); +/* harmony import */ var _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(70226); /** * !! Change this key cause a breaking change in the red packet plugin. @@ -24950,16 +25054,176 @@ const NFT_RED_PACKET_MAX_SHARES = 255; /***/ }), -/***/ 95163: +/***/ 6681: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; + +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "u": () => (/* binding */ base) +}); + +// EXTERNAL MODULE: ../plugin-infra/src/entry.ts +var entry = __webpack_require__(70226); +// EXTERNAL MODULE: ../web3-shared/base/src/index.ts + 1 modules +var src = __webpack_require__(67938); +// EXTERNAL MODULE: ../web3-shared/evm/types/index.ts +var types = __webpack_require__(72499); +// EXTERNAL MODULE: ./src/plugins/Referral/constants.ts +var constants = __webpack_require__(97300); +;// CONCATENATED MODULE: ./src/plugins/Referral/locales/en-US.json +const en_US_namespaceObject = JSON.parse('{"__plugin_name":"Referral Farms","__description":"Referral Farming distributes yield farming alike returns for successful referrals.","powered_by":"Powered by","create_by":"Created by","tab_new":"New","tab_created":"Created","tab_my_rewards":"My Rewards","referral_farming":"Referral Farming","referral_farms_short_desc":" distributes yield farming alike returns for successful referrals","how_it_works":"How it Works","select_a_token_desc":"Select a token to be promoted and define daily rewards to participants, as well as total referral farm rewards.","create_referral_farm_desc":"Create a farm to reward promotion of a token","daily_farm_reward":"Daily Farm Reward","total_farm_rewards":"Total Farm Rewards","daily_reward":"Daily Reward","total_rewards":"Total Rewards","deposit":"Deposit","select_token_refer":"Select a token to recommend and earn rewards!","select_token_refer_desc":"Join the farm and receive rewards based on the value of tokens purchased via your referrals.","publish_farm":"Publish Referral Farm","attrace_fees":"Attrace Protocol Fee 5%","deposit_total":"Deposit Total","deposit_total_rewards":"Deposit Total Farm Rewards","create_referral_farm":"Create Referral Farm","join_receive_rewards":"Join the farms and receive rewards based on the value of tokens purchased via referrals 🔥","refer_to_farm":"Refer to Farm","refer_to_farm_desc":"earn farming rewards for tokens purchased via your referrals.","sponsored_farm":"Sponsored Referral Farm","sponsored_farm_detail":"- rewards in tokens chosen by the sponsor","buy_or_refer_to_earn_buy_hold_referral":"Buy or refer to Earn in ${{token}} Buy & Hold Referral!","buy_refer_earn_yield":"Buy or refer ${{token}} and receive farming yield without farming!","sponsored_referral_farm":"Sponsored Referral Farm","referral_farm":"Referral Farm","no_created_farm":"You haven\'t created any referral farm yet","transaction_complete_signature_request":"Complete signature request","transaction_sign_the_message_to_register_address_for_rewards":"Sign the message to register your address for rewards","token_to_refer":"Token to Refer","reward_token":"Reward Token","sponsored_referral_farm_desc":"rewards in tokens chosen by the sponsor","select_a_token_to_refer":"Select a Token to Refer","select_a_reward_token":"Select a Reward Token","token":"Token","search_placeholder_token":"Token name or contract address","placeholder_loading":"Loading","placeholder_no_farms":"There are no any farms yet.","select_a_token_to_buy_and_hold":"Select a Token to Buy & Hold via Referral","token_to_buy_and_hold":"Token to Buy & Hold via Referral","select_a_token_to_buy_and_hold_and_earn_rewards":"Select a token to Buy & Hold and earn rewards!","join_the_farm":"Join the farm and receive rewards based on the value of tokens purchased via referrals.","buy_to_farm":"Buy to Farm","buy_to_farm_desc":"buy & hold sponsored tokens and earn farming rewards.","select_a_token":"Select a token","rewards_earned":"Rewards earned","create_farms":"Create Farm","create_farms_desc":"reward referrals for the purchase of crypto tokens or NFT collection.","rewards":"rewards","create_farms_rewards_desc":"The rewards will be distributed to participants daily based on their share of the referred/purchased value in the referral farm.","you_have_not_joined_farm":"You haven’t joined any referral farm yet","harvest_rewards":"Harvest Rewards","claimable":"Claimable","request_to_withdraw":"Request to Withdraw","view_stats":"View Stats","adjust_rewards":"Adjust Rewards","adjust_rewards_desc":"Increase/decrease the Daily Farm Reward or deposit Additional Farm Rewards to top up referral farm","additional_farm_rewards":"Additional Farm Rewards","confirm_deposit":"Confirm Deposit","adjust_total_reward_desc":"Confirm deposit of {{reward}} {{symbol}} to top up referral farm","adjust_daily_reward_desc":"Confirm to adjust daily farm reward to {{reward}} {{symbol}} ","adjust_daily_and_total_reward_desc":"Confirm deposit of {{totalReward}} {{symbol}} to top up referral farm and adjust daily farm reward to {{dailyReward}} {{symbol}}","transaction":"Transaction","confirm_transaction":"Confirm transaction","confirm_transaction_harvesting":"Harvesting your rewards of {{reward}} {{symbol}}","transaction_confirm_permission_deposit":"Confirm permission and deposit","create_farm_transaction_confirm_desc":"Confirm permission for the token and deposit {{reward}} {{token}} to create referral farm","adjust_rewards_error":"Reward token not found.","continue":"Continue","error_token_not_select":"Token didn\'t select","error_native_token_farm":"Cannot create farm with native token.","buy_and_hold_referral":"Buy & Hold Referral","error_insufficient_balance":"Insufficient {{symbol}} balance","error_daily_rewards":"Daily farm reward should be less than total farm rewards","reward_tokens":"Reward Tokens","blockchain_error_your_referral_farms":"Referral farms cannot be retrieved from the blockchain at the moment. Please try later.","blockchain_error_referral_farms":"Your referral farms cannot be retrieved from the blockchain at the moment. Please try later.","blockchain_error_referral_farm":"This referral farm specs cannot be retrieved from the blockchain at the moment.","oracle_error_your_rewards":"Your rewards cannot be retrieved from the oracles at the moment. Please try later.","dismiss":"Dismiss","go_wrong":"Something went wrong.","wallet_balance":"Balance","view_on_explorer":"View on Explorer","transaction_confirmed":"Your transaction was confirmed!","try_in_few_minutes":"Please try in a few minutes.","oops":"Oops!"}'); +;// CONCATENATED MODULE: ./src/plugins/Referral/locales/ja-JP.json +const ja_JP_namespaceObject = {}; +;// CONCATENATED MODULE: ./src/plugins/Referral/locales/ko-KR.json +const ko_KR_namespaceObject = {}; +;// CONCATENATED MODULE: ./src/plugins/Referral/locales/qya-AA.json +const qya_AA_namespaceObject = JSON.parse('{"__plugin_name":"crwdns17024:0crwdne17024:0","__description":"crwdns17026:0crwdne17026:0","powered_by":"crwdns17028:0crwdne17028:0","create_by":"crwdns17030:0crwdne17030:0","tab_new":"crwdns17032:0crwdne17032:0","tab_created":"crwdns17034:0crwdne17034:0","tab_my_rewards":"crwdns17036:0crwdne17036:0","referral_farming":"crwdns17038:0crwdne17038:0","referral_farms_short_desc":"crwdns17040:0crwdne17040:0","how_it_works":"crwdns17042:0crwdne17042:0","select_a_token_desc":"crwdns17044:0crwdne17044:0","create_referral_farm_desc":"crwdns17046:0crwdne17046:0","daily_farm_reward":"crwdns17048:0crwdne17048:0","total_farm_rewards":"crwdns17050:0crwdne17050:0","daily_reward":"crwdns17052:0crwdne17052:0","total_rewards":"crwdns17054:0crwdne17054:0","deposit":"crwdns17056:0crwdne17056:0","select_token_refer":"crwdns17058:0crwdne17058:0","select_token_refer_desc":"crwdns17060:0crwdne17060:0","publish_farm":"crwdns17062:0crwdne17062:0","attrace_fees":"crwdns17064:0crwdne17064:0","deposit_total":"crwdns17066:0crwdne17066:0","deposit_total_rewards":"crwdns17068:0crwdne17068:0","create_referral_farm":"crwdns17070:0crwdne17070:0","join_receive_rewards":"crwdns17072:0crwdne17072:0","refer_to_farm":"crwdns17074:0crwdne17074:0","refer_to_farm_desc":"crwdns17076:0crwdne17076:0","sponsored_farm":"crwdns17078:0crwdne17078:0","sponsored_farm_detail":"crwdns17080:0crwdne17080:0","buy_or_refer_to_earn_buy_hold_referral":"crwdns17082:0{{token}}crwdne17082:0","buy_refer_earn_yield":"crwdns17084:0{{token}}crwdne17084:0","sponsored_referral_farm":"crwdns17086:0crwdne17086:0","referral_farm":"crwdns17088:0crwdne17088:0","no_created_farm":"crwdns17090:0crwdne17090:0","transaction_complete_signature_request":"crwdns17092:0crwdne17092:0","transaction_sign_the_message_to_register_address_for_rewards":"crwdns17094:0crwdne17094:0","token_to_refer":"crwdns17096:0crwdne17096:0","reward_token":"crwdns17098:0crwdne17098:0","sponsored_referral_farm_desc":"crwdns17100:0crwdne17100:0","select_a_token_to_refer":"crwdns17102:0crwdne17102:0","select_a_reward_token":"crwdns17104:0crwdne17104:0","token":"crwdns17106:0crwdne17106:0","search_placeholder_token":"crwdns17108:0crwdne17108:0","placeholder_loading":"crwdns17110:0crwdne17110:0","placeholder_no_farms":"crwdns17112:0crwdne17112:0","select_a_token_to_buy_and_hold":"crwdns17114:0crwdne17114:0","token_to_buy_and_hold":"crwdns17116:0crwdne17116:0","select_a_token_to_buy_and_hold_and_earn_rewards":"crwdns17118:0crwdne17118:0","join_the_farm":"crwdns17120:0crwdne17120:0","buy_to_farm":"crwdns17122:0crwdne17122:0","buy_to_farm_desc":"crwdns17124:0crwdne17124:0","select_a_token":"crwdns17126:0crwdne17126:0","rewards_earned":"crwdns17128:0crwdne17128:0","create_farms":"crwdns17130:0crwdne17130:0","create_farms_desc":"crwdns17132:0crwdne17132:0","rewards":"crwdns17134:0crwdne17134:0","create_farms_rewards_desc":"crwdns17136:0crwdne17136:0","you_have_not_joined_farm":"crwdns17138:0crwdne17138:0","harvest_rewards":"crwdns17140:0crwdne17140:0","claimable":"crwdns17142:0crwdne17142:0","request_to_withdraw":"crwdns17144:0crwdne17144:0","view_stats":"crwdns17146:0crwdne17146:0","adjust_rewards":"crwdns17148:0crwdne17148:0","adjust_rewards_desc":"crwdns17150:0crwdne17150:0","additional_farm_rewards":"crwdns17152:0crwdne17152:0","confirm_deposit":"crwdns17154:0crwdne17154:0","adjust_total_reward_desc":"crwdns17156:0{{reward}}crwdnd17156:0{{symbol}}crwdne17156:0","adjust_daily_reward_desc":"crwdns17158:0{{reward}}crwdnd17158:0{{symbol}}crwdne17158:0","adjust_daily_and_total_reward_desc":"crwdns17160:0{{totalReward}}crwdnd17160:0{{symbol}}crwdnd17160:0{{dailyReward}}crwdnd17160:0{{symbol}}crwdne17160:0","transaction":"crwdns17162:0crwdne17162:0","confirm_transaction":"crwdns17164:0crwdne17164:0","confirm_transaction_harvesting":"crwdns17166:0{{reward}}crwdnd17166:0{{symbol}}crwdne17166:0","transaction_confirm_permission_deposit":"crwdns17168:0crwdne17168:0","create_farm_transaction_confirm_desc":"crwdns17170:0{{reward}}crwdnd17170:0{{token}}crwdne17170:0","adjust_rewards_error":"crwdns17172:0crwdne17172:0","continue":"crwdns17174:0crwdne17174:0","error_token_not_select":"crwdns17176:0crwdne17176:0","error_native_token_farm":"crwdns17178:0crwdne17178:0","buy_and_hold_referral":"crwdns17180:0crwdne17180:0","error_insufficient_balance":"crwdns17182:0{{symbol}}crwdne17182:0","error_daily_rewards":"crwdns17184:0crwdne17184:0","reward_tokens":"crwdns17186:0crwdne17186:0","blockchain_error_your_referral_farms":"crwdns17188:0crwdne17188:0","blockchain_error_referral_farms":"crwdns17190:0crwdne17190:0","blockchain_error_referral_farm":"crwdns17192:0crwdne17192:0","oracle_error_your_rewards":"crwdns17194:0crwdne17194:0","dismiss":"crwdns17196:0crwdne17196:0","go_wrong":"crwdns17198:0crwdne17198:0","wallet_balance":"crwdns17200:0crwdne17200:0","view_on_explorer":"crwdns17202:0crwdne17202:0","transaction_confirmed":"crwdns17204:0crwdne17204:0","try_in_few_minutes":"crwdns17206:0crwdne17206:0","oops":"crwdns17208:0crwdne17208:0"}'); +;// CONCATENATED MODULE: ./src/plugins/Referral/locales/zh-CN.json +const zh_CN_namespaceObject = {}; +;// CONCATENATED MODULE: ./src/plugins/Referral/locales/zh-TW.json +const zh_TW_namespaceObject = {}; +;// CONCATENATED MODULE: ./src/plugins/Referral/locales/languages.ts +// This file is auto generated. DO NOT EDIT +// Run `npx gulp sync-languages` to regenerate. +// Default fallback language in a family of languages are chosen by the alphabet order +// To overwrite this, please overwrite packages/scripts/src/locale-kit-next/index.ts + + + + + + +const languages = { + en: en_US_namespaceObject, + ja: ja_JP_namespaceObject, + ko: ko_KR_namespaceObject, + qy: qya_AA_namespaceObject, + 'zh-CN': zh_CN_namespaceObject, + zh: zh_TW_namespaceObject +}; +// @ts-ignore +if (false) {} + +;// CONCATENATED MODULE: ./src/plugins/Referral/base.ts + + + + + +const base = { + ID: entry/* PluginId.Referral */.je.Referral, + name: { + fallback: 'Referral Farms', + i18nKey: '__plugin_name' + }, + description: { + fallback: 'Referral Farming distributes yield farming alike returns for successful referrals.', + i18nKey: '__plugin_description' + }, + publisher: { + name: { + fallback: 'Attrace Protocol' + }, + link: 'http://attrace.com/' + }, + enableRequirement: { + architecture: { + app: false, + web: true + }, + networks: { + type: 'opt-out', + networks: {} + }, + target: 'stable', + web3: { + [src/* NetworkPluginID.PLUGIN_EVM */.FF.PLUGIN_EVM]: { + supportedChainIds: [ + types/* ChainId.Mainnet */.a_.Mainnet, + types/* ChainId.Rinkeby */.a_.Rinkeby + ] + }, + [src/* NetworkPluginID.PLUGIN_FLOW */.FF.PLUGIN_FLOW]: { + supportedChainIds: [] + }, + [src/* NetworkPluginID.PLUGIN_SOLANA */.FF.PLUGIN_SOLANA]: { + supportedChainIds: [] + } + } + }, + contribution: { + metadataKeys: new Set([ + constants/* META_KEY */.U6 + ]) + }, + i18n: languages +}; + + +/***/ }), + +/***/ 97300: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "A7": () => (/* binding */ supportedOracleChainId), +/* harmony export */ "LH": () => (/* binding */ NATIVE_TOKEN), +/* harmony export */ "R0": () => (/* binding */ errors), +/* harmony export */ "U6": () => (/* binding */ META_KEY), +/* harmony export */ "Uu": () => (/* binding */ PLUGIN_ID), +/* harmony export */ "VX": () => (/* binding */ ZERO_HASH), +/* harmony export */ "W6": () => (/* binding */ ZERO_ADDR), +/* harmony export */ "X5": () => (/* binding */ MASK_SWAP_V1), +/* harmony export */ "i4": () => (/* binding */ TOKEN_LIST_URL), +/* harmony export */ "ll": () => (/* binding */ ATTRACE_FEE_PERCENT), +/* harmony export */ "lz": () => (/* binding */ SWAP_CHAIN_ID), +/* harmony export */ "w": () => (/* binding */ supportedChainId), +/* harmony export */ "wZ": () => (/* binding */ MASK_REFERRER) +/* harmony export */ }); +/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(72499); + +const PLUGIN_ID = 'com.maskbook.referral'; +const META_KEY = `${PLUGIN_ID}:1`; +const MASK_REFERRER = '0x172059839d80773eC8617C4CB33835175d364cEE'; +const MASK_SWAP_V1 = 'maskswapv1'; +const ATTRACE_FEE_PERCENT = 5; +const NATIVE_TOKEN = '0x0000000000000000000000000000000000000000'; +const ZERO_ADDR = '0x0000000000000000000000000000000000000000'; +const ZERO_HASH = '0x0000000000000000000000000000000000000000000000000000000000000000'; +var ORACLE_CHAIN_ID; +(function(ORACLE_CHAIN_ID) { + ORACLE_CHAIN_ID[ORACLE_CHAIN_ID["testnet"] = 4470] = "testnet"; + ORACLE_CHAIN_ID[ORACLE_CHAIN_ID["mainnet"] = 147] = "mainnet"; +})(ORACLE_CHAIN_ID || (ORACLE_CHAIN_ID = {})); +const supportedChainId = _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .ChainId.Mainnet */ .a_.Mainnet; +const SWAP_CHAIN_ID = _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .ChainId.Mainnet */ .a_.Mainnet; +const supportedOracleChainId = ORACLE_CHAIN_ID.mainnet; +const TOKEN_LIST_URL = 'https://discovery.attrace.com/mainnet/tokens.json'; +// testnet example +// export const supportedChainId = ChainId.Rinkeby +// export const SWAP_CHAIN_ID = ChainId.Mainnet +// export const supportedOracleChainId = ORACLE_CHAIN_ID.testnet +const errors = { + rpc: 'Failed to fetch', + referrerInvalid: 'Code: -32600. referrer invalid' +}; + + +/***/ }), + +/***/ 73171: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "u": () => (/* binding */ base) /* harmony export */ }); -/* harmony import */ var _masknet_plugin_infra_web3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(67071); -/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(65506); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(51397); +/* harmony import */ var _masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(67938); +/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(72499); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(21114); @@ -24988,7 +25252,7 @@ const base = { }, target: 'stable', web3: { - [_masknet_plugin_infra_web3__WEBPACK_IMPORTED_MODULE_0__/* .NetworkPluginID.PLUGIN_EVM */ .FF.PLUGIN_EVM]: { + [_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .NetworkPluginID.PLUGIN_EVM */ .FF.PLUGIN_EVM]: { supportedChainIds: [ _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Mainnet */ .a_.Mainnet, _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.BSC */ .a_.BSC, @@ -24997,13 +25261,14 @@ const base = { _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.xDai */ .a_.xDai, _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Aurora */ .a_.Aurora, _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Avalanche */ .a_.Avalanche, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Fantom */ .a_.Fantom, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Fantom */ .a_.Fantom, + _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Harmony */ .a_.Harmony, ] }, - [_masknet_plugin_infra_web3__WEBPACK_IMPORTED_MODULE_0__/* .NetworkPluginID.PLUGIN_FLOW */ .FF.PLUGIN_FLOW]: { + [_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .NetworkPluginID.PLUGIN_FLOW */ .FF.PLUGIN_FLOW]: { supportedChainIds: [] }, - [_masknet_plugin_infra_web3__WEBPACK_IMPORTED_MODULE_0__/* .NetworkPluginID.PLUGIN_SOLANA */ .FF.PLUGIN_SOLANA]: { + [_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .NetworkPluginID.PLUGIN_SOLANA */ .FF.PLUGIN_SOLANA]: { supportedChainIds: [] } } @@ -25013,7 +25278,7 @@ const base = { /***/ }), -/***/ 51397: +/***/ 21114: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; @@ -25022,8 +25287,8 @@ const base = { /* harmony export */ "k": () => (/* binding */ LDO_PAIRS) /* harmony export */ }); /* unused harmony exports SAVINGS_PLUGIN_NAME, AAVE_PAIRS */ -/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(33690); -/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(65506); +/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(91761); +/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(72499); const SAVINGS_PLUGIN_NAME = 'Savings'; const SAVINGS_PLUGIN_ID = 'com.savings'; @@ -25163,14 +25428,14 @@ const AAVE_PAIRS = [ /***/ }), -/***/ 40939: +/***/ 89184: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "u": () => (/* binding */ base) /* harmony export */ }); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(78416); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(75076); const base = { ID: _constants__WEBPACK_IMPORTED_MODULE_0__/* .SNAPSHOT_PLUGIN_ID */ .ly, @@ -25207,11 +25472,12 @@ const base = { /***/ }), -/***/ 78416: +/***/ 75076: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "c_": () => (/* binding */ SNAPSHOT_VOTE_DOMAIN), /* harmony export */ "ly": () => (/* binding */ SNAPSHOT_PLUGIN_ID), /* harmony export */ "q$": () => (/* binding */ SNAPSHOT_GET_SCORE_API) /* harmony export */ }); @@ -25219,25 +25485,151 @@ const base = { const SNAPSHOT_PLUGIN_NAME = 'Snapshot'; const SNAPSHOT_PLUGIN_ID = 'org.snapshot'; const SNAPSHOT_GET_SCORE_API = 'https://cors.r2d2.to/?https://score.snapshot.org/api/scores'; +const SNAPSHOT_VOTE_DOMAIN = { + name: 'snapshot', + version: '0.1.4' +}; /***/ }), -/***/ 93041: +/***/ 2358: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "u": () => (/* binding */ base) -/* harmony export */ }); -/* harmony import */ var _masknet_plugin_infra_web3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(67071); -/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(65506); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(22684); + +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "u": () => (/* binding */ base) +}); + +// EXTERNAL MODULE: ../plugin-infra/src/entry.ts +var entry = __webpack_require__(70226); +;// CONCATENATED MODULE: ./src/plugins/Tips/locales/en-US.json +const en_US_namespaceObject = JSON.parse('{"tips":"Tips","tip_to":"To","cancel":"Cancel","confirm":"Confirm","default":"Default","token_insufficient_balance":"Insufficient balance","send_tip":"Send","sending_tip":"Sending...","nft_not_belong_to_you":"The collectible doesn\'t exist or belong to you.","send_tip_successfully":"Sent tip successfully.","send_specific_tip_successfully":"Sent {{amount}} {{name}} tip successfully.","tip_share":"Share","tip_connect_wallet_message":"Please connect to a wallet.","tip_connect_wallet":"Connect Wallet","search":"Search","tip_type_token":"Token","tip_type_nft":"NFT","tip_wallets_missed":"Wallets not found.","tip_contracts":"Contracts","tip_mask_promote":"Install https://mask.io/download-links to send your first tip.","tip_token_share_post":"I just tipped {{amount}} {{symbol}} to @{{recipientSnsId}}\'s wallet address {{recipient}}\\n\\n{{promote}}","tip_nft_share_post":"I just tipped a {{name}} to @{{recipientSnsId}}\'s wallet address {{recipient}}\\n\\n{{promote}}","tip_add":"Add","tip_adding":"Adding","tip_add_collectibles":"Add Collectibles","tip_add_collectibles_contract_address":"Input contract address","tip_add_collectibles_token_id":"Token ID","tip_add_collectibles_error":"The contract address is incorrect or the collectible does not belong to you.","tip_loading":"Loading","tip_empty_nft":"No any collectible is available to preview. Please add your collectible here.","tip_disconnect_dialog_title":"Disconnect Wallet?","tip_persona_sign_success":"Persona signed successfully.","tip_persona_sign_error":"Persona Signature failed.","tip_wallet_sign_success":"The wallet is connected.","tip_wallet_sign_error":"Wallet connection failed.","tip_wallet_add":"Please add wallet","tip_connect_your_wallet":"Connect your wallet","tip_verify_line_intro":"Please add and verify your wallet to set the address for receiving tips.","tip_empty_list":"Please set wallets to receive tips.","tip_set_as_default":"Set as default","tip_copy_success_of_wallet_addr":"Copy wallet address successfully!","copy_address":"Copy Address","view_on_explorer":"View on Explorer"}'); +;// CONCATENATED MODULE: ./src/plugins/Tips/locales/ja-JP.json +const ja_JP_namespaceObject = {}; +;// CONCATENATED MODULE: ./src/plugins/Tips/locales/ko-KR.json +const ko_KR_namespaceObject = {}; +;// CONCATENATED MODULE: ./src/plugins/Tips/locales/qya-AA.json +const qya_AA_namespaceObject = JSON.parse('{"tips":"crwdns16436:0crwdne16436:0","tip_to":"crwdns16438:0crwdne16438:0","cancel":"crwdns16492:0crwdne16492:0","confirm":"crwdns16494:0crwdne16494:0","default":"crwdns16496:0crwdne16496:0","token_insufficient_balance":"crwdns16440:0crwdne16440:0","send_tip":"crwdns16442:0crwdne16442:0","sending_tip":"crwdns16444:0crwdne16444:0","nft_not_belong_to_you":"crwdns16446:0crwdne16446:0","send_tip_successfully":"crwdns16448:0crwdne16448:0","send_specific_tip_successfully":"crwdns16450:0{{amount}}crwdnd16450:0{{name}}crwdne16450:0","tip_share":"crwdns16452:0crwdne16452:0","tip_connect_wallet_message":"crwdns16454:0crwdne16454:0","tip_connect_wallet":"crwdns16456:0crwdne16456:0","search":"crwdns16458:0crwdne16458:0","tip_type_token":"crwdns16460:0crwdne16460:0","tip_type_nft":"crwdns16462:0crwdne16462:0","tip_wallets_missed":"crwdns16464:0crwdne16464:0","tip_contracts":"crwdns16466:0crwdne16466:0","tip_mask_promote":"crwdns16468:0crwdne16468:0","tip_token_share_post":"crwdns16470:0{{amount}}crwdnd16470:0{{symbol}}crwdnd16470:0{{recipientSnsId}}crwdnd16470:0{{recipient}}crwdnd16470:0{{promote}}crwdne16470:0","tip_nft_share_post":"crwdns16472:0{{name}}crwdnd16472:0{{recipientSnsId}}crwdnd16472:0{{recipient}}crwdnd16472:0{{promote}}crwdne16472:0","tip_add":"crwdns16474:0crwdne16474:0","tip_adding":"crwdns16476:0crwdne16476:0","tip_add_collectibles":"crwdns16478:0crwdne16478:0","tip_add_collectibles_contract_address":"crwdns16480:0crwdne16480:0","tip_add_collectibles_token_id":"crwdns16482:0crwdne16482:0","tip_add_collectibles_error":"crwdns16484:0crwdne16484:0","tip_loading":"crwdns16486:0crwdne16486:0","tip_empty_nft":"crwdns16488:0crwdne16488:0","tip_disconnect_dialog_title":"crwdns16498:0crwdne16498:0","tip_persona_sign_success":"crwdns16500:0crwdne16500:0","tip_persona_sign_error":"crwdns16502:0crwdne16502:0","tip_wallet_sign_success":"crwdns16504:0crwdne16504:0","tip_wallet_sign_error":"crwdns16506:0crwdne16506:0","tip_wallet_add":"crwdns16508:0crwdne16508:0","tip_connect_your_wallet":"crwdns16510:0crwdne16510:0","tip_verify_line_intro":"crwdns16512:0crwdne16512:0","tip_empty_list":"crwdns16514:0crwdne16514:0","tip_set_as_default":"crwdns16516:0crwdne16516:0","tip_copy_success_of_wallet_addr":"crwdns16518:0crwdne16518:0","copy_address":"crwdns16520:0crwdne16520:0","view_on_explorer":"crwdns16522:0crwdne16522:0"}'); +;// CONCATENATED MODULE: ./src/plugins/Tips/locales/zh-CN.json +const zh_CN_namespaceObject = {}; +;// CONCATENATED MODULE: ./src/plugins/Tips/locales/zh-TW.json +const zh_TW_namespaceObject = {}; +;// CONCATENATED MODULE: ./src/plugins/Tips/locales/languages.ts +// This file is auto generated. DO NOT EDIT +// Run `npx gulp sync-languages` to regenerate. +// Default fallback language in a family of languages are chosen by the alphabet order +// To overwrite this, please overwrite packages/scripts/src/locale-kit-next/index.ts + + + + + + +const languages = { + en: en_US_namespaceObject, + ja: ja_JP_namespaceObject, + ko: ko_KR_namespaceObject, + qy: qya_AA_namespaceObject, + 'zh-CN': zh_CN_namespaceObject, + zh: zh_TW_namespaceObject +}; +// @ts-ignore +if (false) {} + +;// CONCATENATED MODULE: ./src/plugins/Tips/base.ts + + +const base = { + ID: entry/* PluginId.Tips */.je.Tips, + name: { + fallback: 'Tips' + }, + description: { + fallback: 'Tips Entrance' + }, + publisher: { + name: { + fallback: 'Mask Network' + }, + link: 'https://mask.io/' + }, + enableRequirement: { + architecture: { + app: true, + web: true + }, + networks: { + type: 'opt-out', + networks: {} + }, + target: 'stable' + }, + i18n: languages +}; + + +/***/ }), + +/***/ 96322: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; + +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "u": () => (/* binding */ base) +}); + +// EXTERNAL MODULE: ../web3-shared/base/src/index.ts + 1 modules +var src = __webpack_require__(67938); +// EXTERNAL MODULE: ../web3-shared/evm/types/index.ts +var types = __webpack_require__(72499); +// EXTERNAL MODULE: ./src/plugins/Trader/constants/index.ts + 2 modules +var constants = __webpack_require__(45374); +;// CONCATENATED MODULE: ./src/plugins/Trader/locales/en-US.json +const en_US_namespaceObject = JSON.parse('{"promote":"Instantly token exchange on Twitter. Install Mask.io to explore “better server” on Multi-chain Dex.","account_promote$default":"","account_promote$twitter":"Follow @$t(mask:twitter_account) to swap cryptocurrencies on Twitter","account_promote$facebook":"Follow @$t(mask:facebook_account) to swap cryptocurrencies on Facebook","share_text":"I just swapped {{input_amount}} {{input_symbol}} for {{output_amount}} {{output_symbol}}. {{account_promote}}\\n$t(mask:hash_tag)"}'); +;// CONCATENATED MODULE: ./src/plugins/Trader/locales/ja-JP.json +const ja_JP_namespaceObject = {}; +;// CONCATENATED MODULE: ./src/plugins/Trader/locales/ko-KR.json +const ko_KR_namespaceObject = {}; +;// CONCATENATED MODULE: ./src/plugins/Trader/locales/qya-AA.json +const qya_AA_namespaceObject = JSON.parse('{"promote":"crwdns16896:0crwdne16896:0","account_promote$default":"crwdns17290:0crwdne17290:0","account_promote$twitter":"crwdns17292:0$t(mask:twitter_account)crwdne17292:0","account_promote$facebook":"crwdns17294:0$t(mask:facebook_account)crwdne17294:0","share_text":"crwdns17296:0{{input_amount}}crwdnd17296:0{{input_symbol}}crwdnd17296:0{{output_amount}}crwdnd17296:0{{output_symbol}}crwdnd17296:0{{account_promote}}crwdnd17296:0$t(mask:hash_tag)crwdne17296:0"}'); +;// CONCATENATED MODULE: ./src/plugins/Trader/locales/zh-CN.json +const zh_CN_namespaceObject = JSON.parse('{"promote":"在推特上即可完成加密货币的即时互换。安装 Mask.io ,尝试快速、低费用的代币互换功能。"}'); +;// CONCATENATED MODULE: ./src/plugins/Trader/locales/zh-TW.json +const zh_TW_namespaceObject = {}; +;// CONCATENATED MODULE: ./src/plugins/Trader/locales/languages.ts +// This file is auto generated. DO NOT EDIT +// Run `npx gulp sync-languages` to regenerate. +// Default fallback language in a family of languages are chosen by the alphabet order +// To overwrite this, please overwrite packages/scripts/src/locale-kit-next/index.ts + + + + + + +const languages = { + en: en_US_namespaceObject, + ja: ja_JP_namespaceObject, + ko: ko_KR_namespaceObject, + qy: qya_AA_namespaceObject, + 'zh-CN': zh_CN_namespaceObject, + zh: zh_TW_namespaceObject +}; +// @ts-ignore +if (false) {} + +;// CONCATENATED MODULE: ./src/plugins/Trader/base.ts + const base = { - ID: _constants__WEBPACK_IMPORTED_MODULE_1__/* .PLUGIN_ID */ .Uu, + ID: constants/* PLUGIN_ID */.Uu, name: { fallback: 'Trader' }, @@ -25261,32 +25653,34 @@ const base = { }, target: 'stable', web3: { - [_masknet_plugin_infra_web3__WEBPACK_IMPORTED_MODULE_0__/* .NetworkPluginID.PLUGIN_EVM */ .FF.PLUGIN_EVM]: { + [src/* NetworkPluginID.PLUGIN_EVM */.FF.PLUGIN_EVM]: { supportedChainIds: [ - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Mainnet */ .a_.Mainnet, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.BSC */ .a_.BSC, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Matic */ .a_.Matic, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Arbitrum */ .a_.Arbitrum, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.xDai */ .a_.xDai, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Aurora */ .a_.Aurora, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Avalanche */ .a_.Avalanche, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Fantom */ .a_.Fantom, + types/* ChainId.Mainnet */.a_.Mainnet, + types/* ChainId.BSC */.a_.BSC, + types/* ChainId.Matic */.a_.Matic, + types/* ChainId.Arbitrum */.a_.Arbitrum, + types/* ChainId.xDai */.a_.xDai, + types/* ChainId.Aurora */.a_.Aurora, + types/* ChainId.Avalanche */.a_.Avalanche, + types/* ChainId.Fantom */.a_.Fantom, + types/* ChainId.Harmony */.a_.Harmony, ] }, - [_masknet_plugin_infra_web3__WEBPACK_IMPORTED_MODULE_0__/* .NetworkPluginID.PLUGIN_FLOW */ .FF.PLUGIN_FLOW]: { + [src/* NetworkPluginID.PLUGIN_FLOW */.FF.PLUGIN_FLOW]: { supportedChainIds: [] }, - [_masknet_plugin_infra_web3__WEBPACK_IMPORTED_MODULE_0__/* .NetworkPluginID.PLUGIN_SOLANA */ .FF.PLUGIN_SOLANA]: { + [src/* NetworkPluginID.PLUGIN_SOLANA */.FF.PLUGIN_SOLANA]: { supportedChainIds: [] } } - } + }, + i18n: languages }; /***/ }), -/***/ 71126: +/***/ 91777: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; @@ -25294,7 +25688,7 @@ const base = { /* harmony export */ "Z": () => (/* binding */ DODO_BASE_URL) /* harmony export */ }); /* unused harmony export networkNames */ -/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(65506); +/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(72499); const DODO_BASE_URL = 'https://dodoex.r2d2.to'; const networkNames = { @@ -25311,13 +25705,14 @@ const networkNames = { [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .NetworkType.Fuse */ .td.Fuse]: '', [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .NetworkType.Metis */ .td.Metis]: '', [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .NetworkType.Optimistic */ .td.Optimistic]: '', + [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .NetworkType.Harmony */ .td.Harmony]: 'harmony', [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .NetworkType.Conflux */ .td.Conflux]: '' }; /***/ }), -/***/ 22684: +/***/ 45374: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; @@ -25337,6 +25732,8 @@ __webpack_require__.d(__webpack_exports__, { "Ey": () => (/* reexport */ CRYPTOCURRENCY_MAP_EXPIRES_AT), "jg": () => (/* reexport */ uniswap/* DEFAULT_MULTICALL_GAS_LIMIT */.jg), "ag": () => (/* reexport */ trader/* DEFAULT_TRANSACTION_DEADLINE */.ag), + "bT": () => (/* reexport */ defikingdoms/* DEFIKINGDOMS_BASE_AGAINST_TOKENS */.b), + "Cu": () => (/* reexport */ defikingdoms/* DEFIKINGDOMS_CUSTOM_BASES */.C), "rV": () => (/* reexport */ trader/* L2_TRANSACTION_DEADLINE */.rV), "s9": () => (/* reexport */ uniswap/* MAX_HOP */.s9), "R8": () => (/* reexport */ mdex/* MDEX_BASE_AGAINST_TOKENS */.R), @@ -25344,6 +25741,8 @@ __webpack_require__.d(__webpack_exports__, { "rI": () => (/* reexport */ trader/* MINIMUM_AMOUNT */.rI), "IS": () => (/* reexport */ trader/* ONE_BIPS */.IS), "yC": () => (/* reexport */ uniswap/* ONE_HUNDRED_PERCENT */.yC), + "vQ": () => (/* reexport */ openswap/* OPENSWAP_BASE_AGAINST_TOKENS */.v), + "F8": () => (/* reexport */ openswap/* OPENSWAP_CUSTOM_BASES */.F), "Dh": () => (/* reexport */ pancakeswap/* PANCAKESWAP_BASE_AGAINST_TOKENS */.D), "tm": () => (/* reexport */ pancakeswap/* PANCAKESWAP_CUSTOM_BASES */.t), "h9": () => (/* reexport */ pangolindex/* PANGOLIN_BASE_AGAINST_TOKENS */.h), @@ -25365,6 +25764,8 @@ __webpack_require__.d(__webpack_exports__, { "cp": () => (/* reexport */ trisolaris/* TRISOLARIS_CUSTOM_BASES */.c), "u7": () => (/* reexport */ uniswap/* UNISWAP_BASE_AGAINST_TOKENS */.u7), "QQ": () => (/* reexport */ uniswap/* UNISWAP_CUSTOM_BASES */.QQ), + "jV": () => (/* reexport */ venomswap/* VENOMSWAP_BASE_AGAINST_TOKENS */.j), + "FV": () => (/* reexport */ venomswap/* VENOMSWAP_CUSTOM_BASES */.F), "NV": () => (/* reexport */ wannaswap/* WANNASWAP_BASE_AGAINST_TOKENS */.N), "zE": () => (/* reexport */ wannaswap/* WANNASWAP_CUSTOM_BASES */.z), "fI": () => (/* reexport */ uniswap/* ZERO_PERCENT */.fI), @@ -25375,15 +25776,15 @@ __webpack_require__.d(__webpack_exports__, { // UNUSED EXPORTS: DODO_BASE_URL, PRICE_IMPACT_HIGH, PRICE_IMPACT_LOW, PRICE_IMPACT_MEDIUM, PRICE_IMPACT_NON_EXPERT_BLOCKED, PRICE_IMPACT_WITHOUT_FEE_CONFIRM_MIN, networkNames // EXTERNAL MODULE: ./src/plugins/Trader/constants/0x.ts -var _0x = __webpack_require__(17902); +var _0x = __webpack_require__(49959); // EXTERNAL MODULE: ./src/plugins/Trader/constants/uniswap.ts -var uniswap = __webpack_require__(48793); +var uniswap = __webpack_require__(18627); // EXTERNAL MODULE: ./src/plugins/Trader/constants/balancer.ts -var balancer = __webpack_require__(2728); +var balancer = __webpack_require__(69461); // EXTERNAL MODULE: ./src/plugins/Trader/constants/trader.ts -var trader = __webpack_require__(11230); +var trader = __webpack_require__(58864); // EXTERNAL MODULE: ../plugin-infra/src/entry.ts -var entry = __webpack_require__(79936); +var entry = __webpack_require__(70226); ;// CONCATENATED MODULE: ./src/plugins/Trader/constants/trending.ts // #region plugin settings @@ -25403,17 +25804,17 @@ const CRYPTOCURRENCY_MAP_EXPIRES_AT = 60 /* seconds */ * 1000 /* milliseconds * const APPROVED_TOKENS_MAX = 10; // EXTERNAL MODULE: ./src/plugins/Trader/constants/sushiswap.ts -var sushiswap = __webpack_require__(93688); +var sushiswap = __webpack_require__(85394); // EXTERNAL MODULE: ./src/plugins/Trader/constants/sashimiswap.ts -var sashimiswap = __webpack_require__(7723); +var sashimiswap = __webpack_require__(53331); // EXTERNAL MODULE: ./src/plugins/Trader/constants/quickswap.ts -var quickswap = __webpack_require__(64210); +var quickswap = __webpack_require__(7214); // EXTERNAL MODULE: ./src/plugins/Trader/constants/pancakeswap.ts -var pancakeswap = __webpack_require__(45498); +var pancakeswap = __webpack_require__(9712); // EXTERNAL MODULE: ./src/plugins/Trader/constants/dodo.ts -var dodo = __webpack_require__(71126); +var dodo = __webpack_require__(91777); // EXTERNAL MODULE: ../web3-shared/evm/types/index.ts -var types = __webpack_require__(65506); +var types = __webpack_require__(72499); ;// CONCATENATED MODULE: ./src/plugins/Trader/constants/bancor.ts const BANCOR_API_BASE_URL = { @@ -25422,15 +25823,21 @@ const BANCOR_API_BASE_URL = { }; // EXTERNAL MODULE: ./src/plugins/Trader/constants/traderjoe.ts -var traderjoe = __webpack_require__(57362); +var traderjoe = __webpack_require__(34103); // EXTERNAL MODULE: ./src/plugins/Trader/constants/pangolindex.ts -var pangolindex = __webpack_require__(59463); +var pangolindex = __webpack_require__(96728); // EXTERNAL MODULE: ./src/plugins/Trader/constants/wannaswap.ts -var wannaswap = __webpack_require__(44814); +var wannaswap = __webpack_require__(82487); // EXTERNAL MODULE: ./src/plugins/Trader/constants/trisolaris.ts -var trisolaris = __webpack_require__(91722); +var trisolaris = __webpack_require__(35675); +// EXTERNAL MODULE: ./src/plugins/Trader/constants/venomswap.ts +var venomswap = __webpack_require__(18188); +// EXTERNAL MODULE: ./src/plugins/Trader/constants/openswap.ts +var openswap = __webpack_require__(50052); // EXTERNAL MODULE: ./src/plugins/Trader/constants/mdex.ts -var mdex = __webpack_require__(43143); +var mdex = __webpack_require__(7294); +// EXTERNAL MODULE: ./src/plugins/Trader/constants/defikingdoms.ts +var defikingdoms = __webpack_require__(33274); ;// CONCATENATED MODULE: ./src/plugins/Trader/constants/index.ts @@ -25449,17 +25856,20 @@ var mdex = __webpack_require__(43143); + + + /***/ }), -/***/ 17446: +/***/ 56071: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "u": () => (/* binding */ base) /* harmony export */ }); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(62386); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(20102); const base = { ID: _constants__WEBPACK_IMPORTED_MODULE_0__/* .PLUGIN_ID */ .Uu, @@ -25491,7 +25901,7 @@ const base = { /***/ }), -/***/ 62386: +/***/ 20102: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; @@ -25502,7 +25912,7 @@ const base = { /* harmony export */ "o1": () => (/* binding */ TRANSAK_API_KEY_PRODUCTION) /* harmony export */ }); /* unused harmony export TRANSAK_API_KEY_STAGING */ -/* harmony import */ var _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(79936); +/* harmony import */ var _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(70226); const TRANSAK_API_KEY_PRODUCTION = '253be1f0-c6d8-46e7-9d80-38f33bf973e2'; const TRANSAK_API_KEY_STAGING = '4fcd6904-706b-4aff-bd9d-77422813bbb7'; @@ -25513,16 +25923,16 @@ const PLUGIN_DESCRIPTION = 'The Fiat On-Ramp Aggregator on Mask Network.'; /***/ }), -/***/ 99883: +/***/ 33924: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "u": () => (/* binding */ base) /* harmony export */ }); -/* harmony import */ var _masknet_plugin_infra_web3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(67071); -/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(65506); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(14624); +/* harmony import */ var _masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(67938); +/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(72499); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(64147); @@ -25551,7 +25961,7 @@ const base = { }, target: 'insider', web3: { - [_masknet_plugin_infra_web3__WEBPACK_IMPORTED_MODULE_0__/* .NetworkPluginID.PLUGIN_EVM */ .FF.PLUGIN_EVM]: { + [_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .NetworkPluginID.PLUGIN_EVM */ .FF.PLUGIN_EVM]: { supportedChainIds: [ _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Mainnet */ .a_.Mainnet, _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.xDai */ .a_.xDai, @@ -25559,10 +25969,10 @@ const base = { _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Rinkeby */ .a_.Rinkeby ] }, - [_masknet_plugin_infra_web3__WEBPACK_IMPORTED_MODULE_0__/* .NetworkPluginID.PLUGIN_FLOW */ .FF.PLUGIN_FLOW]: { + [_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .NetworkPluginID.PLUGIN_FLOW */ .FF.PLUGIN_FLOW]: { supportedChainIds: [] }, - [_masknet_plugin_infra_web3__WEBPACK_IMPORTED_MODULE_0__/* .NetworkPluginID.PLUGIN_SOLANA */ .FF.PLUGIN_SOLANA]: { + [_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .NetworkPluginID.PLUGIN_SOLANA */ .FF.PLUGIN_SOLANA]: { supportedChainIds: [] } } @@ -25577,7 +25987,7 @@ const base = { /***/ }), -/***/ 14624: +/***/ 64147: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; @@ -25590,8 +26000,8 @@ const base = { /* harmony export */ "rx": () => (/* binding */ pluginMetaKey), /* harmony export */ "vf": () => (/* binding */ keyServerEndpoint) /* harmony export */ }); -/* harmony import */ var _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(79936); -/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(65506); +/* harmony import */ var _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(70226); +/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(72499); const pluginName = 'Unlock Protocol'; @@ -25611,14 +26021,14 @@ const paywallUrl = 'https://app.unlock-protocol.com/checkout?paywallConfig='; /***/ }), -/***/ 12482: +/***/ 40587: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "u": () => (/* binding */ base) /* harmony export */ }); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(30613); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(92522); const base = { ID: _constants__WEBPACK_IMPORTED_MODULE_0__/* .PLUGIN_ID */ .Uu, @@ -25650,7 +26060,7 @@ const base = { /***/ }), -/***/ 30613: +/***/ 92522: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; @@ -25661,7 +26071,7 @@ const base = { /* harmony export */ "Uu": () => (/* binding */ PLUGIN_ID), /* harmony export */ "Y": () => (/* binding */ TWEET_BASE_URL) /* harmony export */ }); -/* harmony import */ var _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(79936); +/* harmony import */ var _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(70226); // #region plugin definitions // proxy: https://v.cent.co/data/tweet-txn @@ -25675,24 +26085,21 @@ const PLUGIN_DESCRIPTION = 'A Plugin for https://v.cent.co/'; /***/ }), -/***/ 91469: +/***/ 25302: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "UB": () => (/* reexport safe */ _masknet_plugin_wallet__WEBPACK_IMPORTED_MODULE_0__.UB), -/* harmony export */ "Uu": () => (/* reexport safe */ _masknet_plugin_wallet__WEBPACK_IMPORTED_MODULE_0__.Uu), -/* harmony export */ "js": () => (/* reexport safe */ _masknet_plugin_wallet__WEBPACK_IMPORTED_MODULE_0__.js) +/* harmony export */ "Uu": () => (/* reexport safe */ _masknet_plugin_wallet__WEBPACK_IMPORTED_MODULE_0__.Uu) /* harmony export */ }); -/* unused harmony export OPENSEA_API_KEY */ -/* harmony import */ var _masknet_plugin_wallet__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(19841); +/* harmony import */ var _masknet_plugin_wallet__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(10503); -const OPENSEA_API_KEY = 'c38fe2446ee34f919436c32db480a2e3'; /***/ }), -/***/ 84797: +/***/ 91788: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; @@ -25700,67 +26107,25 @@ const OPENSEA_API_KEY = 'c38fe2446ee34f919436c32db480a2e3'; /* harmony export */ "R": () => (/* reexport safe */ _masknet_plugin_wallet__WEBPACK_IMPORTED_MODULE_1__.R$), /* harmony export */ "V": () => (/* binding */ WalletRPC) /* harmony export */ }); -/* harmony import */ var _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(79936); -/* harmony import */ var _masknet_plugin_wallet__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(19841); +/* harmony import */ var _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(70226); +/* harmony import */ var _masknet_plugin_wallet__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(10503); -const WalletRPC = (0,_masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__/* .createPluginRPC */ .V8)(_masknet_plugin_wallet__WEBPACK_IMPORTED_MODULE_1__/* .PLUGIN_ID */ .Uu, ()=>Promise.all(/* import() */[__webpack_require__.e(2698), __webpack_require__.e(6739), __webpack_require__.e(4227), __webpack_require__.e(4544), __webpack_require__.e(5737), __webpack_require__.e(3883), __webpack_require__.e(6045), __webpack_require__.e(1077), __webpack_require__.e(8117), __webpack_require__.e(2943), __webpack_require__.e(5756), __webpack_require__.e(8492), __webpack_require__.e(7765), __webpack_require__.e(1305), __webpack_require__.e(5891), __webpack_require__.e(8936), __webpack_require__.e(6265), __webpack_require__.e(1246), __webpack_require__.e(7141), __webpack_require__.e(708), __webpack_require__.e(9447), __webpack_require__.e(7764), __webpack_require__.e(4859), __webpack_require__.e(8563), __webpack_require__.e(3615)]).then(__webpack_require__.bind(__webpack_require__, 31880)) +const WalletRPC = (0,_masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__/* .createPluginRPC */ .V8)(_masknet_plugin_wallet__WEBPACK_IMPORTED_MODULE_1__/* .PLUGIN_ID */ .Uu, ()=>Promise.all(/* import() */[__webpack_require__.e(6739), __webpack_require__.e(4544), __webpack_require__.e(1077), __webpack_require__.e(2943), __webpack_require__.e(8117), __webpack_require__.e(6045), __webpack_require__.e(6265), __webpack_require__.e(4859), __webpack_require__.e(1993), __webpack_require__.e(30), __webpack_require__.e(6685)]).then(__webpack_require__.bind(__webpack_require__, 60364)) , _masknet_plugin_wallet__WEBPACK_IMPORTED_MODULE_1__/* .WalletMessages.events.rpc */ .R$.events.rpc); /***/ }), -/***/ 94232: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "DT": () => (/* binding */ currentMaskWalletChainIdSettings), -/* harmony export */ "GZ": () => (/* binding */ currentGasOptionsSettings), -/* harmony export */ "JC": () => (/* binding */ currentTokenPricesSettings), -/* harmony export */ "Jg": () => (/* binding */ currentMaskWalletLockStatusSettings), -/* harmony export */ "T_": () => (/* binding */ currentMaskWalletAccountSettings), -/* harmony export */ "aK": () => (/* binding */ currentAccountSettings), -/* harmony export */ "br": () => (/* binding */ currentMaskWalletNetworkSettings), -/* harmony export */ "fX": () => (/* binding */ currentNetworkSettings), -/* harmony export */ "rI": () => (/* binding */ currentFungibleAssetDataProviderSettings), -/* harmony export */ "t1": () => (/* binding */ currentProviderSettings), -/* harmony export */ "uR": () => (/* binding */ currentNonFungibleAssetDataProviderSettings), -/* harmony export */ "wU": () => (/* binding */ currentChainIdSettings) -/* harmony export */ }); -/* harmony import */ var lodash_unified__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(23587); -/* harmony import */ var _settings_createSettings__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(24646); -/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(65506); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(91469); - - - - -const currentMaskWalletAccountSettings = (0,_settings_createSettings__WEBPACK_IMPORTED_MODULE_0__/* .createGlobalSettings */ .TI)(`${_constants__WEBPACK_IMPORTED_MODULE_1__/* .PLUGIN_ID */ .Uu}+selectedMaskWalletAddress`, ''); -const currentMaskWalletChainIdSettings = (0,_settings_createSettings__WEBPACK_IMPORTED_MODULE_0__/* .createGlobalSettings */ .TI)(`${_constants__WEBPACK_IMPORTED_MODULE_1__/* .PLUGIN_ID */ .Uu}+maskWalletChainId`, _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Mainnet */ .a_.Mainnet); -const currentMaskWalletNetworkSettings = (0,_settings_createSettings__WEBPACK_IMPORTED_MODULE_0__/* .createGlobalSettings */ .TI)(`${_constants__WEBPACK_IMPORTED_MODULE_1__/* .PLUGIN_ID */ .Uu}+selectedMaskWalletNetwork`, _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .NetworkType.Ethereum */ .td.Ethereum); -const currentMaskWalletLockStatusSettings = (0,_settings_createSettings__WEBPACK_IMPORTED_MODULE_0__/* .createGlobalSettings */ .TI)(`${_constants__WEBPACK_IMPORTED_MODULE_1__/* .PLUGIN_ID */ .Uu}+maskWalletLockStatus`, _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .LockStatus.INIT */ .Ow.INIT); -const currentAccountSettings = (0,_settings_createSettings__WEBPACK_IMPORTED_MODULE_0__/* .createGlobalSettings */ .TI)(`${_constants__WEBPACK_IMPORTED_MODULE_1__/* .PLUGIN_ID */ .Uu}+selectedWalletAddress`, ''); -const currentChainIdSettings = (0,_settings_createSettings__WEBPACK_IMPORTED_MODULE_0__/* .createGlobalSettings */ .TI)(`${_constants__WEBPACK_IMPORTED_MODULE_1__/* .PLUGIN_ID */ .Uu}+chainId`, _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Mainnet */ .a_.Mainnet); -const currentNetworkSettings = (0,_settings_createSettings__WEBPACK_IMPORTED_MODULE_0__/* .createGlobalSettings */ .TI)(`${_constants__WEBPACK_IMPORTED_MODULE_1__/* .PLUGIN_ID */ .Uu}+selectedWalletNetwork`, _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .NetworkType.Ethereum */ .td.Ethereum); -const currentProviderSettings = (0,_settings_createSettings__WEBPACK_IMPORTED_MODULE_0__/* .createGlobalSettings */ .TI)(`${_constants__WEBPACK_IMPORTED_MODULE_1__/* .PLUGIN_ID */ .Uu}+selectedWalletProvider`, _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ProviderType.MaskWallet */ .lP.MaskWallet); -const currentFungibleAssetDataProviderSettings = (0,_settings_createSettings__WEBPACK_IMPORTED_MODULE_0__/* .createGlobalSettings */ .TI)(`${_constants__WEBPACK_IMPORTED_MODULE_1__/* .PLUGIN_ID */ .Uu}+fungibleAssetProvider`, _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .FungibleAssetProvider.DEBANK */ .Am.DEBANK); -const currentNonFungibleAssetDataProviderSettings = (0,_settings_createSettings__WEBPACK_IMPORTED_MODULE_0__/* .createGlobalSettings */ .TI)(`${_constants__WEBPACK_IMPORTED_MODULE_1__/* .PLUGIN_ID */ .Uu}+nonFungibleAssetProvider`, _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .NonFungibleAssetProvider.OPENSEA */ .pI.OPENSEA); -const currentGasOptionsSettings = (0,_settings_createSettings__WEBPACK_IMPORTED_MODULE_0__/* .createComplexGlobalSettings */ .w0)(`${_constants__WEBPACK_IMPORTED_MODULE_1__/* .PLUGIN_ID */ .Uu}+gasOptions`, null, lodash_unified__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z); -const currentTokenPricesSettings = (0,_settings_createSettings__WEBPACK_IMPORTED_MODULE_0__/* .createComplexGlobalSettings */ .w0)(`${_constants__WEBPACK_IMPORTED_MODULE_1__/* .PLUGIN_ID */ .Uu}+tokenPrices`, {}, lodash_unified__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z); - - -/***/ }), - -/***/ 41462: +/***/ 4348: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "u": () => (/* binding */ base) /* harmony export */ }); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5199); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(63639); const base = { ID: _constants__WEBPACK_IMPORTED_MODULE_0__/* .DHEDGE_PLUGIN_ID */ .Bc, @@ -25797,7 +26162,7 @@ const base = { /***/ }), -/***/ 5199: +/***/ 63639: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; @@ -25829,7 +26194,7 @@ function createMatchLink() { /***/ }), -/***/ 24646: +/***/ 31202: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; @@ -25841,11 +26206,11 @@ function createMatchLink() { /* harmony export */ "w0": () => (/* binding */ createComplexGlobalSettings) /* harmony export */ }); /* unused harmony export createComplexInternalSettings */ -/* harmony import */ var _dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(85646); +/* harmony import */ var _dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(88967); /* harmony import */ var _dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var _extension_service__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(5027); -/* harmony import */ var _utils_messages__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(32196); -/* harmony import */ var _dimensiondev_kit__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(28807); +/* harmony import */ var _extension_service__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(78778); +/* harmony import */ var _utils_messages__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(95175); +/* harmony import */ var _dimensiondev_kit__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(46123); @@ -25953,7 +26318,7 @@ function createNetworkSettings(key, defaultValue) { /***/ }), -/***/ 84717: +/***/ 30288: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; @@ -25970,7 +26335,140 @@ var LaunchPage; /***/ }), -/***/ 86574: +/***/ 5492: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "D": () => (/* binding */ isFacebook), +/* harmony export */ "q": () => (/* binding */ facebookBase) +/* harmony export */ }); +/* harmony import */ var _masknet_encryption__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(66525); +/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(44451); + + +const origins = [ + 'https://www.facebook.com/*', + 'https://m.facebook.com/*', + 'https://facebook.com/*' +]; +const facebookBase = { + encryptionNetwork: _masknet_encryption__WEBPACK_IMPORTED_MODULE_0__/* .SocialNetworkEnum.Facebook */ .Gq.Facebook, + networkIdentifier: _masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .EnhanceableSite.Facebook */ .Jk.Facebook, + declarativePermissions: { + origins + }, + shouldActivate (location) { + return location.hostname.endsWith('facebook.com'); + } +}; +function isFacebook(ui) { + return ui.networkIdentifier === _masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .EnhanceableSite.Facebook */ .Jk.Facebook; +} + + +/***/ }), + +/***/ 5832: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "j": () => (/* binding */ instagramBase) +/* harmony export */ }); +/* harmony import */ var _masknet_encryption__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(66525); +/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(44451); + + +const origins = [ + 'https://www.instagram.com/*', + 'https://m.instagram.com/*', + 'https://instagram.com/*' +]; +const instagramBase = { + networkIdentifier: _masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .EnhanceableSite.Instagram */ .Jk.Instagram, + encryptionNetwork: _masknet_encryption__WEBPACK_IMPORTED_MODULE_0__/* .SocialNetworkEnum.Instagram */ .Gq.Instagram, + declarativePermissions: { + origins + }, + shouldActivate (location) { + return location.host.endsWith(_masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .EnhanceableSite.Instagram */ .Jk.Instagram); + } +}; + + +/***/ }), + +/***/ 72005: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "L": () => (/* binding */ isTwitter), +/* harmony export */ "o": () => (/* binding */ twitterBase) +/* harmony export */ }); +/* harmony import */ var _masknet_encryption__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(66525); +/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(44451); + + +const origins = [ + 'https://mobile.twitter.com/*', + 'https://twitter.com/*' +]; +const twitterBase = { + networkIdentifier: _masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .EnhanceableSite.Twitter */ .Jk.Twitter, + encryptionNetwork: _masknet_encryption__WEBPACK_IMPORTED_MODULE_0__/* .SocialNetworkEnum.Twitter */ .Gq.Twitter, + declarativePermissions: { + origins + }, + shouldActivate (location) { + return location.hostname.endsWith('twitter.com'); + } +}; +function isTwitter(ui) { + return ui.networkIdentifier === _masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .EnhanceableSite.Twitter */ .Jk.Twitter; +} + + +/***/ }), + +/***/ 1250: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "G": () => (/* binding */ getCurrentSNSNetwork), +/* harmony export */ "T": () => (/* binding */ getCurrentIdentifier) +/* harmony export */ }); +/* harmony import */ var _twitter_com_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(72005); +/* harmony import */ var _facebook_com_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(5492); +/* harmony import */ var _instagram_com_base__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(5832); +/* harmony import */ var _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(70226); +/* harmony import */ var _social_network__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(82192); + + + + + +function getCurrentSNSNetwork(current) { + const table = { + [_twitter_com_base__WEBPACK_IMPORTED_MODULE_0__/* .twitterBase.networkIdentifier */ .o.networkIdentifier]: _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_3__/* .CurrentSNSNetwork.Twitter */ .mv.Twitter, + [_facebook_com_base__WEBPACK_IMPORTED_MODULE_1__/* .facebookBase.networkIdentifier */ .q.networkIdentifier]: _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_3__/* .CurrentSNSNetwork.Facebook */ .mv.Facebook, + [_instagram_com_base__WEBPACK_IMPORTED_MODULE_2__/* .instagramBase.networkIdentifier */ .j.networkIdentifier]: _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_3__/* .CurrentSNSNetwork.Instagram */ .mv.Instagram + }; + if (current in table) return table[current]; + return _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_3__/* .CurrentSNSNetwork.Unknown */ .mv.Unknown; +} +function getCurrentIdentifier() { + const current = _social_network__WEBPACK_IMPORTED_MODULE_4__/* .activatedSocialNetworkUI.collecting.identityProvider */ .LM.collecting.identityProvider?.recognized.value; + return _social_network__WEBPACK_IMPORTED_MODULE_4__/* .globalUIState.profiles.value.find */ .EJ.profiles.value.find((i)=>i.identifier === current?.identifier + ) || _social_network__WEBPACK_IMPORTED_MODULE_4__/* .globalUIState.profiles.value[0] */ .EJ.profiles.value[0]; +} + + +/***/ }), + +/***/ 27716: /***/ ((__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) => { "use strict"; @@ -25991,29 +26489,17 @@ Object.defineProperty((bignumber_js__WEBPACK_IMPORTED_MODULE_0___default().proto /***/ }), -/***/ 14005: +/***/ 55802: /***/ ((__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) => { "use strict"; -/* harmony import */ var _general__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(86574); -/* harmony import */ var _ui__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(68903); - - - - -/***/ }), - -/***/ 68903: -/***/ (() => { - -"use strict"; +/* harmony import */ var _general__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(27716); -if (typeof window === 'object' && "production" === 'development') {} /***/ }), -/***/ 81270: +/***/ 58379: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; @@ -26021,9 +26507,10 @@ if (typeof window === 'object' && "production" === 'development') {} /* harmony export */ "L": () => (/* binding */ sliceTextByUILength), /* harmony export */ "c": () => (/* binding */ getTextUILength) /* harmony export */ }); -/* eslint @dimensiondev/unicode-specific-set: ["error", { "only": "code" }] */ function getTextUILength(text) { - return Array.from(text).reduce((acc, char)=>acc + getCharUILength(char) - , 0); +/* harmony import */ var lodash_unified__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(59866); + +/* eslint @dimensiondev/unicode/specific-set: ["error", { "only": "code" }] */ function getTextUILength(text) { + return (0,lodash_unified__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)(Array.from(text).map(getCharUILength)); } function sliceTextByUILength(text, len) { const arr = Array.from(text); @@ -26045,14 +26532,14 @@ function sliceTextByUILength(text, len) { /***/ }), -/***/ 77733: +/***/ 9178: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "I": () => (/* binding */ useMatchXS) /* harmony export */ }); -/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(93854); +/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(52775); // see https://github.com/import-js/eslint-plugin-import/issues/2288 function useMatchXS() { @@ -26066,25 +26553,7 @@ function useMatchXS() { /***/ }), -/***/ 97093: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "u": () => (/* binding */ extraPermissions) -/* harmony export */ }); -async function extraPermissions(origins) { - if (!origins) return []; - const currentOrigins = (await browser.permissions.getAll()).origins || []; - const extra = origins.filter((i)=>!currentOrigins?.includes(i) - ); - return extra.length ? extra : []; -} - - -/***/ }), - -/***/ 33092: +/***/ 9956: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; @@ -26092,9 +26561,9 @@ async function extraPermissions(origins) { /* harmony export */ "C": () => (/* binding */ MaskLightTheme), /* harmony export */ "H": () => (/* binding */ MaskDarkTheme) /* harmony export */ }); -/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(25689); -/* harmony import */ var _mui_material_colors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(23047); -/* harmony import */ var _mui_material_colors__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(42063); +/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(25105); +/* harmony import */ var _mui_material_colors__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(67209); +/* harmony import */ var _mui_material_colors__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(89240); /* harmony import */ var lodash_unified__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(9084); /* harmony import */ var lodash_unified__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(46440); // ! This file is used during SSR. DO NOT import new files that does not work in SSR @@ -26205,62 +26674,15 @@ const baseTheme = (theme)=>{ /***/ }), -/***/ 42932: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "V": () => (/* binding */ useClassicMaskSNSTheme) -/* harmony export */ }); -/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(25689); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(86248); -/* harmony import */ var _social_network__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3747); -/* harmony import */ var use_subscription__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(66040); -/* harmony import */ var _MaskTheme__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(33092); -/* harmony import */ var _useThemeLanguage__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(44614); -/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(78144); -/* harmony import */ var _dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(85646); -/* harmony import */ var _dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_8__); -/* harmony import */ var _masknet_shared_base_ui__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(53242); -/* harmony import */ var _settings_settings__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(80917); - - - - - - - - - - -const staticRef = (0,_masknet_shared_base__WEBPACK_IMPORTED_MODULE_5__/* .SubscriptionFromValueRef */ .Jf)(new _dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_8__.ValueRef('light')); -const defaultUseTheme = (t)=>t -; -/** - * @deprecated Should migrate to \@masknet/theme - */ function useClassicMaskSNSTheme() { - const provider = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(_social_network__WEBPACK_IMPORTED_MODULE_1__/* .activatedSocialNetworkUI.customization.paletteMode */ .LM.customization.paletteMode?.current || staticRef).current; - const usePostTheme = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(_social_network__WEBPACK_IMPORTED_MODULE_1__/* .activatedSocialNetworkUI.customization.useTheme */ .LM.customization.useTheme || defaultUseTheme).current; - const palette = (0,use_subscription__WEBPACK_IMPORTED_MODULE_2__.useSubscription)(provider); - const baseTheme = palette === 'dark' ? _MaskTheme__WEBPACK_IMPORTED_MODULE_3__/* .MaskDarkTheme */ .H : _MaskTheme__WEBPACK_IMPORTED_MODULE_3__/* .MaskLightTheme */ .C; - // TODO: support RTL? - const [localization, isRTL] = (0,_useThemeLanguage__WEBPACK_IMPORTED_MODULE_4__/* .useThemeLanguage */ .e)((0,_masknet_shared_base_ui__WEBPACK_IMPORTED_MODULE_6__/* .useValueRef */ .E)(_settings_settings__WEBPACK_IMPORTED_MODULE_7__/* .languageSettings */ .pQ)); - const theme = (0,_mui_material__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .Z)(baseTheme, localization); - return usePostTheme(theme); -} - - -/***/ }), - -/***/ 59203: +/***/ 5839: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "B": () => (/* binding */ useErrorStyles) /* harmony export */ }); -/* harmony import */ var _masknet_theme__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(30232); -/* harmony import */ var _mui_material_colors__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(66764); +/* harmony import */ var _masknet_theme__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(31939); +/* harmony import */ var _mui_material_colors__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(15746); const useErrorStyles = (0,_masknet_theme__WEBPACK_IMPORTED_MODULE_0__/* .makeStyles */ .ZL)()((theme)=>{ @@ -26285,17 +26707,17 @@ const useErrorStyles = (0,_masknet_theme__WEBPACK_IMPORTED_MODULE_0__/* .makeSty /***/ }), -/***/ 44614: +/***/ 65095: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "e": () => (/* binding */ useThemeLanguage) /* harmony export */ }); -/* harmony import */ var _masknet_public_api__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(97096); -/* harmony import */ var _mui_material_locale_index__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(72095); -/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(78144); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(86248); +/* harmony import */ var _masknet_public_api__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(60718); +/* harmony import */ var _mui_material_locale_index__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(65435); +/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(44451); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(58757); // ! This file is used during SSR. DO NOT import new files that does not work in SSR @@ -26330,319 +26752,15 @@ function useThemeLanguage(language) { /***/ }), -/***/ 92972: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "j": () => (/* binding */ fixBackupFilePermission), -/* harmony export */ "l": () => (/* binding */ convertBackupFileToObject) -/* harmony export */ }); -function fixBackupFilePermission(backup) { - if (!backup) return null; - return { - ...backup, - grantedHostPermissions: backup.grantedHostPermissions.filter((url)=>/^(http|)/.test(url) - ) - }; -} -function convertBackupFileToObject(short) { - const compressed = JSON.parse(short); - // TODO: maybe schema validate? - if (typeof compressed !== 'object') throw new TypeError('Invalid backup'); - return compressed; -} - - -/***/ }), - -/***/ 74439: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "m": () => (/* binding */ isBackupJSONFileVersion0) -/* harmony export */ }); -function isBackupJSONFileVersion0(obj) { - const data = obj; - if (!data.local || !data.key || !data.key.key || !data.key.key.privateKey || !data.key.key.publicKey) return false; - return true; -} - - -/***/ }), - -/***/ 70001: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "Bd": () => (/* binding */ upgradeFromBackupJSONFileVersion0), -/* harmony export */ "RV": () => (/* binding */ isBackupJSONFileVersion1), -/* harmony export */ "z2": () => (/* binding */ patchNonBreakingUpgradeForBackupJSONFileVersion1) -/* harmony export */ }); -function isBackupJSONFileVersion1(obj) { - const data = obj; - if (data.version !== 1) return false; - if (!Array.isArray(data.whoami)) return false; - if (!data.whoami) return false; - return true; -} -// Since 8/21/2019, every backup file of version 1 should have grantedHostPermissions -// Before 8/21/2019, we only support facebook, so we can auto upgrade the backup file -const facebookHost = [ - 'https://m.facebook.com/*', - 'https://www.facebook.com/*' -]; -function patchNonBreakingUpgradeForBackupJSONFileVersion1(json) { - if (json.grantedHostPermissions === undefined) { - json.grantedHostPermissions = facebookHost; - json.maskbookVersion = '1.5.2'; - } - if (!json.maskbookVersion) json.maskbookVersion = '1.6.0'; - return json; -} -function upgradeFromBackupJSONFileVersion0(json, identity) { - return { - maskbookVersion: '1.3.2', - version: 1, - whoami: [ - { - localKey: json.local, - network: 'facebook.com', - publicKey: json.key.key.publicKey, - privateKey: json.key.key.privateKey, - userId: identity.userId || '$self' - }, - ], - grantedHostPermissions: facebookHost - }; -} - - -/***/ }), - -/***/ 60073: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "GI": () => (/* binding */ isBackupJSONFileVersion2), -/* harmony export */ "a6": () => (/* binding */ patchNonBreakingUpgradeForBackupJSONFileVersion2), -/* harmony export */ "nl": () => (/* binding */ upgradeFromBackupJSONFileVersion1) -/* harmony export */ }); -/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(78144); -/* harmony import */ var _social_network_adaptor_twitter_com_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(37732); -/* harmony import */ var _social_network_adaptor_facebook_com_base__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(1650); - - - -function isBackupJSONFileVersion2(obj) { - return obj?._meta_?.version === 2 && obj?._meta_?.type === 'maskbook-backup'; -} -function upgradeFromBackupJSONFileVersion1(json) { - const personas = []; - const profiles = []; - function addPersona(record) { - const prev = personas.find((x)=>x.identifier === record.identifier - ); - if (prev) { - Object.assign(prev, record); - prev.linkedProfiles.push(...record.linkedProfiles); - } else personas.push({ - ...record, - updatedAt: 0, - createdAt: 0 - }); - } - function addProfile(record) { - const prev = profiles.find((x)=>x.identifier === record.identifier - ); - if (prev) { - Object.assign(prev, record); - } else profiles.push({ - ...record, - updatedAt: 0, - createdAt: 0 - }); - } - for (const x2 of json.whoami){ - const profile = new _masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .ProfileIdentifier */ .WO(x2.network, x2.userId).toText(); - const persona = (0,_masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .ECKeyIdentifierFromJsonWebKey */ .CH)(x2.publicKey).toText(); - addProfile({ - identifier: profile, - linkedPersona: persona, - localKey: x2.localKey, - nickname: x2.nickname - }); - addPersona({ - identifier: persona, - linkedProfiles: [ - [ - profile, - { - connectionConfirmState: 'confirmed' - } - ] - ], - publicKey: x2.publicKey, - privateKey: x2.privateKey, - localKey: x2.localKey, - nickname: x2.nickname - }); - } - for (const x1 of json.people || []){ - const profile = new _masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .ProfileIdentifier */ .WO(x1.network, x1.userId); - const persona = (0,_masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .ECKeyIdentifierFromJsonWebKey */ .CH)(x1.publicKey).toText(); - addProfile({ - identifier: profile.toText(), - linkedPersona: persona, - nickname: x1.nickname - }); - addPersona({ - identifier: persona, - linkedProfiles: [ - [ - profile.toText(), - { - connectionConfirmState: 'confirmed' - } - ] - ], - publicKey: x1.publicKey, - nickname: x1.nickname - }); - } - return { - _meta_: { - version: 2, - type: 'maskbook-backup', - maskbookVersion: json.maskbookVersion, - createdAt: 0 - }, - posts: [], - wallets: [], - personas, - profiles, - relations: [], - userGroups: [], - grantedHostPermissions: json.grantedHostPermissions - }; -} -function patchNonBreakingUpgradeForBackupJSONFileVersion2(json) { - json.wallets = json.wallets ?? []; - json.relations = json.relations ?? []; - const permissions = new Set(json.grantedHostPermissions); - if (json.grantedHostPermissions.some((x)=>x.includes('twitter.com') - )) { - const a = _social_network_adaptor_twitter_com_base__WEBPACK_IMPORTED_MODULE_1__/* .twitterBase.declarativePermissions.origins */ .oQ.declarativePermissions.origins; - a.forEach((x)=>permissions.add(x) - ); - } - if (json.grantedHostPermissions.some((x)=>x.includes('facebook.com') - )) { - const a = _social_network_adaptor_facebook_com_base__WEBPACK_IMPORTED_MODULE_2__/* .facebookBase.declarativePermissions.origins */ .qv.declarativePermissions.origins; - a.forEach((x)=>permissions.add(x) - ); - } - return json; -} - - -/***/ }), - -/***/ 54921: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "Br": () => (/* binding */ JWKToKey), -/* harmony export */ "Km": () => (/* binding */ keyToJWK), -/* harmony export */ "eh": () => (/* binding */ keyToAddr) -/* harmony export */ }); -/* harmony import */ var elliptic__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(75367); -/* harmony import */ var elliptic__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(elliptic__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var wallet_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(99674); -/* harmony import */ var wallet_ts__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(wallet_ts__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(78144); -/* harmony import */ var _dimensiondev_kit__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(28807); - - - - -function keyToJWK(key, type) { - const ec = new elliptic__WEBPACK_IMPORTED_MODULE_0__.ec('secp256k1'); - const key_ = key.replace(/^0x/, ''); - const keyPair = type === 'public' ? ec.keyFromPublic(key_) : ec.keyFromPrivate(key_); - const pubKey = keyPair.getPublic(); - const privKey = keyPair.getPrivate(); - return { - crv: 'K-256', - ext: true, - x: base64(pubKey.getX().toArray()), - y: base64(pubKey.getY().toArray()), - key_ops: [ - 'deriveKey', - 'deriveBits' - ], - kty: 'EC', - d: type === 'private' ? base64(privKey.toArray()) : undefined - }; - function base64(nums) { - return (0,_masknet_shared_base__WEBPACK_IMPORTED_MODULE_2__/* .toBase64URL */ .wi)(new Uint8Array(nums).buffer); - } -} -function JWKToKey(jwk, type) { - const ec = new elliptic__WEBPACK_IMPORTED_MODULE_0__.ec('secp256k1'); - if (type === 'public' && jwk.x && jwk.y) { - const xb = (0,_masknet_shared_base__WEBPACK_IMPORTED_MODULE_2__/* .fromBase64URL */ .mz)(jwk.x); - const yb = (0,_masknet_shared_base__WEBPACK_IMPORTED_MODULE_2__/* .fromBase64URL */ .mz)(jwk.y); - const point = new Uint8Array((0,_dimensiondev_kit__WEBPACK_IMPORTED_MODULE_3__/* .concatArrayBuffer */ .v_)(new Uint8Array([ - 0x04 - ]), xb, yb)); - if ((0,_masknet_shared_base__WEBPACK_IMPORTED_MODULE_2__/* .isSecp256k1Point */ .dK)(point)) return `0x${ec.keyFromPublic(point).getPublic(false, 'hex')}`; - } - if (type === 'private' && jwk.d) { - const db = (0,_masknet_shared_base__WEBPACK_IMPORTED_MODULE_2__/* .fromBase64URL */ .mz)(jwk.d); - if ((0,_masknet_shared_base__WEBPACK_IMPORTED_MODULE_2__/* .isSecp256k1PrivateKey */ .Rx)(db)) return `0x${ec.keyFromPrivate(db).getPrivate('hex')}`; - } - throw new Error('invalid private key'); -} -function keyToAddr(key, type) { - const ec = new elliptic__WEBPACK_IMPORTED_MODULE_0__.ec('secp256k1'); - const key_ = key.replace(/^0x/, ''); - const keyPair = type === 'public' ? ec.keyFromPublic(key_) : ec.keyFromPrivate(key_); - return wallet_ts__WEBPACK_IMPORTED_MODULE_1__.EthereumAddress.from(keyPair.getPublic(false, 'array')).address; -} - - -/***/ }), - -/***/ 39615: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "S": () => (/* binding */ asyncIteratorToArray) -/* harmony export */ }); -async function asyncIteratorToArray(it) { - const arr = []; - for await (const x of it)arr.push(x); - return arr; -} - - -/***/ }), - -/***/ 9881: +/***/ 42711: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "R": () => (/* binding */ useActivatedPlugin) /* harmony export */ }); -/* harmony import */ var _manager_dashboard__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(37271); -/* harmony import */ var _manager_sns_adaptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(56400); +/* harmony import */ var _manager_dashboard__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(87434); +/* harmony import */ var _manager_sns_adaptor__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(34604); function useActivatedPlugin(pluginID, minimalModeEqualsTo) { @@ -26654,78 +26772,51 @@ function useActivatedPlugin(pluginID, minimalModeEqualsTo) { /***/ }), -/***/ 54605: +/***/ 76859: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "G": () => (/* binding */ useActivatedPluginWeb3State) /* harmony export */ }); -/* harmony import */ var _useActivatedPlugin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9881); +/* harmony import */ var _useActivatedPlugin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(42711); function useActivatedPluginWeb3State(pluginID) { const activatedPlugin = (0,_useActivatedPlugin__WEBPACK_IMPORTED_MODULE_0__/* .useActivatedPlugin */ .R)(pluginID, 'any'); - return activatedPlugin?.Web3State ?? null; + return activatedPlugin?.Web3State ?? {}; } /***/ }), -/***/ 82139: +/***/ 95219: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "v": () => (/* binding */ useActivatedPluginWeb3UI) /* harmony export */ }); -/* harmony import */ var _useActivatedPlugin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9881); +/* harmony import */ var _useActivatedPlugin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(42711); function useActivatedPluginWeb3UI(pluginID) { const activatedPlugin = (0,_useActivatedPlugin__WEBPACK_IMPORTED_MODULE_0__/* .useActivatedPlugin */ .R)(pluginID, 'any'); - return activatedPlugin?.Web3UI ?? null; -} - - -/***/ }), - -/***/ 58700: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "$": () => (/* binding */ useReverseAddress) -/* harmony export */ }); -/* harmony import */ var _web3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(28102); -/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(73570); - - -function useReverseAddress(address, pluginId) { - const { NameService } = (0,_web3__WEBPACK_IMPORTED_MODULE_0__/* .useWeb3State */ .dM)(pluginId); - const chainId = (0,_web3__WEBPACK_IMPORTED_MODULE_0__/* .useChainId */ .xx)(pluginId); - return (0,react_use__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)(async ()=>{ - if (!address) return undefined; - return NameService?.reverse?.(address); - }, [ - NameService, - address, - chainId - ]); + return activatedPlugin?.Web3UI ?? {}; } /***/ }), -/***/ 71264: +/***/ 32670: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "m": () => (/* binding */ createManager) /* harmony export */ }); -/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(78144); +/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(44451); /* harmony import */ var _servie_events__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(69260); /* harmony import */ var lodash_unified__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(21122); -/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(72938); +/* harmony import */ var _store__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(93996); @@ -26860,7 +26951,7 @@ function createManager(selectLoader) { /***/ }), -/***/ 72938: +/***/ 93996: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; @@ -26887,6 +26978,7 @@ function getPluginDefine(id) { function registerPlugin(def) { if (__registered.has(def.ID)) return; if (!__meetRegisterRequirement(def)) return; + // @ts-ignore __registered.set(def.ID, def); getRegisteredWeb3Networks_memo.cache.clear?.(); getRegisteredWeb3Providers_memo.cache.clear?.(); @@ -26936,9581 +27028,9817 @@ function __meetRegisterRequirement(def) { /***/ }), -/***/ 85705: +/***/ 27950: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "I": () => (/* binding */ createPluginMessage) -/* harmony export */ }); -/* harmony import */ var _dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(85646); -/* harmony import */ var _dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_0__); -/** - * Create a plugin message emitter - * @param pluginID The plugin ID - * - * @example - * export const MyPluginMessage = createPluginMessage(PLUGIN_ID) - */ function createPluginMessage(pluginID, serializer) { - const domain = '@plugin/' + pluginID; - if (cache.has(domain)) return cache.get(domain); - const messageCenter = new _dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_0__.WebExtensionMessage({ - domain - }); - const events = messageCenter.events; - if (serializer) messageCenter.serialization = serializer; - cache.set(domain, events); - return events; +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "Cp": () => (/* reexport */ AddressBookState), + "oD": () => (/* reexport */ BalanceNotifierState), + "BS": () => (/* reexport */ BlockNumberNotifierState), + "em": () => (/* reexport */ ConnectionState), + "xH": () => (/* reexport */ HubState), + "OC": () => (/* reexport */ IdentityServiceState), + "Te": () => (/* reexport */ NameServiceState), + "CS": () => (/* reexport */ OthersState), + "Aw": () => (/* reexport */ ProviderState), + "SW": () => (/* reexport */ RiskWarningState), + "$c": () => (/* reexport */ SettingsState), + "Vi": () => (/* reexport */ TokenState), + "e": () => (/* reexport */ TransactionFormatterState), + "g7": () => (/* reexport */ TransactionState), + "$2": () => (/* reexport */ TransactionWatcherState), + "RM": () => (/* reexport */ WalletState) +}); + +// EXTERNAL MODULE: ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/uniqBy.js +var uniqBy = __webpack_require__(18443); +// EXTERNAL MODULE: ../shared-base/src/index.ts + 2 modules +var src = __webpack_require__(44451); +;// CONCATENATED MODULE: ../plugin-infra/src/web3-state/AddressBook.ts + + +class AddressBookState { + async addAddress(chainId, address) { + if (!this.options.isValidAddress(address)) throw new Error(`Invalid address: ${address}`); + const all = this.storage.value; + await this.storage.setValue({ + ...all, + [chainId]: (0,uniqBy/* default */.Z)([ + ...all[chainId], + this.options.formatAddress(address) + ], (x)=>x.toLowerCase() + ) + }); + } + async removeAddress(chainId, address) { + if (!this.options.isValidAddress(address)) throw new Error(`Invalid address: ${address}`); + const all = this.storage.value; + await this.storage.setValue({ + ...all, + [chainId]: all[chainId].filter((x)=>this.options.isSameAddress(x, address) + ) + }); + } + constructor(context, chainIds, subscriptions, options){ + this.context = context; + this.chainIds = chainIds; + this.subscriptions = subscriptions; + this.options = options; + this.storage = null; + const defaultValue = Object.fromEntries(chainIds.map((x)=>[ + x, + [] + ] + )); + const { storage } = this.context.createKVStorage('persistent', {}).createSubScope('AddressBook', { + value: defaultValue + }); + this.storage = storage.value; + if (this.subscriptions.chainId) { + this.addressBook = (0,src/* mapSubscription */.S3)((0,src/* mergeSubscription */.EB)(this.subscriptions.chainId, this.storage.subscription), ([chainId, addressBook])=>addressBook[chainId] + ); + } + } } -const cache = new Map(); + +;// CONCATENATED MODULE: ../plugin-infra/src/web3-state/NameService.ts + +class NameServiceState { + async addName(chainId, address, name) { + if (!this.options.isValidAddress(address)) return; + const all = this.storage.value; + await this.storage.setValue({ + ...all, + [chainId]: { + ...all[chainId], + [this.options.formatAddress(address)]: name + } + }); + } + async addAddress(chainId, name, address) { + if (!this.options.isValidAddress(address)) return; + const all = this.storage.value; + await this.storage.setValue({ + ...all, + [chainId]: { + ...all[chainId], + [name]: this.options.formatAddress(address) + } + }); + } + async lookup(chainId, name) { + const address = this.storage.value[chainId][name]; + if (!this.options.isValidAddress(address)) return; + return address; + } + async reverse(chainId, address) { + if (!this.options.isValidAddress(address)) return; + return this.storage.value[chainId][this.options.formatAddress(address)]; + } + constructor(context, chainIds, subscriptions, options){ + this.context = context; + this.chainIds = chainIds; + this.subscriptions = subscriptions; + this.options = options; + this.storage = null; + const defaultValue = Object.fromEntries(chainIds.map((x)=>[ + x, + {} + ] + )); + const { storage } = context.createKVStorage('memory', {}).createSubScope('NameService', { + value: defaultValue + }); + this.storage = storage.value; + if (this.subscriptions.chainId) { + this.domainBook = (0,src/* mapSubscription */.S3)((0,src/* mergeSubscription */.EB)(this.subscriptions.chainId, this.storage.subscription), ([chainId, domainBook])=>domainBook[chainId] + ); + } + } +} + +;// CONCATENATED MODULE: ../plugin-infra/src/web3-state/RiskWarning.ts + +class RiskWarningState { + async isApproved(address) { + return Reflect.has(this.storage.value, this.options.formatAddress(address)); + } + async approve(address, pluginID) { + await this.storage.setValue({ + ...this.storage.value, + [this.options.formatAddress(address)]: true + }); + } + async revoke(address, pluginID) { + await this.storage.setValue({ + ...this.storage.value, + [this.options.formatAddress(address)]: false + }); + } + constructor(context, subscriptions, options){ + this.context = context; + this.subscriptions = subscriptions; + this.options = options; + this.storage = null; + const { storage: storage1 } = this.context.createKVStorage('memory', {}).createSubScope('RiskWarning', { + value: {} + }); + this.storage = storage1.value; + if (this.subscriptions.account) { + this.approved = (0,src/* mapSubscription */.S3)((0,src/* mergeSubscription */.EB)(this.subscriptions.account, this.storage.subscription), ([account, storage])=>storage[this.options.formatAddress(account)] + ); + } + } +} + +// EXTERNAL MODULE: ../web3-shared/base/src/index.ts + 1 modules +var base_src = __webpack_require__(67938); +;// CONCATENATED MODULE: ../plugin-infra/src/web3-state/Settings.ts + + +class SettingsState { + constructor(context){ + this.storage = null; + const { storage } = context.createKVStorage('memory', {}).createSubScope('Settings', { + currencyType: base_src/* CurrencyType.USD */.V2.USD, + gasOptionType: base_src/* GasOptionType.NORMAL */.Qd.NORMAL, + fungibleAssetSourceType: base_src/* SourceType.DeBank */.PO.DeBank, + nonFungibleAssetSourceType: base_src/* SourceType.OpenSea */.PO.OpenSea + }); + this.storage = storage; + this.allowTestnet = (0,src/* createConstantSubscription */.qY)("production" === 'development'); + this.currencyType = this.storage.currencyType.subscription; + this.gasOptionType = this.storage.gasOptionType.subscription; + this.fungibleAssetSourceType = this.storage.fungibleAssetSourceType.subscription; + this.nonFungibleAssetSourceType = this.storage.nonFungibleAssetSourceType.subscription; + } +} + +;// CONCATENATED MODULE: ../plugin-infra/src/web3-state/Token.ts + + + +class TokenState { + async addOrRemoveToken(token, strategy) { + if (!this.options.isValidAddress(token.address)) throw new Error('Not a valid token.'); + const address = this.options.formatAddress(token.address); + const tokens = token.type === base_src/* TokenType.Fungible */.iv.Fungible ? this.storage.fungibleTokens.value : this.storage.nonFungibleTokens.value; + const tokensUpdated = strategy === 'add' ? (0,uniqBy/* default */.Z)([ + { + ...token, + id: address, + address + }, + ...tokens, + ], (x)=>x.id + ) : tokens.filter((x)=>!this.options.isSameAddress(x.address, address) + ); + if (token.type === base_src/* TokenType.Fungible */.iv.Fungible) { + await this.storage.fungibleTokens.setValue(tokensUpdated); + } else { + await this.storage.nonFungibleTokens.setValue(tokensUpdated); + } + } + async blockOrUnblockToken(address, token, strategy) { + if (!this.options.isValidAddress(token.address)) throw new Error('Not a valid token.'); + const address_ = this.options.formatAddress(address); + const blocked = token.type === base_src/* TokenType.Fungible */.iv.Fungible ? this.storage.fungibleTokenBlockedBy.value : this.storage.nonFungibleTokenBlockedBy.value; + const blockedUpdated = { + ...blocked, + [address_]: strategy === 'trust' ? blocked[address_]?.filter((x)=>!this.options.isSameAddress(x, token.address) + ) : (0,uniqBy/* default */.Z)([ + this.options.formatAddress(token.address), + ...blocked[address_] ?? [] + ], (x)=>x.toLowerCase() + ) + }; + if (token.type === base_src/* TokenType.Fungible */.iv.Fungible) { + await this.storage.fungibleTokenBlockedBy.setValue(blockedUpdated); + } else { + await this.storage.nonFungibleTokenBlockedBy.setValue(blockedUpdated); + } + } + async addToken(token) { + this.addOrRemoveToken(token, 'add'); + } + async removeToken(token) { + this.addOrRemoveToken(token, 'remove'); + } + async trustToken(address, token) { + this.blockOrUnblockToken(address, token, 'trust'); + } + async blockToken(address, token) { + this.blockOrUnblockToken(address, token, 'block'); + } + constructor(context, defaultValue, subscriptions, options){ + this.context = context; + this.defaultValue = defaultValue; + this.subscriptions = subscriptions; + this.options = options; + this.storage = null; + const { storage } = context.createKVStorage('persistent', {}).createSubScope('Token', defaultValue); + this.storage = storage; + if (this.subscriptions.account) { + this.trustedFungibleTokens = (0,src/* mapSubscription */.S3)((0,src/* mergeSubscription */.EB)(this.subscriptions.account, this.storage.fungibleTokens.subscription, this.storage.fungibleTokenBlockedBy.subscription), ([account, tokens, blockedBy])=>tokens.filter((x)=>!blockedBy[account]?.includes(x.address) + ) + ); + this.trustedNonFungibleTokens = (0,src/* mapSubscription */.S3)((0,src/* mergeSubscription */.EB)(this.subscriptions.account, this.storage.nonFungibleTokens.subscription, this.storage.nonFungibleTokenBlockedBy.subscription), ([account, tokens, blockedBy])=>tokens.filter((x)=>!blockedBy[account]?.includes(x.address) + ) + ); + this.blockedFungibleTokens = (0,src/* mapSubscription */.S3)((0,src/* mergeSubscription */.EB)(this.subscriptions.account, this.storage.fungibleTokens.subscription, this.storage.fungibleTokenBlockedBy.subscription), ([account, tokens, blockedBy])=>tokens.filter((x)=>blockedBy[account]?.includes(x.address) + ) + ); + this.blockedNonFungibleTokens = (0,src/* mapSubscription */.S3)((0,src/* mergeSubscription */.EB)(this.subscriptions.account, this.storage.nonFungibleTokens.subscription, this.storage.nonFungibleTokenBlockedBy.subscription), ([account, tokens, blockedBy])=>tokens.filter((x)=>blockedBy[account]?.includes(x.address) + ) + ); + } + } +} + +;// CONCATENATED MODULE: ../plugin-infra/src/web3-state/Hub.ts +const SIZE_PER_PAGE = 50; +const MAX_PAGE_SIZE = 25; +class HubState { + getHub(options) { + return Promise.resolve(this.createHub(options?.chainId ?? this.subscription.chainId?.getCurrentValue(), options?.account ?? this.subscription.account?.getCurrentValue(), options?.sourceType ?? this.subscription.sourceType?.getCurrentValue(), options?.currencyType ?? this.subscription.currencyType?.getCurrentValue(), SIZE_PER_PAGE, MAX_PAGE_SIZE)); + } + constructor(createHub, subscription){ + this.createHub = createHub; + this.subscription = subscription; + } +} + +;// CONCATENATED MODULE: ../plugin-infra/src/web3-state/Transaction.ts + + +class TransactionState { + async addTransaction(chainId, address, id, transaction) { + const now = new Date(); + const all = this.storage.value; + const address_ = this.options.formatAddress(address); + // to ensure that the transaction doesn't exist + const transaction_ = all[chainId][address_]?.find((x)=>Object.keys(x.candidates).includes(id) + ); + if (transaction_) return; + const transactions = [ + // new records go first then we will remove it last + { + id, + indexId: id, + chainId, + createdAt: now, + updatedAt: now, + status: base_src/* TransactionStatusType.NOT_DEPEND */.g8.NOT_DEPEND, + candidates: { + [id]: transaction + } + }, + ...all[chainId][address_] ?? [], + ]; + await this.storage.setValue({ + ...all, + // @ts-ignore + [chainId]: { + ...all[chainId], + [address_]: transactions.slice(0, TransactionState.MAX_RECORD_SIZE) + } + }); + } + async replaceTransaction(chainId, address, id, newId, transaction) { + const now = new Date(); + const all = this.storage.value; + const address_ = this.options.formatAddress(address); + // to ensure that the transaction exists + const transaction_ = all[chainId][address_]?.find((x)=>Object.keys(x.candidates).includes(id) + ); + if (!transaction_) return; + const transactions = (all[chainId][address_] ?? []).map((x)=>Object.keys(x.candidates).includes(id) ? { + ...x, + indexId: newId, + candidates: { + ...x.candidates, + [newId]: transaction + }, + updatedAt: now + } : x + ); + await this.storage.setValue({ + ...all, + // @ts-ignore + [chainId]: { + ...all[chainId], + [address_]: transactions + } + }); + } + async updateTransaction(chainId, address, id, status) { + const now = new Date(); + const all = this.storage.value; + const address_ = this.options.formatAddress(address); + // to ensure that the transaction exists + const transaction_ = all[chainId][address_]?.find((x)=>Object.keys(x.candidates).includes(id) + ); + if (!transaction_) return; + const transactions = (all[chainId][address_] ?? []).map((x)=>Object.keys(x.candidates).includes(id) ? { + ...x, + indexId: id, + status, + updatedAt: now + } : x + ); + await this.storage.setValue({ + ...all, + // @ts-ignore + [chainId]: { + ...all[chainId], + [address_]: transactions + } + }); + } + async removeTransaction(chainId, address, id) { + const all = this.storage.value; + const address_ = this.options.formatAddress(address); + await this.storage.setValue({ + ...all, + // @ts-ignore + [chainId]: { + ...all[chainId], + [address_]: all[chainId][address_]?.filter((x)=>!Object.keys(x.candidates).includes(id) + ) + } + }); + } + async clearTransactions(chainId, address) { + const all = this.storage.value; + const address_ = this.options.formatAddress(address); + await this.storage.setValue({ + ...all, + // @ts-ignore + [chainId]: { + ...all[chainId], + [address_]: [] + } + }); + } + constructor(context, chainIds, subscriptions, options){ + this.context = context; + this.chainIds = chainIds; + this.subscriptions = subscriptions; + this.options = options; + this.storage = null; + const defaultValue = Object.fromEntries(chainIds.map((x)=>[ + x, + {} + ] + )); + const { storage } = this.context.createKVStorage('persistent', {}).createSubScope('Transaction', { + value: defaultValue + }); + this.storage = storage.value; + if (this.subscriptions.chainId && this.subscriptions.account) { + this.transactions = (0,src/* mapSubscription */.S3)((0,src/* mergeSubscription */.EB)(this.subscriptions.chainId, this.subscriptions.account, this.storage.subscription), ([chainId, account, transactionStorage])=>transactionStorage[chainId][this.options.formatAddress(account)] ?? [] + ); + } + } +} +TransactionState.MAX_RECORD_SIZE = 20; + +;// CONCATENATED MODULE: ../plugin-infra/src/web3-state/TransactionFormatter.ts +class TransactionFormatterState { + async formatTransaction(chainId, transaction) { + const context = await this.createContext(chainId, transaction); + return this.createDescriptor(chainId, transaction, context); + } + createContext(chainId, transaction) { + throw new Error('Method not implemented.'); + } + createDescriptor(chainId, transaction, context) { + throw new Error('Method not implemented.'); + } + constructor(context){} +} + +// EXTERNAL MODULE: ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/omit.js + 3 modules +var omit = __webpack_require__(96596); +// EXTERNAL MODULE: ../../node_modules/.pnpm/@servie+events@3.0.0/node_modules/@servie/events/dist/index.js +var dist = __webpack_require__(69260); +;// CONCATENATED MODULE: ../plugin-infra/src/web3-state/TransactionWatcher.ts + + + + +class Watcher { + getStorage(chainId) { + return this.storage.value[chainId]; + } + async setStorage(chainId, id, item) { + await this.storage.setValue({ + ...this.storage.value, + // @ts-ignore + [chainId]: { + ...this.storage.value[chainId], + [item.id]: item + } + }); + } + async deleteStorage(chainId, id) { + await this.storage.setValue({ + ...this.storage.value, + // @ts-ignore + [chainId]: (0,omit/* default */.Z)(this.storage.value[chainId], [ + id + ]) + }); + } + async setTransaction(chainId, id, transaction) { + await this.setStorage(chainId, id, transaction); + } + async removeTransaction(chainId, id) { + await this.deleteStorage(chainId, id); + } + getAllTransactions(chainId) { + const storage = this.getStorage(chainId); + return storage ? [ + ...Object.entries(storage) + ].sort(([, a], [, z])=>z.at - a.at + ) : []; + } + getWatched(chainId) { + return this.getAllTransactions(chainId).slice(0, Watcher.MAX_ITEM_SIZE); + } + getUnwatched(chainId) { + return this.getAllTransactions(chainId).slice(Watcher.MAX_ITEM_SIZE); + } + async check(chainId) { + // stop any pending task + this.stopCheck(); + // unwatch legacy transactions + for (const [id] of this.getUnwatched(chainId)){ + await this.unwatchTransaction(chainId, id); + } + // check if all transactions were sealed + const watchedTransactions = this.getWatched(chainId).filter(([, x])=>x.status === base_src/* TransactionStatusType.NOT_DEPEND */.g8.NOT_DEPEND + ); + if (!watchedTransactions.length) return; + for (const [id1, { transaction }] of watchedTransactions){ + for (const checker of this.checkers){ + try { + const status = await checker.getStatus(chainId, id1, transaction); + if (status !== base_src/* TransactionStatusType.NOT_DEPEND */.g8.NOT_DEPEND) { + await this.unwatchTransaction(chainId, id1); + this.options.onNotify(chainId, id1, transaction, status); + break; + } + } catch (error) { + console.warn('Failed to check transaction status.'); + } + } + } + // kick to the next round + this.startCheck(chainId); + } + startCheck(chainId) { + this.stopCheck(); + if (this.timer === null) { + this.timer = setTimeout(this.check.bind(this, chainId), this.options.delay); + } + } + stopCheck() { + if (this.timer !== null) clearTimeout(this.timer); + this.timer = null; + } + async watchTransaction(chainId, id, transaction) { + await this.setTransaction(chainId, id, { + at: Date.now(), + id, + chainId, + status: base_src/* TransactionStatusType.NOT_DEPEND */.g8.NOT_DEPEND, + transaction + }); + this.startCheck(chainId); + } + async unwatchTransaction(chainId, id) { + await this.removeTransaction(chainId, id); + } + constructor(storage, checkers, options){ + this.storage = storage; + this.checkers = checkers; + this.options = options; + this.timer = null; + } +} +Watcher.MAX_ITEM_SIZE = 40; +class TransactionWatcherState { + getWatcher(chainId) { + if (!this.watchers.has(chainId)) this.watchers.set(chainId, new Watcher(this.storage, this.checkers, { + delay: this.options.defaultBlockDelay * 1000, + onNotify: this.notifyTransaction.bind(this) + })); + return this.watchers.get(chainId); + } + resumeWatcher(chainId) { + const watcher = this.getWatcher(chainId); + watcher.startCheck(chainId); + } + async watchTransaction(chainId, id, transaction) { + await this.getWatcher(chainId).watchTransaction(chainId, id, transaction); + } + async unwatchTransaction(chainId, id) { + await this.getWatcher(chainId).unwatchTransaction(chainId, id); + } + async notifyError(error) { + this.emitter.emit('error', error); + } + async notifyTransaction(chainId, id, transaction, status) { + throw new Error('Method not implemented.'); + } + constructor(context, chainIds, checkers, subscriptions, options){ + this.context = context; + this.chainIds = chainIds; + this.checkers = checkers; + this.subscriptions = subscriptions; + this.options = options; + this.storage = null; + this.watchers = new Map(); + this.emitter = new dist/* Emitter */.Q5(); + const defaultValue = Object.fromEntries(chainIds.map((x)=>[ + x, + {} + ] + )); + const { storage } = this.context.createKVStorage('memory', {}).createSubScope('TransactionWatcher', { + value: defaultValue + }); + this.storage = storage.value; + const resume = async ()=>{ + const chainId = this.subscriptions.chainId?.getCurrentValue(); + if (chainId) this.resumeWatcher(chainId); + const transactions = this.subscriptions.transactions?.getCurrentValue() ?? []; + for (const transaction of transactions){ + for (const [id, tx] of Object.entries(transaction.candidates)){ + if (transaction.status === base_src/* TransactionStatusType.NOT_DEPEND */.g8.NOT_DEPEND) await this.watchTransaction(transaction.chainId, id, tx); + } + } + }; + // resume watcher if chain id changed + if (this.subscriptions.chainId) { + this.subscriptions.chainId.subscribe(()=>resume() + ); + (0,src/* getSubscriptionCurrentValue */.SF)(()=>{ + return this.subscriptions.chainId; + }).then(()=>{ + resume(); + }); + } + // add external transactions at startup + if (this.subscriptions.transactions) { + (0,src/* getSubscriptionCurrentValue */.SF)(()=>{ + return this.subscriptions.transactions; + }).then(()=>{ + resume(); + }); + } + } +} + +;// CONCATENATED MODULE: ../plugin-infra/src/web3-state/Connection.ts +class ConnectionState { + async getWeb3(options) { + const connection = await this.getConnection(options); + return connection.getWeb3(options); + } + async getWeb3Provider(options) { + const connection = await this.getConnection(options); + return connection.getWeb3Provider(options); + } + async getConnection(options) { + return this.createConnection(this.context, { + chainId: options?.chainId ?? this.subscription.chainId?.getCurrentValue(), + account: options?.account ?? this.subscription.account?.getCurrentValue(), + providerType: options?.providerType ?? this.subscription.providerType?.getCurrentValue() + }); + } + constructor(context, createConnection, subscription){ + this.context = context; + this.createConnection = createConnection; + this.subscription = subscription; + } +} + +// EXTERNAL MODULE: ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/head.js +var head = __webpack_require__(29730); +// EXTERNAL MODULE: ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/clone.js +var clone = __webpack_require__(24220); +// EXTERNAL MODULE: ../../node_modules/.pnpm/@dimensiondev+kit@0.0.0-20220617045824-8bc7a27/node_modules/@dimensiondev/kit/esm/index.js +var esm = __webpack_require__(46123); +;// CONCATENATED MODULE: ../plugin-infra/src/web3-state/Provider.ts + + + +class ProviderState { + setupSubscriptions() { + const site = this.site; + if (!site) return; + this.providerType = (0,src/* mapSubscription */.S3)(this.storage.providerType.subscription, (provider)=>provider + ); + this.chainId = (0,src/* mapSubscription */.S3)((0,src/* mergeSubscription */.EB)(this.storage.account.subscription), ([account])=>account.chainId + ); + this.account = (0,src/* mapSubscription */.S3)((0,src/* mergeSubscription */.EB)(this.storage.account.subscription), ([account])=>account.account + ); + this.networkType = (0,src/* mapSubscription */.S3)((0,src/* mergeSubscription */.EB)(this.storage.account.subscription), ([account])=>this.options.getNetworkTypeFromChainId(account.chainId) + ); + } + setupProviders() { + Object.entries(this.providers).forEach((entry)=>{ + const [providerType, provider] = entry; + provider.emitter.on('chainId', async (chainId)=>{ + await this.setAccount(providerType, { + chainId: Number.parseInt(chainId, 16) + }); + }); + provider.emitter.on('accounts', async (accounts)=>{ + const account = (0,head/* default */.Z)(accounts); + if (account && this.options.isValidAddress(account)) await this.setAccount(providerType, { + account + }); + }); + provider.emitter.on('disconnect', async ()=>{ + await this.setAccount(providerType, { + account: '', + chainId: this.options.getDefaultChainId() + }); + const siteType = (0,src/* getSiteType */.sv)(); + if (!siteType) return; + this.storage.providerType.setValue(this.options.getDefaultProviderType()); + }); + }); + } + async setAccount(providerType, account) { + if (this.storage.providerType.value !== providerType) return; + const siteType = (0,src/* getSiteType */.sv)(); + if (!siteType) return; + const account_ = this.storage.account.value; + const accountCopied = (0,clone/* default */.Z)(account); + if (accountCopied.account !== '' && !this.options.isValidAddress(accountCopied.account)) delete accountCopied.account; + if (!this.options.isValidChainId(accountCopied.chainId ?? 0)) delete accountCopied.chainId; + const needToUpdateAccount = accountCopied.account === '' || !this.options.isSameAddress(account_.account, account.account); + const needToUpdateChainId = accountCopied.chainId && account_.chainId !== accountCopied.chainId; + if (needToUpdateAccount || needToUpdateChainId) { + await this.storage.account.setValue({ + ...account_, + ...accountCopied + }); + } + } + async setProvider(providerType) { + const siteType = (0,src/* getSiteType */.sv)(); + if (!siteType) return; + const needToUpdateProviderType = this.storage.providerType.value !== providerType; + if (needToUpdateProviderType) { + await this.storage.providerType.setValue(providerType); + } + } + isReady(providerType) { + return this.providers[providerType].ready; + } + untilReady(providerType) { + return this.providers[providerType].readyPromise; + } + async connect(chainId, providerType) { + const provider = this.providers[providerType]; + // compose the connection result + const account = await provider.connect(chainId); + // failed to connect provider + if (!account.account) throw new Error('Failed to connect provider.'); + // switch the sub-network to the expected one + if (chainId !== account.chainId) { + await Promise.race([ + (async ()=>{ + await (0,esm/* delay */.gw)(30 /* seconds */ * 1000 /* milliseconds */ ); + throw new Error('Timeout!'); + })(), + provider.switchChain(chainId), + ]); + account.chainId = chainId; + } + // update local storage + await this.setProvider(providerType); + await this.setAccount(providerType, account); + provider.emitter.emit('connect', account); + return account; + } + async disconnect(providerType) { + const provider = this.providers[providerType]; + await provider.disconnect(); + // update local storage + await this.setAccount(providerType, { + account: '' + }); + provider.emitter.emit('disconnect', providerType); + } + constructor(context, providers, options){ + this.context = context; + this.providers = providers; + this.options = options; + this.site = (0,src/* getSiteType */.sv)(); + this.storage = null; + const site = (0,src/* getSiteType */.sv)(); + const defaultValue = { + account: { + account: '', + chainId: options.getDefaultChainId() + }, + providerType: options.getDefaultProviderType(site) + }; + const { storage } = this.context.createKVStorage('memory', {}).createSubScope(site ?? 'Provider', defaultValue); + this.storage = storage; + this.setupSubscriptions(); + this.setupProviders(); + } +} + +// EXTERNAL MODULE: ../../node_modules/.pnpm/lru-cache@7.10.1/node_modules/lru-cache/index.js +var lru_cache = __webpack_require__(85478); +var lru_cache_default = /*#__PURE__*/__webpack_require__.n(lru_cache); +;// CONCATENATED MODULE: ../plugin-infra/src/web3-state/Identity.ts + +class IdentityServiceState { + getIdentityID(identity) { + if (!identity.identifier) return ''; + return `${identity.identifier.network}_${identity.identifier.userId}_${identity.bio}_${identity.homepage}`; + } + getFromCache(identity) { + return Promise.resolve(this.cache.get(this.getIdentityID(identity)) ?? []); + } + getFromRemote(identity) { + throw new Error('Method not implemented.'); + } + async lookup(identity) { + const ID = this.getIdentityID(identity); + if (!ID) return []; + const fromCache = await this.getFromCache(identity); + if (fromCache.length) return fromCache; + const fromRemote = await this.getFromRemote(identity); + if (fromRemote.length) this.cache.set(ID, fromRemote); + return fromRemote; + } + constructor(){ + this.cache = new (lru_cache_default())({ + max: 20, + ttl: Number.MAX_SAFE_INTEGER + }); + } +} + +;// CONCATENATED MODULE: ../plugin-infra/src/web3-state/Wallet.ts +class WalletState { + async getAllWallets() { + return this.context.getWallets(); + } + async addWallet(id, wallet) { + return this.context.addWallet(id, wallet); + } + async removeWallet(id) { + return this.context.removeWallet(id); + } + constructor(context){ + this.context = context; + this.wallets = context.wallets; + this.walletPrimary = context.walletPrimary; + } +} + +;// CONCATENATED MODULE: ../plugin-infra/src/web3-state/Others.ts + +class OthersState { + getDefaultChainId() { + throw new Error('Method not implemented.'); + } + getDefaultNetworkType() { + throw new Error('Method not implemented.'); + } + getZeroAddress(chainId) { + return this.options.defaultAddress; + } + getNativeTokenAddress(chainId) { + return this.options.defaultAddress; + } + getMaskTokenAddress(chainId) { + return undefined; + } + getAverageBlockDelay(chainId, scale = 1) { + return this.options.defaultBlockDelay * scale * 1000; + } + isValidChain(chainId, testnet = false) { + return this.options.chainDescriptors.find((x)=>x.chainId === chainId + )?.network === 'mainnet' || testnet; + } + isValidDomain(domain) { + throw new Error('Method not implemented.'); + } + isValidAddress(address) { + throw new Error('Method not implemented.'); + } + formatAddress(address, size) { + throw new Error('Method not implemented.'); + } + formatTokenId(id, size) { + throw new Error('Method not implemented.'); + } + formatDomainName(domain, size) { + throw new Error('Method not implemented.'); + } + constructor(context, options){ + this.context = context; + this.options = options; + this.chainResolver = (0,base_src/* createChainResolver */.ti)(this.options.chainDescriptors); + this.explorerResolver = (0,base_src/* createExplorerResolver */.Qv)(this.options.chainDescriptors); + this.providerResolver = (0,base_src/* createProviderResolver */.Xg)(this.options.providerDescriptors); + this.networkResolver = (0,base_src/* createNetworkResolver */.iu)(this.options.networkDescriptors); + this.isSameAddress = base_src/* isSameAddress */.Wr; + } +} + +;// CONCATENATED MODULE: ../plugin-infra/src/web3-state/BalanceNotifier.ts + +class BalanceNotifierState { + constructor(){ + this.emitter = new dist/* Emitter */.Q5(); + } +} + +;// CONCATENATED MODULE: ../plugin-infra/src/web3-state/BlockNumberNotifier.ts + +class BlockNumberNotifierState { + constructor(){ + this.emitter = new dist/* Emitter */.Q5(); + } +} + +;// CONCATENATED MODULE: ../plugin-infra/src/web3-state/index.ts + + + + + + + + + + + + + + + + /***/ }), -/***/ 47923: +/***/ 46390: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "S": () => (/* binding */ createPluginRPCGenerator), -/* harmony export */ "V": () => (/* binding */ createPluginRPC) +/* harmony export */ "$8": () => (/* binding */ PluginsWeb3ContextProvider), +/* harmony export */ "$f": () => (/* binding */ useCurrentWeb3NetworkPluginID), +/* harmony export */ "aw": () => (/* binding */ useCurrentWeb3NetworkProviderType), +/* harmony export */ "jG": () => (/* binding */ useCurrentWeb3NetworkChainId), +/* harmony export */ "ke": () => (/* binding */ useCurrentWeb3NetworkAccount), +/* harmony export */ "sw": () => (/* binding */ useCurrentWeb3NetworkNetworkType) /* harmony export */ }); -/* harmony import */ var _dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(85646); -/* harmony import */ var _dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(_dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var async_call_rpc_full__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(19245); -/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(78144); +/* unused harmony export PluginWeb3ContextProvider */ +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35667); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(58757); +/* harmony import */ var _masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(67938); +/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(44451); -const log = { - requestReplay: true, - type: 'pretty' -}; -function createPluginRPC(key, impl, message, /** Please set this to true if your implementation is a Proxy. */ exoticImplementation) { - const isBackground = (0,_dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_2__.isEnvironment)(_dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_2__.Environment.ManifestBackground); - return (0,async_call_rpc_full__WEBPACK_IMPORTED_MODULE_0__/* .AsyncCall */ .LE)((exoticImplementation ? _masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .getLocalImplementationExotic */ .kO : _masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .getLocalImplementation */ .Bb)(isBackground, `Plugin(${key})`, impl, message), { - key, - channel: message.bind(_dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_2__.MessageTarget.Broadcast), - preferLocalImplementation: isBackground, - serializer: _masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .serializer */ .GM, - strict: { - methodNotFound: isBackground, - unknownMessage: true - }, - log, - thenable: false + +const PluginIDContext = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.createContext)(_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_2__/* .NetworkPluginID.PLUGIN_EVM */ .FF.PLUGIN_EVM); +const PluginWeb3Context = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.createContext)(_masknet_shared_base__WEBPACK_IMPORTED_MODULE_3__/* .EMPTY_OBJECT */ .Nu); +const PluginsWeb3Context = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.createContext)(null); +function PluginWeb3ContextProvider({ pluginID }) { + return /*#__PURE__*/ _jsx(PluginWeb3Context.Provider, { + value: EMPTY_OBJECT }); } -function createPluginRPCGenerator(key, impl, message) { - const isBackground = (0,_dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_2__.isEnvironment)(_dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_2__.Environment.ManifestBackground); - return (0,async_call_rpc_full__WEBPACK_IMPORTED_MODULE_0__/* .AsyncGeneratorCall */ .rc)((0,_masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .getLocalImplementation */ .Bb)(isBackground, `Plugin(${key})`, impl, message), { - channel: message.bind(_dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_2__.MessageTarget.Broadcast), - preferLocalImplementation: isBackground, - serializer: _masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .serializer */ .GM, - strict: { - methodNotFound: isBackground, - unknownMessage: true - }, - log, - thenable: false +function PluginsWeb3ContextProvider({ pluginID , value , children }) { + return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(PluginIDContext.Provider, { + value: pluginID, + children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(PluginsWeb3Context.Provider, { + value: value, + children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(PluginWeb3Context.Provider, { + value: _masknet_shared_base__WEBPACK_IMPORTED_MODULE_3__/* .EMPTY_OBJECT */ .Nu, + children: children + }) + }) }); } +function useCurrentWeb3NetworkPluginID(expectedPluginID) { + const pluginID = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(PluginIDContext); + return expectedPluginID ?? pluginID; +} +function useCurrentWeb3NetworkAccount(pluginID) { + const pluginWeb3Context = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(PluginWeb3Context); + return pluginWeb3Context.account; +} +function useCurrentWeb3NetworkChainId(pluginID) { + const pluginWeb3Context = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(PluginWeb3Context); + return pluginWeb3Context.chainId; +} +function useCurrentWeb3NetworkProviderType(pluginID) { + const pluginWeb3Context = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(PluginWeb3Context); + return pluginWeb3Context.providerType; +} +function useCurrentWeb3NetworkNetworkType(pluginID) { + const pluginWeb3Context = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(PluginWeb3Context); + return pluginWeb3Context.networkType; +} /***/ }), -/***/ 71354: +/***/ 72128: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "FF": () => (/* binding */ NetworkPluginID), -/* harmony export */ "V2": () => (/* binding */ CurrencyType), -/* harmony export */ "iv": () => (/* binding */ TokenType) +/* harmony export */ "m": () => (/* binding */ useAccount) /* harmony export */ }); -var NetworkPluginID; -(function(NetworkPluginID) { - NetworkPluginID["PLUGIN_EVM"] = 'com.mask.evm'; - NetworkPluginID["PLUGIN_FLOW"] = 'com.mask.flow'; - NetworkPluginID["PLUGIN_SOLANA"] = 'com.mask.solana'; -})(NetworkPluginID || (NetworkPluginID = {})); -var CurrencyType; -(function(CurrencyType) { - CurrencyType["NATIVE"] = 'native'; - CurrencyType["BTC"] = 'btc'; - CurrencyType["USD"] = 'usd'; -})(CurrencyType || (CurrencyType = {})); -var TokenType; -(function(TokenType) { - TokenType["Fungible"] = "Fungible"; - TokenType["NonFungible"] = "NonFungible"; -})(TokenType || (TokenType = {})); +/* harmony import */ var use_subscription__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(14257); +/* harmony import */ var _useWeb3State__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12368); +/* harmony import */ var _utils_subscription__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(55437); +/* harmony import */ var _Context__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(46390); + + + + +function useAccount(pluginID, expectedAccount) { + const { Provider , Others } = (0,_useWeb3State__WEBPACK_IMPORTED_MODULE_1__/* .useWeb3State */ .d)(pluginID); + const currentAccount = (0,_Context__WEBPACK_IMPORTED_MODULE_3__/* .useCurrentWeb3NetworkAccount */ .ke)(pluginID); + const defaultAccount = (0,use_subscription__WEBPACK_IMPORTED_MODULE_0__.useSubscription)(Provider?.account ?? _utils_subscription__WEBPACK_IMPORTED_MODULE_2__/* .UNDEFINED */ .i_); + const account = ((expectedAccount ?? currentAccount) ?? defaultAccount) ?? ''; + return Others?.formatAddress ? Others.formatAddress(account) : account; +} /***/ }), -/***/ 15358: +/***/ 7645: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "$8": () => (/* binding */ PluginsWeb3ContextProvider), -/* harmony export */ "$f": () => (/* binding */ useCurrentWeb3NetworkPluginID), -/* harmony export */ "_$": () => (/* binding */ usePluginWeb3StateContext) -/* harmony export */ }); -/* unused harmony export usePluginsWeb3StateContext */ -/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(71999); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(86248); -/* harmony import */ var unstated_next__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(44737); -/* harmony import */ var use_subscription__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(66040); -/* harmony import */ var _web3_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(71354); -/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(78144); +/* unused harmony export useAccountName */ +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(58757); +/* harmony import */ var _masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(67938); +/* harmony import */ var _useWeb3State__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(12368); +/* harmony import */ var _useAccount__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(72128); +/* harmony import */ var _useWallets__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(70278); +/* harmony import */ var _useProviderType__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(52892); -// constant subscriptions -const ZERO = (0,_masknet_shared_base__WEBPACK_IMPORTED_MODULE_4__/* .createConstantSubscription */ .qY)(0); -const ZERO_STRING = (0,_masknet_shared_base__WEBPACK_IMPORTED_MODULE_4__/* .createConstantSubscription */ .qY)('0'); -const USD_CURRENCY = (0,_masknet_shared_base__WEBPACK_IMPORTED_MODULE_4__/* .createConstantSubscription */ .qY)(_web3_types__WEBPACK_IMPORTED_MODULE_3__/* .CurrencyType.USD */ .V2.USD); -const EMPTY_STRING = (0,_masknet_shared_base__WEBPACK_IMPORTED_MODULE_4__/* .createConstantSubscription */ .qY)(''); -const EMPTY_ARRAY = (0,_masknet_shared_base__WEBPACK_IMPORTED_MODULE_4__/* .createConstantSubscription */ .qY)([]); -const EMPTY_OBJECT = (0,_masknet_shared_base__WEBPACK_IMPORTED_MODULE_4__/* .createConstantSubscription */ .qY)({}); -const FALSE = (0,_masknet_shared_base__WEBPACK_IMPORTED_MODULE_4__/* .createConstantSubscription */ .qY)(false); -const NULL = (0,_masknet_shared_base__WEBPACK_IMPORTED_MODULE_4__/* .createConstantSubscription */ .qY)(null); -const PluginIDContext = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.createContext)(_web3_types__WEBPACK_IMPORTED_MODULE_3__/* .NetworkPluginID.PLUGIN_EVM */ .FF.PLUGIN_EVM); -const PluginsWeb3Context = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.createContext)(null); -function usePluginsWeb3Context() { - const context = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(PluginsWeb3Context); - if (!context) throw new Error('This hook should be used in a provider.'); - return context; -} -function usePluginWeb3State(pluginID, context) { - const pluginContext = context[pluginID]; - const { Shared , Utils } = pluginContext ?? {}; - const allowTestnet = (0,use_subscription__WEBPACK_IMPORTED_MODULE_2__.useSubscription)(Shared?.allowTestnet ?? FALSE); - const chainId = (0,use_subscription__WEBPACK_IMPORTED_MODULE_2__.useSubscription)(Shared?.chainId ?? ZERO); - const account = (0,use_subscription__WEBPACK_IMPORTED_MODULE_2__.useSubscription)(Shared?.account ?? EMPTY_STRING); - const networkType = (0,use_subscription__WEBPACK_IMPORTED_MODULE_2__.useSubscription)(Shared?.networkType ?? EMPTY_STRING); - const providerType = (0,use_subscription__WEBPACK_IMPORTED_MODULE_2__.useSubscription)(Shared?.providerType ?? EMPTY_STRING); - const assetType = (0,use_subscription__WEBPACK_IMPORTED_MODULE_2__.useSubscription)(Shared?.assetType ?? EMPTY_STRING); - const nameType = (0,use_subscription__WEBPACK_IMPORTED_MODULE_2__.useSubscription)(Shared?.nameType ?? EMPTY_STRING); - const collectibleType = (0,use_subscription__WEBPACK_IMPORTED_MODULE_2__.useSubscription)(Shared?.collectibleType ?? EMPTY_STRING); - const transactionType = (0,use_subscription__WEBPACK_IMPORTED_MODULE_2__.useSubscription)(Shared?.transactionType ?? EMPTY_STRING); - const currencyType = (0,use_subscription__WEBPACK_IMPORTED_MODULE_2__.useSubscription)(Shared?.currencyType ?? USD_CURRENCY); - const prices = (0,use_subscription__WEBPACK_IMPORTED_MODULE_2__.useSubscription)(Shared?.prices ?? NULL); - const walletPrimary = (0,use_subscription__WEBPACK_IMPORTED_MODULE_2__.useSubscription)(Shared?.walletPrimary ?? NULL); - const wallets = (0,use_subscription__WEBPACK_IMPORTED_MODULE_2__.useSubscription)(Shared?.wallets ?? EMPTY_ARRAY); - const fungibleTokens = (0,use_subscription__WEBPACK_IMPORTED_MODULE_2__.useSubscription)(Shared?.fungibleTokens ?? EMPTY_ARRAY); - const nonFungibleTokens = (0,use_subscription__WEBPACK_IMPORTED_MODULE_2__.useSubscription)(Shared?.nonFungibleTokens ?? EMPTY_ARRAY); - return { - allowTestnet, - chainId, +function useAccountName(pluginID, expectedAccount) { + const { Others } = useWeb3State(pluginID); + const account = useAccount(pluginID, expectedAccount); + const providerType = useProviderType(pluginID); + const wallets = useWallets(pluginID); + return useMemo(()=>{ + // if the currently selected account is a mask wallet, then use the wallet name as the account name + const wallet = wallets.find((x)=>isSameAddress(account, x.address) + ); + if (wallet?.name) return wallet.name; + // else use the provider name as the account name + return Others?.providerResolver.providerName?.(providerType); + }, [ account, - networkType, providerType, - assetType, - nameType, - collectibleType, - transactionType, - currencyType, - prices, - walletPrimary, - wallets, - fungibleTokens, - nonFungibleTokens - }; -} -function usePluginsWeb3State() { - const context = usePluginsWeb3Context(); - const pluginStateEVM = usePluginWeb3State(_web3_types__WEBPACK_IMPORTED_MODULE_3__/* .NetworkPluginID.PLUGIN_EVM */ .FF.PLUGIN_EVM, context); - const pluginStateFlow = usePluginWeb3State(_web3_types__WEBPACK_IMPORTED_MODULE_3__/* .NetworkPluginID.PLUGIN_FLOW */ .FF.PLUGIN_FLOW, context); - const pluginStateSolana = usePluginWeb3State(_web3_types__WEBPACK_IMPORTED_MODULE_3__/* .NetworkPluginID.PLUGIN_SOLANA */ .FF.PLUGIN_SOLANA, context); - return (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>({ - [_web3_types__WEBPACK_IMPORTED_MODULE_3__/* .NetworkPluginID.PLUGIN_EVM */ .FF.PLUGIN_EVM]: pluginStateEVM, - [_web3_types__WEBPACK_IMPORTED_MODULE_3__/* .NetworkPluginID.PLUGIN_FLOW */ .FF.PLUGIN_FLOW]: pluginStateFlow, - [_web3_types__WEBPACK_IMPORTED_MODULE_3__/* .NetworkPluginID.PLUGIN_SOLANA */ .FF.PLUGIN_SOLANA]: pluginStateSolana - }) - , [ - pluginStateEVM, - pluginStateFlow, - pluginStateSolana + wallets.map((x)=>x.address.toLowerCase() + ), + Others ]); } -function useCurrentWeb3NetworkPluginID() { - return (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(PluginIDContext); -} -const PluginsWeb3StateContext = (0,unstated_next__WEBPACK_IMPORTED_MODULE_5__/* .createContainer */ .f)(usePluginsWeb3State); -const usePluginsWeb3StateContext = PluginsWeb3StateContext.useContainer; -function usePluginWeb3StateContext(expectedPluginID) { - const pluginID = useCurrentWeb3NetworkPluginID(); - const pluginsWeb3State = usePluginsWeb3StateContext(); - return pluginsWeb3State[expectedPluginID ?? pluginID] ?? {}; -} -function PluginsWeb3ContextProvider({ pluginID , value , children }) { - return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(PluginIDContext.Provider, { - value: pluginID, - children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(PluginsWeb3Context.Provider, { - value: value, - children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(PluginsWeb3StateContext.Provider, { - children: children - }) - }) - }); -} /***/ }), -/***/ 49031: +/***/ 23987: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -/* unused harmony export useAllowTestnet */ -/* harmony import */ var _Context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15358); +/* unused harmony export useAddressBook */ +/* harmony import */ var use_subscription__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(14257); +/* harmony import */ var _useWeb3State__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12368); +/* harmony import */ var _utils_subscription__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(55437); -function useAllowTestnet(pluginID) { - return usePluginWeb3StateContext(pluginID).allowTestnet; + + +function useAddressBook(pluginID) { + const { AddressBook } = useWeb3State(pluginID); + return useSubscription(AddressBook?.addressBook ?? EMPTY_OBJECT); } /***/ }), -/***/ 32754: +/***/ 19891: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -/* unused harmony export useAssetType */ -/* harmony import */ var _Context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15358); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "Q": () => (/* binding */ useAllowTestnet) +/* harmony export */ }); +/* harmony import */ var use_subscription__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(14257); +/* harmony import */ var _useWeb3State__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12368); +/* harmony import */ var _utils_subscription__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(55437); + + -function useAssetType(pluginID) { - return usePluginWeb3StateContext(pluginID).assetType; +function useAllowTestnet(pluginID) { + const { Settings } = (0,_useWeb3State__WEBPACK_IMPORTED_MODULE_1__/* .useWeb3State */ .d)(pluginID); + return (0,use_subscription__WEBPACK_IMPORTED_MODULE_0__.useSubscription)(Settings?.allowTestnet ?? ( false ? 0 : _utils_subscription__WEBPACK_IMPORTED_MODULE_2__/* .FALSE */ .Dv)); } /***/ }), -/***/ 35807: +/***/ 45430: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "K": () => (/* binding */ useBalance) /* harmony export */ }); -/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(64452); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(28102); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(58757); +/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(58500); +/* harmony import */ var lodash_unified__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(21122); +/* harmony import */ var _useAccount__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(72128); +/* harmony import */ var _useChainId__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(45087); +/* harmony import */ var _useWeb3Connection__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(53837); +/* harmony import */ var _entry_web3__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(50719); -function useBalance(expectedChainId, expectedAccount, pluginID) { - const { Utils } = (0,___WEBPACK_IMPORTED_MODULE_0__/* .useWeb3State */ .dM)(); - const defaultChainId = (0,___WEBPACK_IMPORTED_MODULE_0__/* .useChainId */ .xx)(pluginID); - const defaultAccount = (0,___WEBPACK_IMPORTED_MODULE_0__/* .useAccount */ .mA)(pluginID); - const chainId = expectedChainId ?? defaultChainId; - const account = expectedAccount ?? defaultAccount; - return (0,react_use__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)(async ()=>{ - return Utils?.getLatestBalance?.(chainId, account) ?? '0'; + + + + + +function useBalance(pluginID, options) { + const account = (0,_useAccount__WEBPACK_IMPORTED_MODULE_1__/* .useAccount */ .m)(pluginID, options?.account); + const chainId = (0,_useChainId__WEBPACK_IMPORTED_MODULE_2__/* .useChainId */ .x)(pluginID, options?.chainId); + const connection = (0,_useWeb3Connection__WEBPACK_IMPORTED_MODULE_3__/* .useWeb3Connection */ .T)(pluginID, options); + const { BalanceNotifier , Others } = (0,_entry_web3__WEBPACK_IMPORTED_MODULE_4__/* .useWeb3State */ .dM)(pluginID); + const asyncResult = (0,react_use__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z)(async ()=>{ + if (!account || !connection) return '0'; + return connection.getBalance(account); }, [ account, chainId, - Utils + connection + ]); + (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>{ + return BalanceNotifier?.emitter.on('update', (ev)=>{ + if (Others?.isSameAddress(account, ev.account)) asyncResult.retry(); + }) ?? lodash_unified__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z; + }, [ + account, + asyncResult.retry, + BalanceNotifier, + Others ]); + return asyncResult; } /***/ }), -/***/ 39157: +/***/ 81215: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "Y": () => (/* binding */ useDoubleBlockBeatRetry) +/* harmony export */ "ND": () => (/* binding */ useBeatRetry), +/* harmony export */ "Yn": () => (/* binding */ useDoubleBlockBeatRetry) /* harmony export */ }); -/* unused harmony export useSingleBlockBeatRetry */ -/* harmony import */ var _masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(89260); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(28102); -/* harmony import */ var _useChainId__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(32668); +/* unused harmony exports useBeat, useSingleBlockBeatRetry */ +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(58757); +/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(4103); +/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(58500); +/* harmony import */ var _useWeb3State__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12368); +/* harmony import */ var _useChainId__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(45087); + const DEFAULT_SINGLE_BLOCK_DELAY = 15 * 1000; const DEFAULT_DOUBLE_BLOCK_DELAY = DEFAULT_SINGLE_BLOCK_DELAY * 2; -function useSingleBlockBeatRetry(fn, deps = []) { - const chainId = useChainId(); - const { Utils } = useWeb3State(); - return useBeatRetry(fn, Utils?.getAverageBlockDelay?.(chainId) ?? DEFAULT_SINGLE_BLOCK_DELAY, deps); +function useBeat(delay = 1000) { + const [beat, setBeat] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(0); + const [, , reset] = (0,react_use__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z)(()=>{ + setBeat((x)=>(x + 1) % Number.MAX_SAFE_INTEGER + ); + reset(); + }, delay); + return beat; +} +function useBeatRetry(fn, delay = 1000, deps = []) { + const beat = useBeat(delay); + return (0,react_use__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z)(fn, deps.concat(beat)); } -function useDoubleBlockBeatRetry(fn, deps = []) { - const chainId = (0,_useChainId__WEBPACK_IMPORTED_MODULE_2__/* .useChainId */ .x)(); - const { Utils } = (0,___WEBPACK_IMPORTED_MODULE_1__/* .useWeb3State */ .dM)(); - return (0,_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .useBeatRetry */ .ND)(fn, Utils?.getAverageBlockDelay?.(chainId, 2) ?? DEFAULT_DOUBLE_BLOCK_DELAY, deps); +function useSingleBlockBeatRetry(pluginID, fn, deps = []) { + const chainId = useChainId(pluginID); + const { Others } = useWeb3State(pluginID); + // @ts-ignore + return useBeatRetry(fn, Others?.getAverageBlockDelay?.(chainId) ?? DEFAULT_SINGLE_BLOCK_DELAY, deps); +} +function useDoubleBlockBeatRetry(pluginID, fn, deps = []) { + const chainId = (0,_useChainId__WEBPACK_IMPORTED_MODULE_2__/* .useChainId */ .x)(pluginID); + const { Others } = (0,_useWeb3State__WEBPACK_IMPORTED_MODULE_1__/* .useWeb3State */ .d)(pluginID); + // @ts-ignore + return useBeatRetry(fn, Others?.getAverageBlockDelay?.(chainId, 2) ?? DEFAULT_DOUBLE_BLOCK_DELAY, deps); } /***/ }), -/***/ 62414: +/***/ 22012: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { /* harmony export */ "O": () => (/* binding */ useBlockNumber) /* harmony export */ }); -/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(64452); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(28102); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(58757); +/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(58500); +/* harmony import */ var lodash_unified__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(21122); +/* harmony import */ var _useChainId__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(45087); +/* harmony import */ var _useWeb3Connection__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(53837); +/* harmony import */ var _entry_web3__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(50719); -function useBlockNumber(expectedChainId, pluginID) { - const { Utils } = (0,___WEBPACK_IMPORTED_MODULE_0__/* .useWeb3State */ .dM)(); - const defaultChainId = (0,___WEBPACK_IMPORTED_MODULE_0__/* .useChainId */ .xx)(pluginID); - const chainId = expectedChainId ?? defaultChainId; - return (0,react_use__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)(async ()=>{ - return Utils?.getLatestBlockNumber?.(chainId); + + + + +function useBlockNumber(pluginID, options) { + const chainId = (0,_useChainId__WEBPACK_IMPORTED_MODULE_1__/* .useChainId */ .x)(pluginID, options?.chainId); + const connection = (0,_useWeb3Connection__WEBPACK_IMPORTED_MODULE_2__/* .useWeb3Connection */ .T)(pluginID, options); + const { BlockNumberNotifier } = (0,_entry_web3__WEBPACK_IMPORTED_MODULE_3__/* .useWeb3State */ .dM)(pluginID); + const asyncRetry = (0,react_use__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z)(async ()=>{ + if (!connection) return 0; + return connection.getBlockNumber(); }, [ - Utils, - chainId + chainId, + connection ]); + (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>{ + return BlockNumberNotifier?.emitter.on('update', (actualChainId)=>{ + if (actualChainId === chainId) asyncRetry.retry(); + }) ?? lodash_unified__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z; + }, [ + chainId, + asyncRetry.retry, + BlockNumberNotifier + ]); + return asyncRetry; } /***/ }), -/***/ 32668: +/***/ 66482: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "x": () => (/* binding */ useChainId) +/* harmony export */ "o": () => (/* binding */ useBlockTimestamp) /* harmony export */ }); -/* harmony import */ var _Context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15358); +/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(58500); +/* harmony import */ var _useChainId__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(45087); +/* harmony import */ var _useWeb3Connection__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(53837); -function useChainId(pluginID) { - return (0,_Context__WEBPACK_IMPORTED_MODULE_0__/* .usePluginWeb3StateContext */ ._$)(pluginID).chainId; + + +function useBlockTimestamp(pluginID, options) { + const chainId = (0,_useChainId__WEBPACK_IMPORTED_MODULE_0__/* .useChainId */ .x)(pluginID, options?.chainId); + const connection = (0,_useWeb3Connection__WEBPACK_IMPORTED_MODULE_1__/* .useWeb3Connection */ .T)(pluginID, options); + return (0,react_use__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z)(async ()=>{ + if (!connection) return 0; + return connection.getBlockTimestamp(); + }, [ + chainId, + connection + ]); } /***/ }), -/***/ 50359: +/***/ 64380: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -/* unused harmony export useCollectibleType */ -/* harmony import */ var _Context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15358); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "v": () => (/* binding */ useBlockedFungibleTokens) +/* harmony export */ }); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(58757); +/* harmony import */ var use_subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(14257); +/* harmony import */ var _utils_subscription__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(55437); +/* harmony import */ var _useWeb3State__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(12368); + -function useCollectibleType(pluginID) { - return usePluginWeb3StateContext(pluginID).collectibleType; + + +function useBlockedFungibleTokens(pluginID, schemaType) { + const { Token } = (0,_useWeb3State__WEBPACK_IMPORTED_MODULE_3__/* .useWeb3State */ .d)(pluginID); + const fungibleTokens = (0,use_subscription__WEBPACK_IMPORTED_MODULE_1__.useSubscription)(Token?.blockedFungibleTokens ?? _utils_subscription__WEBPACK_IMPORTED_MODULE_2__/* .EMPTY_ARRAY */ .LZ); + return (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(()=>{ + return fungibleTokens.length && schemaType ? fungibleTokens.filter((x)=>x.schema === schemaType + ) : fungibleTokens; + }, [ + schemaType, + fungibleTokens + ]); } /***/ }), -/***/ 2953: +/***/ 58257: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -/* unused harmony export useNameType */ -/* harmony import */ var _Context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15358); +/* unused harmony export useBlockedNonFungibleTokens */ +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(58757); +/* harmony import */ var use_subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(14257); +/* harmony import */ var _useWeb3State__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(12368); +/* harmony import */ var _utils_subscription__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(55437); -function useNameType(pluginID) { - return usePluginWeb3StateContext(pluginID).nameType; + + + +function useBlockedNonFungibleTokens(pluginID, schemaType) { + const { Token } = useWeb3State(pluginID); + const nonFungibleTokens = useSubscription(Token?.blockedNonFungibleTokens ?? EMPTY_ARRAY); + return useMemo(()=>{ + return nonFungibleTokens.length && schemaType ? nonFungibleTokens.filter((x)=>x.schema === schemaType + ) : nonFungibleTokens; + }, [ + schemaType, + nonFungibleTokens + ]); } /***/ }), -/***/ 65845: +/***/ 79840: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "p": () => (/* binding */ useNetworkDescriptors) +/* harmony export */ "Y": () => (/* binding */ useBlockie) /* harmony export */ }); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(28102); -/* harmony import */ var _entry__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(79936); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(58757); +/* harmony import */ var ethereum_blockies__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(77224); +/* harmony import */ var ethereum_blockies__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(ethereum_blockies__WEBPACK_IMPORTED_MODULE_1__); -function useNetworkDescriptors(expectedPluginID) { - const pluginID = (0,___WEBPACK_IMPORTED_MODULE_0__/* .useCurrentWeb3NetworkPluginID */ .$f)(); - return (0,_entry__WEBPACK_IMPORTED_MODULE_1__/* .getPluginDefine */ ._W)(expectedPluginID ?? pluginID)?.declareWeb3Networks ?? []; +function useBlockie(address, options) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(()=>{ + const defaultOptions = { + seed: address, + color: '#dfe', + bgcolor: '#aaa' + }; + try { + return (0,ethereum_blockies__WEBPACK_IMPORTED_MODULE_1__.create)({ + ...defaultOptions, + ...options + }).toDataURL(); + } catch { + return ''; + } + }, [ + address + ]); } /***/ }), -/***/ 50657: +/***/ 95579: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "b": () => (/* binding */ useNetworkType) -/* harmony export */ }); -/* harmony import */ var _Context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15358); +/* unused harmony export useChainDescriptor */ +/* harmony import */ var _Context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(46390); +/* harmony import */ var _manager_store__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(93996); +/* harmony import */ var _useChainId__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(45087); -function useNetworkType(pluginID) { - return (0,_Context__WEBPACK_IMPORTED_MODULE_0__/* .usePluginWeb3StateContext */ ._$)(pluginID).networkType; + + +function useChainDescriptor(expectedPluginID, expectedChainId) { + const pluginID = useCurrentWeb3NetworkPluginID(expectedPluginID); + const chainId = useChainId(pluginID); + return getPluginDefine(pluginID)?.declareWeb3Chains?.find((x)=>x.chainId === (expectedChainId ?? chainId) + ); } /***/ }), -/***/ 98102: +/***/ 45087: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -/* unused harmony export useProviderDescriptors */ -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(28102); -/* harmony import */ var _entry__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(79936); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "x": () => (/* binding */ useChainId) +/* harmony export */ }); +/* harmony import */ var use_subscription__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(14257); +/* harmony import */ var _useWeb3State__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12368); +/* harmony import */ var _utils_subscription__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(55437); +/* harmony import */ var _useDefaultChainId__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(30447); +/* harmony import */ var _Context__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(46390); -function useProviderDescriptors(expectedPluginID) { - const pluginID = useCurrentWeb3NetworkPluginID(); - return getPluginDefine(expectedPluginID ?? pluginID)?.declareWeb3Providers ?? []; + + + +function useChainId(pluginID, expectedChainId) { + const { Provider } = (0,_useWeb3State__WEBPACK_IMPORTED_MODULE_1__/* .useWeb3State */ .d)(pluginID); + const currentChainId = (0,_Context__WEBPACK_IMPORTED_MODULE_4__/* .useCurrentWeb3NetworkChainId */ .jG)(pluginID); + const defaultChainId = (0,_useDefaultChainId__WEBPACK_IMPORTED_MODULE_3__/* .useDefaultChainId */ .b)(pluginID); + const actualChainId = (0,use_subscription__WEBPACK_IMPORTED_MODULE_0__.useSubscription)(Provider?.chainId ?? _utils_subscription__WEBPACK_IMPORTED_MODULE_2__/* .UNDEFINED */ .i_); + return ((expectedChainId ?? currentChainId) ?? actualChainId) ?? defaultChainId; } /***/ }), -/***/ 40989: +/***/ 85560: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "_": () => (/* binding */ useProviderType) +/* harmony export */ "i": () => (/* binding */ useChainIdMatched) /* harmony export */ }); -/* harmony import */ var _Context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15358); +/* harmony import */ var _useChainId__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(45087); -function useProviderType(pluginID) { - return (0,_Context__WEBPACK_IMPORTED_MODULE_0__/* .usePluginWeb3StateContext */ ._$)(pluginID).providerType; +function useChainIdMatched(pluginID, expectedChainId) { + const actualChainId = (0,_useChainId__WEBPACK_IMPORTED_MODULE_0__/* .useChainId */ .x)(pluginID); + return actualChainId === expectedChainId; } /***/ }), -/***/ 16103: +/***/ 64919: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -/* unused harmony export useTokenPrice */ -/* harmony import */ var _Context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15358); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "S": () => (/* binding */ useClearTransactionsCallback) +/* harmony export */ }); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(58757); +/* harmony import */ var _useAccount__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(72128); +/* harmony import */ var _useChainId__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(45087); +/* harmony import */ var _useWeb3State__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(12368); +/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(44451); -function useTokenPrice(id, currencyType, pluginID) { - const { prices } = usePluginWeb3StateContext(pluginID) ?? {}; - return prices?.[id][currencyType] ?? 0; + + + + +function useClearTransactionsCallback(pluginID) { + const account = (0,_useAccount__WEBPACK_IMPORTED_MODULE_1__/* .useAccount */ .m)(pluginID); + const chainId = (0,_useChainId__WEBPACK_IMPORTED_MODULE_2__/* .useChainId */ .x)(pluginID); + const { Transaction , TransactionWatcher } = (0,_useWeb3State__WEBPACK_IMPORTED_MODULE_3__/* .useWeb3State */ .d)(pluginID); + return (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async ()=>{ + if (!account) return; + try { + const transactions = await (0,_masknet_shared_base__WEBPACK_IMPORTED_MODULE_4__/* .getSubscriptionCurrentValue */ .SF)(()=>Transaction?.transactions + ); + for (const transaction of transactions?.flatMap((x)=>Object.keys(x.candidates) + ) ?? []){ + await TransactionWatcher?.unwatchTransaction(chainId, transaction); + } + } catch { + console.warn('Failed to unwatch transaction.'); + } + return Transaction?.clearTransactions?.(chainId, account); + }, [ + chainId, + account, + Transaction + ]); } /***/ }), -/***/ 40425: +/***/ 59398: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -/* unused harmony export useTransactionType */ -/* harmony import */ var _Context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15358); +/* unused harmony export useCurrencyType */ +/* harmony import */ var use_subscription__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(14257); +/* harmony import */ var _useWeb3State__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12368); +/* harmony import */ var _utils_subscription__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(55437); + -function useTransactionType(pluginID) { - return usePluginWeb3StateContext(pluginID).transactionType; + +function useCurrencyType(pluginID) { + const { Settings } = useWeb3State(pluginID); + return useSubscription(Settings?.currencyType ?? UNDEFINED); } /***/ }), -/***/ 69938: +/***/ 30447: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -/* unused harmony export useWalletPrimary */ -/* harmony import */ var _Context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15358); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "b": () => (/* binding */ useDefaultChainId) +/* harmony export */ }); +/* harmony import */ var _masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(67938); +/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(72499); +/* harmony import */ var _masknet_web3_shared_flow__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(85081); +/* harmony import */ var _masknet_web3_shared_solana__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7670); +/* harmony import */ var _Context__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(46390); + + + -function useWalletPrimary(pluginID) { - return usePluginWeb3StateContext(pluginID).walletPrimary; + +const DEFAULT_CHAIN_ID = { + [_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .NetworkPluginID.PLUGIN_EVM */ .FF.PLUGIN_EVM]: _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_4__/* .ChainId.Mainnet */ .a_.Mainnet, + [_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .NetworkPluginID.PLUGIN_FLOW */ .FF.PLUGIN_FLOW]: _masknet_web3_shared_flow__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Mainnet */ .a_.Mainnet, + [_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .NetworkPluginID.PLUGIN_SOLANA */ .FF.PLUGIN_SOLANA]: _masknet_web3_shared_solana__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Mainnet */ .a_.Mainnet +}; +function useDefaultChainId(expectedPluginID) { + const pluginID = (0,_Context__WEBPACK_IMPORTED_MODULE_3__/* .useCurrentWeb3NetworkPluginID */ .$f)(expectedPluginID); + return DEFAULT_CHAIN_ID[pluginID]; } /***/ }), -/***/ 88241: +/***/ 12641: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "$": () => (/* binding */ useWeb3UI) +/* harmony export */ "w": () => (/* binding */ useDefaultNetworkType) /* harmony export */ }); -/* harmony import */ var _Context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15358); -/* harmony import */ var _hooks_useActivatedPluginWeb3UI__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(82139); +/* harmony import */ var _masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(67938); +/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(72499); +/* harmony import */ var _masknet_web3_shared_flow__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(85081); +/* harmony import */ var _masknet_web3_shared_solana__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7670); +/* harmony import */ var _Context__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(46390); -function useWeb3UI(expectedPluginID) { - const pluginID = (0,_Context__WEBPACK_IMPORTED_MODULE_0__/* .useCurrentWeb3NetworkPluginID */ .$f)(); - return (0,_hooks_useActivatedPluginWeb3UI__WEBPACK_IMPORTED_MODULE_1__/* .useActivatedPluginWeb3UI */ .v)(expectedPluginID ?? pluginID) ?? {}; + + + +const DEFAULT_NETWORK_TYPE = { + [_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .NetworkPluginID.PLUGIN_EVM */ .FF.PLUGIN_EVM]: _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_4__/* .NetworkType.Ethereum */ .td.Ethereum, + [_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .NetworkPluginID.PLUGIN_FLOW */ .FF.PLUGIN_FLOW]: _masknet_web3_shared_flow__WEBPACK_IMPORTED_MODULE_1__/* .NetworkType.Flow */ .td.Flow, + [_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .NetworkPluginID.PLUGIN_SOLANA */ .FF.PLUGIN_SOLANA]: _masknet_web3_shared_solana__WEBPACK_IMPORTED_MODULE_2__/* .NetworkType.Solana */ .td.Solana +}; +function useDefaultNetworkType(expectedPluginID) { + const pluginID = (0,_Context__WEBPACK_IMPORTED_MODULE_3__/* .useCurrentWeb3NetworkPluginID */ .$f)(expectedPluginID); + return DEFAULT_NETWORK_TYPE[pluginID]; } /***/ }), -/***/ 56003: +/***/ 9402: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; +/* unused harmony export useFungibleAsset */ +/* harmony import */ var _useWeb3Hub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(94227); -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - "u": () => (/* binding */ base) -}); -// EXTERNAL MODULE: ../plugins/CrossChainBridge/src/constants.tsx + 1 modules -var constants = __webpack_require__(78569); -;// CONCATENATED MODULE: ../plugins/CrossChainBridge/src/locales/en-US.json -const en_US_namespaceObject = JSON.parse('{"dialog_title":"Cross-chain","official":"Official","cbridge_intro":"Powered by Celer Network. Support $Mask!","rainbow_bridge_intro":"Bridge between or send within Ethereum, NEAR and Aurora! "}'); -;// CONCATENATED MODULE: ../plugins/CrossChainBridge/src/locales/ja-JP.json -const ja_JP_namespaceObject = {}; -;// CONCATENATED MODULE: ../plugins/CrossChainBridge/src/locales/ko-KR.json -const ko_KR_namespaceObject = {}; -;// CONCATENATED MODULE: ../plugins/CrossChainBridge/src/locales/qya-AA.json -const qya_AA_namespaceObject = JSON.parse('{"dialog_title":"crwdns14996:0crwdne14996:0","official":"crwdns14998:0crwdne14998:0","cbridge_intro":"crwdns15000:0$Maskcrwdne15000:0","rainbow_bridge_intro":"crwdns15002:0crwdne15002:0"}'); -;// CONCATENATED MODULE: ../plugins/CrossChainBridge/src/locales/zh-CN.json -const zh_CN_namespaceObject = {}; -;// CONCATENATED MODULE: ../plugins/CrossChainBridge/src/locales/zh-TW.json -const zh_TW_namespaceObject = {}; -// EXTERNAL MODULE: ../shared-base/src/index.ts + 1 modules -var src = __webpack_require__(78144); -;// CONCATENATED MODULE: ../plugins/CrossChainBridge/src/locales/languages.ts -// This file is auto generated. DO NOT EDIT -// Run `npx gulp sync-languages` to regenerate. -// Default fallback language in a family of languages are chosen by the alphabet order -// To overwrite this, please overwrite packages/scripts/src/locale-kit-next/index.ts +function useFungibleAsset(pluginID, address, options) { + const hub = useWeb3Hub(pluginID, options); + return useAsyncRetry(async ()=>{ + if (!address) return; + return hub?.getFungibleAsset?.(address); + }, [ + address, + hub?.getFungibleAsset + ]); +} +/***/ }), +/***/ 69289: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { +"use strict"; +/* unused harmony export useFungibleAssetSourceType */ +/* harmony import */ var use_subscription__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(14257); +/* harmony import */ var _useWeb3State__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12368); +/* harmony import */ var _utils_subscription__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(55437); -const languages = { - en: en_US_namespaceObject, - ja: ja_JP_namespaceObject, - ko: ko_KR_namespaceObject, - qy: qya_AA_namespaceObject, - 'zh-CN': zh_CN_namespaceObject, - zh: zh_TW_namespaceObject -}; -const add__template__I18N = (0,src/* createI18NBundle */.C9)('__template__', languages); -// @ts-ignore -if (false) {} +function useFungibleAssetSourceType(pluginID) { + const { Settings } = useWeb3State(pluginID); + return useSubscription(Settings?.fungibleAssetSourceType ?? UNDEFINED); +} -;// CONCATENATED MODULE: ../plugins/CrossChainBridge/src/base.ts +/***/ }), -const base = { - ID: constants/* PLUGIN_ID */.Uu, - name: { - fallback: constants/* PLUGIN_NAME */.EW - }, - description: { - fallback: constants/* PLUGIN_DESCRIPTION */.PP - }, - publisher: { - name: { - fallback: '' - }, - link: '' - }, - enableRequirement: { - architecture: { - app: false, - web: true - }, - networks: { - type: 'opt-out', - networks: {} - }, - target: 'beta' - }, - experimentalMark: true, - i18n: languages -}; +/***/ 94635: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "C": () => (/* binding */ useFungibleAssets) +/* harmony export */ }); +/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(58500); +/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(44451); +/* harmony import */ var _masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(67938); +/* harmony import */ var _useAccount__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(72128); +/* harmony import */ var _useChainId__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(45087); +/* harmony import */ var _useWeb3Hub__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(94227); +/* harmony import */ var _useWeb3State__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(12368); +/* harmony import */ var _useTrustedFungibleTokens__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(71506); +/* harmony import */ var _useBlockedFungibleTokens__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(64380); -/***/ }), -/***/ 78569: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -"use strict"; -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - "PP": () => (/* binding */ PLUGIN_DESCRIPTION), - "Uu": () => (/* binding */ PLUGIN_ID), - "EW": () => (/* binding */ PLUGIN_NAME), - "l8": () => (/* binding */ getCrossChainBridge) -}); -// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.0.0/node_modules/react/jsx-runtime.js -var jsx_runtime = __webpack_require__(71999); -// EXTERNAL MODULE: ../plugin-infra/src/entry.ts -var entry = __webpack_require__(79936); -;// CONCATENATED MODULE: ../plugins/CrossChainBridge/src/SNSAdaptor/MaskIcon.tsx -function ArbitrumOneBridgeIcon({ size =36 }) { - return /*#__PURE__*/ (0,jsx_runtime.jsx)("img", { - style: { - alignSelf: 'center' - }, - width: size, - height: size, - src: new URL(/* asset import */ __webpack_require__(43990), __webpack_require__.b).toString() - }); -} -function BobaBridgeIcon({ size =36 }) { - return /*#__PURE__*/ (0,jsx_runtime.jsx)("img", { - style: { - alignSelf: 'center' - }, - width: size, - height: size, - src: new URL(/* asset import */ __webpack_require__(62996), __webpack_require__.b).toString() - }); -} -function CBridgeIcon({ size =36 }) { - return /*#__PURE__*/ (0,jsx_runtime.jsx)("img", { - style: { - alignSelf: 'center' - }, - width: size, - height: size, - src: new URL(/* asset import */ __webpack_require__(61977), __webpack_require__.b).toString() - }); -} -function PolygonBridgeIcon({ size =36 }) { - return /*#__PURE__*/ (0,jsx_runtime.jsx)("img", { - style: { - alignSelf: 'center' - }, - width: size, - height: size, - src: new URL(/* asset import */ __webpack_require__(53369), __webpack_require__.b).toString() - }); -} -function RainbowBridgeIcon({ size =36 }) { - return /*#__PURE__*/ (0,jsx_runtime.jsx)("img", { - style: { - alignSelf: 'center' - }, - width: size, - height: size, - src: new URL(/* asset import */ __webpack_require__(96559), __webpack_require__.b).toString() - }); + + + +function useFungibleAssets(pluginID, schemaType, options) { + const account = (0,_useAccount__WEBPACK_IMPORTED_MODULE_2__/* .useAccount */ .m)(pluginID); + const chainId = (0,_useChainId__WEBPACK_IMPORTED_MODULE_3__/* .useChainId */ .x)(pluginID, options?.chainId); + const hub = (0,_useWeb3Hub__WEBPACK_IMPORTED_MODULE_4__/* .useWeb3Hub */ .h)(pluginID, options); + const trustedTokens = (0,_useTrustedFungibleTokens__WEBPACK_IMPORTED_MODULE_6__/* .useTrustedFungibleTokens */ .Y)(pluginID); + const blockedTokens = (0,_useBlockedFungibleTokens__WEBPACK_IMPORTED_MODULE_7__/* .useBlockedFungibleTokens */ .v)(pluginID); + const { Others } = (0,_useWeb3State__WEBPACK_IMPORTED_MODULE_5__/* .useWeb3State */ .d)(pluginID); + return (0,react_use__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z)(async ()=>{ + if (!account || !hub) return _masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .EMPTY_LIST */ .rP; + const isTrustedToken = (0,_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .currySameAddress */ .DC)(trustedTokens.map((x)=>x.address + )); + const isBlockedToken = (0,_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .currySameAddress */ .DC)(blockedTokens.map((x)=>x.address + )); + const iterator = (0,_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .pageableToIterator */ .J)(async (indicator)=>{ + if (!hub.getFungibleAssets) return; + return hub.getFungibleAssets(account, { + indicator, + size: 50 + }); + }); + const assets = await (0,_masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .asyncIteratorToArray */ .SR)(iterator); + const filteredAssets = assets.length && schemaType ? assets.filter((x)=>x.schema === schemaType + ) : assets; + return filteredAssets.filter((x)=>!isBlockedToken(x) + ).sort((a, z)=>{ + const aBalance = (0,_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .toZero */ .ux)((0,_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .formatBalance */ .az)(a.balance, a.decimals)); + const zBalance = (0,_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .toZero */ .ux)((0,_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .formatBalance */ .az)(z.balance, z.decimals)); + const aUSD = (0,_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .toZero */ .ux)(a.value?.[_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .CurrencyType.USD */ .V2.USD] ?? '0'); + const zUSD = (0,_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .toZero */ .ux)(z.value?.[_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .CurrencyType.USD */ .V2.USD] ?? '0'); + const isNativeTokenA = (0,_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .isSameAddress */ .Wr)(a.address, Others?.getNativeTokenAddress(a.chainId)); + const isNativeTokenZ = (0,_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .isSameAddress */ .Wr)(z.address, Others?.getNativeTokenAddress(z.chainId)); + const isMaskTokenA = (0,_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .isSameAddress */ .Wr)(a.address, Others?.getMaskTokenAddress(a.chainId)); + const isMaskTokenZ = (0,_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .isSameAddress */ .Wr)(z.address, Others?.getMaskTokenAddress(z.chainId)); + // the currently selected chain id + if (a.chainId !== z.chainId) { + if (a.chainId === chainId) return -1; + if (z.chainId === chainId) return 1; + } + // native token + if (isNativeTokenA) return -1; + if (isNativeTokenZ) return 1; + // mask token with position value + if (aUSD.isPositive() && isMaskTokenA) return -1; + if (zUSD.isPositive() && isMaskTokenZ) return 1; + // token value + if (!aUSD.isEqualTo(zUSD)) return (0,_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .minus */ .h9)(zUSD, aUSD).isPositive() ? 1 : -1; + // token balance + if (!aBalance.isEqualTo(zBalance)) return (0,_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .minus */ .h9)(zBalance, aBalance).isPositive() ? 1 : -1; + // trusted token + if (isTrustedToken(a.address)) return -1; + if (isTrustedToken(z.address)) return 1; + // mask token with position value + if (isMaskTokenA) return -1; + if (isMaskTokenZ) return 1; + // alphabet + if (a.name !== z.name) return a.name < z.name ? -1 : 1; + return 0; + }); + }, [ + account, + chainId, + hub, + trustedTokens, + blockedTokens, + Others + ]); } -;// CONCATENATED MODULE: ../plugins/CrossChainBridge/src/constants.tsx +/***/ }), +/***/ 38327: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -const PLUGIN_ID = entry/* PluginId.CrossChainBridge */.je.CrossChainBridge; -const PLUGIN_DESCRIPTION = 'A cross-chain-bridge plugin'; -const PLUGIN_NAME = 'CrossChainBridge'; -function getCrossChainBridge(t) { - return [ - { - name: 'CBridge', - ID: `${PLUGIN_ID}_cBridge`, - intro: t.cbridge_intro(), - icon: /*#__PURE__*/ (0,jsx_runtime.jsx)(CBridgeIcon, {}), - isOfficial: false, - link: 'https://cbridge.celer.network/#/transfer' - }, - { - name: 'Arbitrum One Bridge', - ID: `${PLUGIN_ID}_arbitrum_one_bridge`, - isOfficial: true, - icon: /*#__PURE__*/ (0,jsx_runtime.jsx)(ArbitrumOneBridgeIcon, {}), - link: 'https://bridge.arbitrum.io/' - }, - { - name: 'BOBA Bridge', - ID: `${PLUGIN_ID}_boba_bridge`, - isOfficial: true, - icon: /*#__PURE__*/ (0,jsx_runtime.jsx)(BobaBridgeIcon, {}), - link: 'https://gateway.boba.network/' - }, - { - name: 'Polygon Bridge', - ID: `${PLUGIN_ID}_polygon_bridge`, - isOfficial: true, - icon: /*#__PURE__*/ (0,jsx_runtime.jsx)(PolygonBridgeIcon, {}), - link: 'https://wallet.polygon.technology/bridge/' - }, - { - name: 'Rainbow Bridge', - ID: `${PLUGIN_ID}_rainbow_bridge`, - isOfficial: true, - intro: t.rainbow_bridge_intro(), - icon: /*#__PURE__*/ (0,jsx_runtime.jsx)(RainbowBridgeIcon, {}), - link: 'https://rainbowbridge.app/transfer' - }, - ]; +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "c": () => (/* binding */ useFungibleToken) +/* harmony export */ }); +/* harmony import */ var react_use_lib_useAsyncRetry__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(57170); +/* harmony import */ var _useWeb3Connection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(53837); + + +function useFungibleToken(pluginID, address, options) { + const connection = (0,_useWeb3Connection__WEBPACK_IMPORTED_MODULE_0__/* .useWeb3Connection */ .T)(pluginID, options); + return (0,react_use_lib_useAsyncRetry__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)(async ()=>{ + if (!connection) return; + return connection?.getFungibleToken?.(address ?? '', options); + }, [ + address, + connection, + JSON.stringify(options) + ]); } /***/ }), -/***/ 2380: +/***/ 61553: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "u": () => (/* binding */ base) +/* harmony export */ "V": () => (/* binding */ useFungibleTokenBalance) /* harmony export */ }); -/* harmony import */ var _masknet_plugin_infra_web3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(67071); -/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(65506); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(68837); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(58757); +/* harmony import */ var react_use_lib_useAsyncRetry__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(57170); +/* harmony import */ var lodash_unified__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(21122); +/* harmony import */ var _entry_web3__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(50719); +/* harmony import */ var _useAccount__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(72128); +/* harmony import */ var _useChainId__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(45087); +/* harmony import */ var _useWeb3Connection__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(53837); -const base = { - ID: _constants__WEBPACK_IMPORTED_MODULE_1__/* .CYBERCONNECT_PLUGIN_ID */ .k, - name: { - fallback: 'CyberConnect' - }, - description: { - fallback: 'A plugin for https://cyberconnect.me/' - }, - publisher: { - name: { - fallback: 'CyberConnect' - }, - link: 'https://github.com/cyberconnecthq' - }, - enableRequirement: { - architecture: { - app: false, - web: true - }, - networks: { - type: 'opt-out', - networks: {} - }, - target: 'stable', - web3: { - [_masknet_plugin_infra_web3__WEBPACK_IMPORTED_MODULE_0__/* .NetworkPluginID.PLUGIN_EVM */ .FF.PLUGIN_EVM]: { - supportedChainIds: [ - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Mainnet */ .a_.Mainnet, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.BSC */ .a_.BSC, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Matic */ .a_.Matic, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Arbitrum */ .a_.Arbitrum, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.xDai */ .a_.xDai - ] - }, - [_masknet_plugin_infra_web3__WEBPACK_IMPORTED_MODULE_0__/* .NetworkPluginID.PLUGIN_SOLANA */ .FF.PLUGIN_SOLANA]: { - supportedChainIds: [] - }, - [_masknet_plugin_infra_web3__WEBPACK_IMPORTED_MODULE_0__/* .NetworkPluginID.PLUGIN_FLOW */ .FF.PLUGIN_FLOW]: { - supportedChainIds: [] + + + + +function useFungibleTokenBalance(pluginID, address, options) { + const account = (0,_useAccount__WEBPACK_IMPORTED_MODULE_2__/* .useAccount */ .m)(pluginID, options?.account); + const chainId = (0,_useChainId__WEBPACK_IMPORTED_MODULE_3__/* .useChainId */ .x)(pluginID, options?.chainId); + const connection = (0,_useWeb3Connection__WEBPACK_IMPORTED_MODULE_4__/* .useWeb3Connection */ .T)(pluginID, options); + const { BalanceNotifier , Others } = (0,_entry_web3__WEBPACK_IMPORTED_MODULE_1__/* .useWeb3State */ .dM)(pluginID); + const asyncRetry = (0,react_use_lib_useAsyncRetry__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z)(async ()=>{ + if (!connection) return '0'; + return connection.getFungibleTokenBalance(address ?? '', options); + }, [ + account, + address, + chainId, + connection, + JSON.stringify(options) + ]); + (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>{ + return BalanceNotifier?.emitter.on('update', (ev)=>{ + if (Others?.isSameAddress(account, ev.account)) { + asyncRetry.retry(); } - } - }, - contribution: { - postContent: new Set([ - /https:\/\/app.cyberconnect.me/ - ]) - } -}; + }) ?? lodash_unified__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z; + }, [ + account, + asyncRetry.retry, + BalanceNotifier, + Others + ]); + return asyncRetry; +} /***/ }), -/***/ 68837: +/***/ 59449: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "k": () => (/* binding */ CYBERCONNECT_PLUGIN_ID) +/* harmony export */ "O": () => (/* binding */ useFungibleTokenPrice) /* harmony export */ }); -/* unused harmony export CYBERCONNECT_PLUGIN_NAME */ -/* harmony import */ var _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(79936); +/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(58500); +/* harmony import */ var _useChainId__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(45087); +/* harmony import */ var _useWeb3Hub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(94227); -const CYBERCONNECT_PLUGIN_NAME = 'CyberConnect'; -const CYBERCONNECT_PLUGIN_ID = _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__/* .PluginId.CyberConnect */ .je.CyberConnect; + + +function useFungibleTokenPrice(pluginID, address, options) { + const chainId = (0,_useChainId__WEBPACK_IMPORTED_MODULE_0__/* .useChainId */ .x)(pluginID, options?.chainId); + const hub = (0,_useWeb3Hub__WEBPACK_IMPORTED_MODULE_1__/* .useWeb3Hub */ .h)(pluginID, options); + return (0,react_use__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z)(async ()=>{ + if (!chainId || !hub) return 0; + return hub.getFungibleTokenPrice?.(chainId, address ?? ''); + }, [ + chainId, + address, + hub + ]); +} /***/ }), -/***/ 74351: +/***/ 99055: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "g": () => (/* binding */ useFungibleTokenWatched) +/* harmony export */ }); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(58757); +/* harmony import */ var _useFungibleTokenBalance__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(61553); +/* harmony import */ var _useFungibleToken__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(38327); -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - "u": () => (/* binding */ base) -}); - -// EXTERNAL MODULE: ../plugins/DAO/src/constants.ts -var constants = __webpack_require__(85043); -;// CONCATENATED MODULE: ../plugins/DAO/src/locales/en-US.json -const en_US_namespaceObject = {}; -;// CONCATENATED MODULE: ../plugins/DAO/src/locales/ja-JP.json -const ja_JP_namespaceObject = {}; -;// CONCATENATED MODULE: ../plugins/DAO/src/locales/ko-KR.json -const ko_KR_namespaceObject = {}; -;// CONCATENATED MODULE: ../plugins/DAO/src/locales/qya-AA.json -const qya_AA_namespaceObject = {}; -;// CONCATENATED MODULE: ../plugins/DAO/src/locales/zh-CN.json -const zh_CN_namespaceObject = {}; -;// CONCATENATED MODULE: ../plugins/DAO/src/locales/zh-TW.json -const zh_TW_namespaceObject = {}; -;// CONCATENATED MODULE: ../plugins/DAO/src/locales/languages.ts -// This file is auto generated. DO NOT EDIT -// Run `npx gulp sync-languages` to regenerate. -// Default fallback language in a family of languages are chosen by the alphabet order -// To overwrite this, please overwrite packages/scripts/src/locale-kit-next/index.ts +function useFungibleTokenWatched(pluginID, address_ = '') { + const [amount, setAmount] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(''); + const [address, setAddress] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(address_); + const token = (0,_useFungibleToken__WEBPACK_IMPORTED_MODULE_2__/* .useFungibleToken */ .c)(pluginID, address); + const balance = (0,_useFungibleTokenBalance__WEBPACK_IMPORTED_MODULE_1__/* .useFungibleTokenBalance */ .V)(pluginID, address); + return { + amount, + setAmount, + address: token.value?.address ?? address, + setAddress, + token, + balance + }; +} +/***/ }), +/***/ 90920: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -const languages = { - en: en_US_namespaceObject, - ja: ja_JP_namespaceObject, - ko: ko_KR_namespaceObject, - qy: qya_AA_namespaceObject, - 'zh-CN': zh_CN_namespaceObject, - zh: zh_TW_namespaceObject -}; -// @ts-ignore -if (false) {} +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "n": () => (/* binding */ useFungibleTokens) +/* harmony export */ }); +/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(58500); +/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(44451); +/* harmony import */ var _useWeb3Connection__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(53837); -;// CONCATENATED MODULE: ../plugins/DAO/src/base.ts -const base = { - ID: constants/* PLUGIN_ID */.Uu, - name: { - fallback: constants/* PLUGIN_NAME */.EW - }, - description: { - fallback: constants/* PLUGIN_DESCRIPTION */.PP - }, - publisher: { - name: { - fallback: 'Mask Network' - }, - link: 'https://mask.io/' - }, - enableRequirement: { - architecture: { - app: false, - web: true - }, - networks: { - type: 'opt-out', - networks: {} - }, - target: 'stable' - }, - experimentalMark: true, - i18n: languages -}; +function useFungibleTokens(pluginID, listOfAddress, options) { + const connection = (0,_useWeb3Connection__WEBPACK_IMPORTED_MODULE_1__/* .useWeb3Connection */ .T)(pluginID, options); + return (0,react_use__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z)(async ()=>{ + if (!connection) return _masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .EMPTY_LIST */ .rP; + return Promise.all(listOfAddress?.map((x)=>connection.getFungibleToken(x) + ) ?? []); + }, [ + connection, + listOfAddress?.join() + ]); +} /***/ }), -/***/ 85043: +/***/ 31405: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "EW": () => (/* binding */ PLUGIN_NAME), -/* harmony export */ "PP": () => (/* binding */ PLUGIN_DESCRIPTION), -/* harmony export */ "Uu": () => (/* binding */ PLUGIN_ID) +/* harmony export */ "Y": () => (/* binding */ useFungibleTokensBalance) /* harmony export */ }); -/* harmony import */ var _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(79936); +/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(44451); +/* harmony import */ var react_use_lib_useAsyncRetry__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(57170); +/* harmony import */ var _useWeb3Connection__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(53837); -const PLUGIN_ID = _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__/* .PluginId.DAO */ .je.DAO; -const PLUGIN_DESCRIPTION = 'The Web3 DAO based on JuiceBox.'; -const PLUGIN_NAME = 'DAO'; + + +function useFungibleTokensBalance(pluginID, listOfAddress, options) { + const connection = (0,_useWeb3Connection__WEBPACK_IMPORTED_MODULE_1__/* .useWeb3Connection */ .T)(pluginID, options); + return (0,react_use_lib_useAsyncRetry__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z)(async ()=>{ + if (!connection || !listOfAddress?.length) return _masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .EMPTY_OBJECT */ .Nu; + return connection.getFungibleTokensBalance(listOfAddress, options); + }, [ + listOfAddress?.join(), + connection, + JSON.stringify(options) + ]); +} /***/ }), -/***/ 87946: +/***/ 6319: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "B": () => (/* binding */ useFungibleTokensFromTokenList) +/* harmony export */ }); +/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(58500); +/* harmony import */ var _useChainId__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(45087); +/* harmony import */ var _useWeb3Hub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(94227); -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - "u": () => (/* binding */ base) -}); -// EXTERNAL MODULE: ../plugins/Debugger/src/constants.ts -var constants = __webpack_require__(58202); -;// CONCATENATED MODULE: ../plugins/Debugger/src/locales/en-US.json -const en_US_namespaceObject = {}; -;// CONCATENATED MODULE: ../plugins/Debugger/src/locales/ja-JP.json -const ja_JP_namespaceObject = {}; -;// CONCATENATED MODULE: ../plugins/Debugger/src/locales/ko-KR.json -const ko_KR_namespaceObject = {}; -;// CONCATENATED MODULE: ../plugins/Debugger/src/locales/qya-AA.json -const qya_AA_namespaceObject = {}; -;// CONCATENATED MODULE: ../plugins/Debugger/src/locales/zh-CN.json -const zh_CN_namespaceObject = {}; -;// CONCATENATED MODULE: ../plugins/Debugger/src/locales/zh-TW.json -const zh_TW_namespaceObject = {}; -;// CONCATENATED MODULE: ../plugins/Debugger/src/locales/languages.ts -// This file is auto generated. DO NOT EDIT -// Run `npx gulp sync-languages` to regenerate. -// Default fallback language in a family of languages are chosen by the alphabet order -// To overwrite this, please overwrite packages/scripts/src/locale-kit-next/index.ts +function useFungibleTokensFromTokenList(pluginID, options) { + const chainId = (0,_useChainId__WEBPACK_IMPORTED_MODULE_0__/* .useChainId */ .x)(pluginID, options?.chainId); + const hub = (0,_useWeb3Hub__WEBPACK_IMPORTED_MODULE_1__/* .useWeb3Hub */ .h)(pluginID, options); + return (0,react_use__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z)(async ()=>{ + return hub?.getFungibleTokensFromTokenList?.(chainId); + }, [ + chainId, + hub + ]); +} +/***/ }), +/***/ 32575: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { +"use strict"; +/* unused harmony export useGasOptionType */ +/* harmony import */ var use_subscription__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(14257); +/* harmony import */ var _masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(67938); +/* harmony import */ var _useWeb3State__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(12368); +/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(44451); -const languages = { - en: en_US_namespaceObject, - ja: ja_JP_namespaceObject, - ko: ko_KR_namespaceObject, - qy: qya_AA_namespaceObject, - 'zh-CN': zh_CN_namespaceObject, - zh: zh_TW_namespaceObject -}; -// @ts-ignore -if (false) {} -;// CONCATENATED MODULE: ../plugins/Debugger/src/base.ts -const base = { - ID: constants/* PLUGIN_ID */.Uu, - name: { - fallback: constants/* PLUGIN_NAME */.EW - }, - description: { - fallback: constants/* PLUGIN_DESCRIPTION */.PP - }, - publisher: { - name: { - fallback: 'Mask Network' - }, - link: 'https://mask.io/' - }, - enableRequirement: { - architecture: { - app: false, - web: true - }, - networks: { - type: 'opt-out', - networks: {} - }, - target: 'insider' - }, - experimentalMark: true, - i18n: languages -}; +function useGasOptionType(pluginID) { + const { Settings } = useWeb3State(pluginID); + return useSubscription(Settings?.gasOptionType ?? createConstantSubscription(GasOptionType.NORMAL)); +} /***/ }), -/***/ 58202: +/***/ 3125: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "EW": () => (/* binding */ PLUGIN_NAME), -/* harmony export */ "PP": () => (/* binding */ PLUGIN_DESCRIPTION), -/* harmony export */ "Uu": () => (/* binding */ PLUGIN_ID) +/* harmony export */ "o": () => (/* binding */ useGasOptions) /* harmony export */ }); -/* harmony import */ var _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(79936); +/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(58500); +/* harmony import */ var _useChainId__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(45087); +/* harmony import */ var _useWeb3Hub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(94227); -const PLUGIN_ID = _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__/* .PluginId.Debugger */ .je.Debugger; -const PLUGIN_DESCRIPTION = 'Mask Network plugin debugger.'; -const PLUGIN_NAME = 'Debugger'; + + +function useGasOptions(pluginID, options) { + const chainId = (0,_useChainId__WEBPACK_IMPORTED_MODULE_0__/* .useChainId */ .x)(pluginID, options?.chainId); + const hub = (0,_useWeb3Hub__WEBPACK_IMPORTED_MODULE_1__/* .useWeb3Hub */ .h)(pluginID, options); + return (0,react_use__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z)(async ()=>{ + if (!chainId || !hub) return; + return hub.getGasOptions?.(chainId); + }, [ + chainId, + hub + ]); +} /***/ }), -/***/ 91243: +/***/ 43385: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "F": () => (/* binding */ useGasPrice) +/* harmony export */ }); +/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(58500); +/* harmony import */ var _useWeb3Connection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(53837); -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - "u": () => (/* binding */ base) -}); -// EXTERNAL MODULE: ../plugin-infra/src/entry.ts -var entry = __webpack_require__(79936); -;// CONCATENATED MODULE: ../plugins/FileService/src/locales/en-US.json -const en_US_namespaceObject = JSON.parse('{"__display_name":"Plugin: File Service","__description":"Upload and share files on top of Arweave network. Store data, permanently.","__composition_entry":"📃 File Service","on_insert":"Use the file","uploading_preparing":"Preparing","uploading_estimating_time":"Estimating time…","uploading_in_minute_remaining":"{{seconds}}s remaining","uploading_remaining":"{{minutes}}m {{seconds}}s remaining","uploading_on_cancel":"Uploading… Please do not close this page.","recent_files":"Recent files","show_more":"Show More","file_key":"File Key:","unencrypted":"This file is not encrypted","signing_failed":"Service unavailable. Wait a few minutes and try again.","on_encrypt_it":"Make It Encrypted","use_cdn":"Use Meson CDN","legal_text":"By using this plugin, you agree to the terms and the privacy policy.","legal_terms_link":"https://legal.mask.io/arweave/file-service/plugin-terms.html","legal_policy_link":"https://legal.mask.io/arweave/file-service/privacy-policy-uploader.html","drop_indicator":"Drop to upload","drop_hint_1":"Size limit: {{limit}}.","drop_hint_2":"The file will be uploaded immediately and cannot be canceled.","drop_here":"Drop a file here to upload","error_101":"The input is not a single file.","error_102":"The file is too large; limit is {{limit}}.","on_change_file":"Change File","provider_arweave":"Arweave","provider_ipfs":"IPFS","provider_swarm":"Swarm"}'); -;// CONCATENATED MODULE: ../plugins/FileService/src/locales/ja-JP.json -const ja_JP_namespaceObject = JSON.parse('{"__display_name":"プラグイン: ファイルサービス","__description":"ファイルをArweaveネットワーク上にアップロードと共有します。データーを永久に保存します。","__composition_entry":"📃ファイルサービス","on_insert":"ファイルを使用する","uploading_preparing":"準備中","uploading_estimating_time":"転送時間を計算中...","uploading_in_minute_remaining":"残り: {{seconds}} 秒","uploading_remaining":"残り: {{minutes}} 分 {{seconds}} 秒","uploading_on_cancel":"アップロードしています…今このページを閉じないでください。","recent_files":"最近のファイル","show_more":"更に","file_key":"ファイルキー:","unencrypted":"このファイルは暗号化されていません。","signing_failed":"サービスが使用できません。今しばらくお待ちください。","on_encrypt_it":"暗号化しましょう","use_cdn":"Mesonを使用して加速する","legal_text":"このプラグインを使用することで利用規約並びにプライバシーポリシーに同意したこととなります。","legal_terms_link":"https://legal.mask.io/arweave/file-service/plugin-terms.html","legal_policy_link":"https://legal.mask.io/arweave/file-service/privacy-policy-uploader.html","drop_indicator":"ファイルをドラッグ&ドロップしてアップロード!","drop_hint_1":"ファイル容量の超過:{{limit}}","drop_hint_2":"このファイルはすぐにアップロードされ、取り消すことはできません。","drop_here":"ファイルをここにドラッグ&ドロップ","error_101":"一つのファイルだけにしてください!","error_102":"ファイルが大きすぎます!最大容量は {{limit}} です。","on_change_file":"ファイルの変更"}'); -;// CONCATENATED MODULE: ../plugins/FileService/src/locales/ko-KR.json -const ko_KR_namespaceObject = JSON.parse('{"on_insert":"파일 사용","uploading_preparing":"준비 중","uploading_estimating_time":"남은 시간 계산 중","uploading_in_minute_remaining":"남은 시간 {{seconds}}s","uploading_remaining":"남은 시간 {{minutes}}m {{seconds}}s","uploading_on_cancel":"업로딩 중, 이 페이지를 닫지 마세요.","recent_files":"최근 파일","show_more":"더보기","file_key":"파일 키","unencrypted":"암호화되지 않는 파일입니다.","signing_failed":"사용 안 되는 서비스입니다. 잠시 후 다시 시도하세요.","on_encrypt_it":"암호화하기","use_cdn":"Meson CDN를 이용하기","legal_text":"이 플러그인을 이용하면 이용약관개인정보처리방침을 동의함으로 간주합니다","drop_indicator":"파일을 끌어들여 업로드하기","drop_hint_1":"크기 제한: {{limit}}.","drop_hint_2":"이 파일 즉시 업로드되겠습니다. 취소가 불가능합니다.","drop_here":"여기서 파일을 끌어들여 업로드하기","error_101":"단일 파일만 가능합니다.","error_102":"이 파일은 너무 큽니다. 크기 제한: {{limit}}.","on_change_file":"다른 파일로 바꾸기"}'); -;// CONCATENATED MODULE: ../plugins/FileService/src/locales/qya-AA.json -const qya_AA_namespaceObject = JSON.parse('{"__display_name":"crwdns10743:0crwdne10743:0","__description":"crwdns10745:0crwdne10745:0","__composition_entry":"crwdns10747:0crwdne10747:0","on_insert":"crwdns10697:0crwdne10697:0","uploading_preparing":"crwdns10699:0crwdne10699:0","uploading_estimating_time":"crwdns10701:0crwdne10701:0","uploading_in_minute_remaining":"crwdns10703:0{{seconds}}crwdne10703:0","uploading_remaining":"crwdns10705:0{{minutes}}crwdnd10705:0{{seconds}}crwdne10705:0","uploading_on_cancel":"crwdns10707:0crwdne10707:0","recent_files":"crwdns10709:0crwdne10709:0","show_more":"crwdns10711:0crwdne10711:0","file_key":"crwdns10713:0crwdne10713:0","unencrypted":"crwdns10715:0crwdne10715:0","signing_failed":"crwdns10717:0crwdne10717:0","on_encrypt_it":"crwdns10719:0crwdne10719:0","use_cdn":"crwdns10721:0crwdne10721:0","legal_text":"crwdns10723:0crwdne10723:0","legal_terms_link":"crwdns10725:0crwdne10725:0","legal_policy_link":"crwdns10727:0crwdne10727:0","drop_indicator":"crwdns10729:0crwdne10729:0","drop_hint_1":"crwdns10731:0{{limit}}crwdne10731:0","drop_hint_2":"crwdns10733:0crwdne10733:0","drop_here":"crwdns10735:0crwdne10735:0","error_101":"crwdns10737:0crwdne10737:0","error_102":"crwdns10739:0{{limit}}crwdne10739:0","on_change_file":"crwdns10741:0crwdne10741:0","provider_arweave":"crwdns14526:0crwdne14526:0","provider_ipfs":"crwdns14528:0crwdne14528:0","provider_swarm":"crwdns14530:0crwdne14530:0"}'); -;// CONCATENATED MODULE: ../plugins/FileService/src/locales/zh-CN.json -const zh_CN_namespaceObject = JSON.parse('{"__display_name":"插件:文件服务","__description":"上传和分享文件至 Arweave 网络,永久性地存储数据。","__composition_entry":"📃 文件服务","on_insert":"使用该文件","uploading_preparing":"准备中","uploading_estimating_time":"预计时间…","uploading_in_minute_remaining":"剩余 {{seconds}} 秒","uploading_remaining":"剩余 {{minutes}} 分钟 {{seconds}} 秒","uploading_on_cancel":"上传中…请不要关闭此页面。","recent_files":"最近使用的文件","show_more":"显示更多","file_key":"文件密钥:","unencrypted":"此文件未加密","signing_failed":"服务暂不可用。请等待几分钟后重试。","on_encrypt_it":"进行加密","use_cdn":"使用Meson CDN","legal_text":"使用此插件,均表明您同意 使用条款隐私政策。","legal_terms_link":"拖放文件以上传","legal_policy_link":"大小限制: {{limit}}","drop_indicator":"将文件拖放到此处来上传。","drop_hint_1":"大小限制: {{limit}}","drop_hint_2":"文件将立即上传,无法取消。","drop_here":"将文件拖放到此处来上传。","error_101":"此输入不是单个文件。","error_102":"文件太大,限制为 {{limit}}。","on_change_file":"更改文件","provider_arweave":"Arweave","provider_ipfs":"IPFS","provider_swarm":"Swarm"}'); -;// CONCATENATED MODULE: ../plugins/FileService/src/locales/zh-TW.json -const zh_TW_namespaceObject = JSON.parse('{"__display_name":"插件:檔案服務","__composition_entry":"📃 檔案服務","on_insert":"使用這個檔案","uploading_preparing":"準備中","uploading_estimating_time":"預估時間…","uploading_in_minute_remaining":"剩下 {{seconds}} 秒","uploading_remaining":"剩下 {{minutes}} 分 {{seconds}} 秒","uploading_on_cancel":"上傳中… 請勿關閉這個頁面。","recent_files":"最近的檔案","show_more":"顯示更多","file_key":"檔案金鑰:","unencrypted":"這個檔案未加密","signing_failed":"服務無法使用。 請稍等幾分鐘,然後重試。","on_encrypt_it":"加密它","use_cdn":"使用 Meson CDN","legal_text":"使用此插件表示您同意使用者條約隱私權政策。","drop_indicator":"拖入檔案以上傳","drop_hint_1":"檔案大小限制:{{limit}}。","drop_hint_2":"檔案將立即被上傳而且無法取消。","drop_here":"在這裡拖入一個檔案以上傳","error_101":"輸入的檔案不是單一檔案","error_102":"檔案太大; 檔案大小限制是 {{limit}}。","on_change_file":"更改檔案"}'); -;// CONCATENATED MODULE: ../plugins/FileService/src/locales/languages.ts -// This file is auto generated. DO NOT EDIT -// Run `npx gulp sync-languages` to regenerate. -// Default fallback language in a family of languages are chosen by the alphabet order -// To overwrite this, please overwrite packages/scripts/src/locale-kit-next/index.ts +function useGasPrice(pluginID, options) { + const connection = (0,_useWeb3Connection__WEBPACK_IMPORTED_MODULE_0__/* .useWeb3Connection */ .T)(pluginID, options); + return (0,react_use__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)(async ()=>{ + if (!connection) return '0'; + return connection.getGasPrice() ?? '0'; + }, [ + connection + ]); +} +/***/ }), +/***/ 35686: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "u": () => (/* binding */ useNativeToken) +/* harmony export */ }); +/* harmony import */ var _useFungibleToken__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(38327); +/* harmony import */ var _useNativeTokenAddress__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(72883); -const languages = { - en: en_US_namespaceObject, - ja: ja_JP_namespaceObject, - ko: ko_KR_namespaceObject, - qy: qya_AA_namespaceObject, - 'zh-CN': zh_CN_namespaceObject, - zh: zh_TW_namespaceObject -}; -// @ts-ignore -if (false) {} +function useNativeToken(pluginID, options) { + const nativeTokenAddress = (0,_useNativeTokenAddress__WEBPACK_IMPORTED_MODULE_1__/* .useNativeTokenAddress */ .Z)(pluginID, options); + return (0,_useFungibleToken__WEBPACK_IMPORTED_MODULE_0__/* .useFungibleToken */ .c)(pluginID, nativeTokenAddress, options); +} -;// CONCATENATED MODULE: ../plugins/FileService/src/base.ts +/***/ }), -const base = { - ID: entry/* PluginId.FileService */.je.FileService, - name: { - fallback: 'File Service', - i18nKey: '__display_name' - }, - description: { - fallback: 'Upload and share files on top of Arweave network. Store data, permanently.', - i18nKey: '__description' - }, - publisher: { - name: { - fallback: 'Mask Network' - }, - link: 'https://mask.io' - }, - enableRequirement: { - architecture: { - app: true, - web: true - }, - networks: { - type: 'opt-out', - networks: {} - }, - target: 'stable' - }, - i18n: languages -}; +/***/ 72883: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "Z": () => (/* binding */ useNativeTokenAddress) +/* harmony export */ }); +/* harmony import */ var _useWeb3State__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12368); + +function useNativeTokenAddress(pluginID, options) { + const { Others } = (0,_useWeb3State__WEBPACK_IMPORTED_MODULE_0__/* .useWeb3State */ .d)(pluginID); + const nativeTokenAddress = Others?.getNativeTokenAddress?.(options?.chainId); + if (!nativeTokenAddress) throw new Error('No native token address.'); + return nativeTokenAddress; +} /***/ }), -/***/ 95261: +/***/ 7739: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "h": () => (/* binding */ useNativeTokenBalance) +/* harmony export */ }); +/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(58500); +/* harmony import */ var _useAccount__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(72128); +/* harmony import */ var _useWeb3Connection__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(53837); -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - "u": () => (/* binding */ base) -}); -;// CONCATENATED MODULE: ../plugins/Flow/src/locales/en-US.json -const en_US_namespaceObject = JSON.parse('{"button_log_in":"Log In","button_log_out":"Log Out","button_sign_up":"Sign Up","card_state_text_no_profile":"No Profile"}'); -;// CONCATENATED MODULE: ../plugins/Flow/src/locales/ja-JP.json -const ja_JP_namespaceObject = {}; -;// CONCATENATED MODULE: ../plugins/Flow/src/locales/ko-KR.json -const ko_KR_namespaceObject = JSON.parse('{"button_log_in":"로그인","button_log_out":"로그아웃","button_sign_up":"가입하기","card_state_text_no_profile":"프로필 없음"}'); -;// CONCATENATED MODULE: ../plugins/Flow/src/locales/qya-AA.json -const qya_AA_namespaceObject = JSON.parse('{"button_log_in":"crwdns9789:0crwdne9789:0","button_log_out":"crwdns9791:0crwdne9791:0","button_sign_up":"crwdns9793:0crwdne9793:0","card_state_text_no_profile":"crwdns9795:0crwdne9795:0"}'); -;// CONCATENATED MODULE: ../plugins/Flow/src/locales/zh-CN.json -const zh_CN_namespaceObject = JSON.parse('{"button_log_in":"登录","button_log_out":"注销","button_sign_up":"注册","card_state_text_no_profile":"暂无个人资料"}'); -;// CONCATENATED MODULE: ../plugins/Flow/src/locales/zh-TW.json -const zh_TW_namespaceObject = JSON.parse('{"button_log_in":"登入","button_log_out":"登出","button_sign_up":"註冊","card_state_text_no_profile":"無文件"}'); -;// CONCATENATED MODULE: ../plugins/Flow/src/locales/languages.ts -// This file is auto generated. DO NOT EDIT -// Run `npx gulp sync-languages` to regenerate. -// Default fallback language in a family of languages are chosen by the alphabet order -// To overwrite this, please overwrite packages/scripts/src/locale-kit-next/index.ts +function useNativeTokenBalance(pluginID, options) { + const account = (0,_useAccount__WEBPACK_IMPORTED_MODULE_0__/* .useAccount */ .m)(pluginID, options?.account); + const connection = (0,_useWeb3Connection__WEBPACK_IMPORTED_MODULE_1__/* .useWeb3Connection */ .T)(pluginID, options); + return (0,react_use__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z)(async ()=>{ + if (!connection) return '0'; + return connection.getNativeTokenBalance?.({ + account + }); + }, [ + account, + connection + ]); +} +/***/ }), +/***/ 40540: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "l": () => (/* binding */ useNativeTokenPrice) +/* harmony export */ }); +/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(58500); +/* harmony import */ var _useNativeTokenAddress__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(72883); +/* harmony import */ var _useChainId__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(45087); +/* harmony import */ var _useWeb3Hub__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(94227); -const languages = { - en: en_US_namespaceObject, - ja: ja_JP_namespaceObject, - ko: ko_KR_namespaceObject, - qy: qya_AA_namespaceObject, - 'zh-CN': zh_CN_namespaceObject, - zh: zh_TW_namespaceObject -}; -// @ts-ignore -if (false) {} -// EXTERNAL MODULE: ../plugins/Flow/src/constants.ts -var constants = __webpack_require__(47517); -;// CONCATENATED MODULE: ../plugins/Flow/src/base.ts -const base = { - ID: constants/* PLUGIN_ID */.Uu, - name: { - fallback: constants/* PLUGIN_NAME */.EW - }, - description: { - fallback: constants/* PLUGIN_DESCRIPTION */.PP - }, - publisher: { - name: { - fallback: 'Mask Network' - }, - link: 'https://mask.io/' - }, - enableRequirement: { - architecture: { - app: true, - web: true - }, - networks: { - type: 'opt-out', - networks: {} - }, - target: 'stable' - }, - i18n: languages, - declareApplicationCategories: [], - declareWeb3Networks: constants/* PLUGIN_NETWORKS */.BK, - declareWeb3Providers: constants/* PLUGIN_PROVIDERS */.aZ -}; +function useNativeTokenPrice(pluginID, options) { + const chainId = (0,_useChainId__WEBPACK_IMPORTED_MODULE_1__/* .useChainId */ .x)(pluginID, options?.chainId); + const hub = (0,_useWeb3Hub__WEBPACK_IMPORTED_MODULE_2__/* .useWeb3Hub */ .h)(pluginID, options); + const nativeTokenAddress = (0,_useNativeTokenAddress__WEBPACK_IMPORTED_MODULE_0__/* .useNativeTokenAddress */ .Z)(pluginID, options); + return (0,react_use__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z)(async ()=>{ + return hub?.getFungibleTokenPrice?.(chainId, nativeTokenAddress); + }, [ + chainId, + nativeTokenAddress, + hub + ]); +} /***/ }), -/***/ 47517: +/***/ 3859: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "BK": () => (/* binding */ PLUGIN_NETWORKS), -/* harmony export */ "EW": () => (/* binding */ PLUGIN_NAME), -/* harmony export */ "PP": () => (/* binding */ PLUGIN_DESCRIPTION), -/* harmony export */ "Uu": () => (/* binding */ PLUGIN_ID), -/* harmony export */ "aZ": () => (/* binding */ PLUGIN_PROVIDERS) +/* harmony export */ "p": () => (/* binding */ useNetworkDescriptors) /* harmony export */ }); -/* harmony import */ var _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(79936); -/* harmony import */ var _masknet_web3_shared_flow_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(73946); +/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(44451); +/* harmony import */ var _manager_store__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(93996); +/* harmony import */ var _Context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(46390); -const PLUGIN_ID = _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__/* .PluginId.Flow */ .je.Flow; -const PLUGIN_NAME = 'Flow Chain'; -const PLUGIN_DESCRIPTION = ''; -const PLUGIN_NETWORKS = [ - { - ID: `${PLUGIN_ID}_flow`, - networkSupporterPluginID: PLUGIN_ID, - chainId: _masknet_web3_shared_flow_types__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Mainnet */ .a_.Mainnet, - type: _masknet_web3_shared_flow_types__WEBPACK_IMPORTED_MODULE_1__/* .NetworkType.Flow */ .td.Flow, - name: 'Flow', - icon: new URL(/* asset import */ __webpack_require__(36284), __webpack_require__.b), - iconColor: 'rgb(54, 173, 104)', - isMainnet: true - }, - { - ID: `${PLUGIN_ID}_flow_testnet`, - networkSupporterPluginID: PLUGIN_ID, - chainId: _masknet_web3_shared_flow_types__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Testnet */ .a_.Testnet, - type: _masknet_web3_shared_flow_types__WEBPACK_IMPORTED_MODULE_1__/* .NetworkType.Flow */ .td.Flow, - name: 'Flow Testnet', - icon: new URL(/* asset import */ __webpack_require__(36284), __webpack_require__.b), - iconColor: 'rgb(54, 173, 104)', - isMainnet: false - }, -]; -const PLUGIN_PROVIDERS = [ - { - ID: `${PLUGIN_ID}_blocto`, - providerAdaptorPluginID: PLUGIN_ID, - type: _masknet_web3_shared_flow_types__WEBPACK_IMPORTED_MODULE_1__/* .ProviderType.Blocto */ .lP.Blocto, - name: 'Blocto', - icon: new URL(/* asset import */ __webpack_require__(28012), __webpack_require__.b) - }, -]; + +function useNetworkDescriptors(expectedPluginID) { + const pluginID = (0,_Context__WEBPACK_IMPORTED_MODULE_2__/* .useCurrentWeb3NetworkPluginID */ .$f)(expectedPluginID); + return (0,_manager_store__WEBPACK_IMPORTED_MODULE_1__/* .getPluginDefine */ ._W)(pluginID)?.declareWeb3Networks ?? _masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .EMPTY_LIST */ .rP; +} /***/ }), -/***/ 51213: +/***/ 40969: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "b": () => (/* binding */ useNetworkType) +/* harmony export */ }); +/* harmony import */ var use_subscription__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(14257); +/* harmony import */ var _useWeb3State__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12368); +/* harmony import */ var _utils_subscription__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(55437); +/* harmony import */ var _useDefaultNetworkType__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(12641); +/* harmony import */ var _Context__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(46390); -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - "u": () => (/* binding */ base) -}); -// EXTERNAL MODULE: ../plugins/GoPlusSecurity/src/constants.ts -var constants = __webpack_require__(3502); -;// CONCATENATED MODULE: ../plugins/GoPlusSecurity/src/locales/en-US.json -const en_US_namespaceObject = JSON.parse('{"dialog_title":"Check Security","powered_by_go_plus":"Powered by Go+","high_risk":"High Risk","low_risk":"Low Risk","medium_risk":"Medium Risk","search":"Search","search_input_placeholder":"Please enter token contract address.","token_info":"Token info","more_details":"More Details","security_detection":"Security Detection","risky_factors":"{{quantity}} Risky factors","attention_factors":"{{quantity}} Attention factors","risky_factor":"{{quantity}} Risky factor","attention_factor":"{{quantity}} Attention factor","security_info_code_not_verify_title":"Contract source code not verified","security_info_code_not_verify_message":"This token contract has not been verified. We cannot check the contract code for details. Unsourced token contracts are likely to have malicious functions to defraud users of their assets","security_info_functions_that_can_suspend_trading_title":"Functions that can suspend trading","security_info_functions_that_can_suspend_trading_message":"If a suspendable code is included, the token maybe neither be bought nor sold (honeypot risk). ","token_info_token_name":"Token Name","token_info_token_contract_address":"Token Contract Address","token_info_contract_creator":"Contract Creator","token_info_contract_owner":"Contract Owner","token_info_total_supply":"Total Supply","default_placeholder":"Note: Scams detections might not be 100% guaranteed.","not_found_tip_title":"Results not found now. it might be chain network error, on-chain data abnormal or the token address is not covered now. please check as followings:","not_found_tip_network_error":"1. Make sure network is working;","not_found_tip_network_chain_correct":"2. Mask sure the chain network or token address is correct;","not_found_tip_network_address_not_cover":"3. Token address is not covered now, it might take more than 60s to get contract information again. Please try it later.","risk_safe_description":"This token has no risky or attention factors.","risk_contract_source_code_verified_title":"Contract source code verified","risk_contract_source_code_verified_body":"This token contract is open source. You can check the contract code for details. Unsourced token contracts are likely to have malicious functions to defraud their users of their assets.","risk_contract_source_code_not_verified_title":"Contract source code not verified","risk_contract_source_code_not_verified_body":"This token contract has not been verified. We cannot check the contract code for details. Unsourced token contracts are likely to have malicious functions to defraud users of their assets.","risk_proxy_contract_title":"Proxy contract","risk_proxy_contract_body":"This contract is an Admin Upgradeability Proxy. The proxy contract means the contract owner can modifiy the function of the token and could possibly effect the price.There is possibly a way for the team to Rug or Scam. Please confirm the details with the project team before buying.","risk_no_proxy_title":"No proxy","risk_no_proxy_body":"There is no proxy in the contract. The proxy contract means contract owner can modifiy the function of the token and possibly effect the price.","risk_mint_function_title":"Mint function","risk_mint_function_body":"The contract may contain additional issuance functions, which could maybe generate a large number of tokens, resulting in significant fluctuations in token prices. It is recommended to confirm with the project team whether it complies with the token issuance instructions.","risk_no_mint_function_title":"No mint function","risk_no_mint_function_body":"Mint function is transparent or non-existent. Hidden mint functions may increase the amount of tokens in circulation and effect the price of the token.","risk_can_take_back_ownership_title":"Functions with retrievable ownership","risk_can_take_back_ownership_body":"If this function exists, it is possible for the project owner to regain ownership even after relinquishing it","risk_no_can_take_back_ownership_title":"No function found that retrieves ownership","risk_no_can_take_back_ownership_body":"If this function exists, it is possible for the project owner to regain ownership even after relinquishing it","risk_owner_change_balance_title":"Owner can change balance","risk_owner_change_balance_body":"The contract owner has the authority to modify the balance of tokens at other addresses, which may result in a loss of assets.","risk_owner_can_not_change_balance_title":"Owner can\'t change balance","risk_owner_can_not_change_balance_body":"The contract owner is not found to have the authority to modify the balance of tokens at other addresses.","risk_buy_tax_title":"Buy Tax: {{rate}}","risk_buy_tax_body":"Above 10% may be considered a high tax rate. More than 50% tax rate means may not be tradable.","risk_sell_tax_title":"Sell Tax: {{rate}}","risk_sell_tax_body":"Above 10% may be considered a high tax rate. More than 50% tax rate means may not be tradable.","risk_is_honeypot_title":"May the token is a honeypot.","risk_is_honeypot_body":"This token contract has a code that states that it cannot be sold. Maybe this is a honeypot.","risk_is_not_honeypot_title":"This does not appear to be a honeypot.","risk_is_not_honeypot_body":"We are not aware of any code that prevents the sale of tokens.","risk_transfer_pausable_title":"Functions that can suspend trading","risk_transfer_pausable_body":"If a suspendable code is included, the token maybe neither be bought nor sold (honeypot risk).","risk_no_code_transfer_pausable_title":"No codes found to suspend trading.","risk_no_code_transfer_pausable_body":"If a suspendable code is included, the token maybe neither be bought nor sold (honeypot risk).","risk_is_anti_whale_title":" Anti_whale(Limited number of transactions)","risk_is_anti_whale_body":"The number of token transactions is limited. The number of scam token transactions may be limited (honeypot risk).","risk_is_no_anti_whale_title":"No anti_whale(Unlimited number of transactions)","risk_is_no_anti_whale_body":"There is no limit to the number of token transactions. The number of scam token transactions may be limited (honeypot risk).","risk_slippage_modifiable_title":"Tax can be modified","risk_slippage_modifiable_body":" The contract owner may contain the authority to modify the transaction tax. If the transaction tax is increased to more than 49%, the tokens will not be able to be traded (honeypot risk).","risk_not_slippage_modifiable_title":"Tax cannot be modified","risk_not_slippage_modifiable_body":"The contract owner may not contain the authority to modify the transaction tax. If the transaction tax is increased to more than 49%, the tokens will not be able to be traded (honeypot risk).","risk_is_blacklisted_title":"Blacklist function","risk_is_blacklisted_body":"The blacklist function is included. Some addresses may not be able to trade normally (honeypot risk).","risk_not_is_blacklisted_title":"No blacklist","risk_not_is_blacklisted_body":"The blacklist function is not included. If there is a blacklist, some addresses may not be able to trade normally (honeypot risk).","risk_is_whitelisted_title":"Whitelist function","risk_is_whitelisted_body":"The whitelist function is included. Some addresses may not be able to trade normally (honeypot risk).","risk_not_is_whitelisted_title":"No whitelist","risk_not_is_whitelisted_body":"The whitelist function is not included. If there is a whitelist, some addresses may not be able to trade normally (honeypot risk).","risk_is_true_token_title":"True Token","risk_is_true_token_body":"This token is issued by its declared team. Some scams will create a well-known token with the same name to defraud their users of their assets.","risk_not_is_true_token_title":"Fake Token","risk_not_is_true_token_body":"This token is not issued by its declared team. Some scams will create a well-known token with the same name to defraud their users of their assets.","risk_is_airdrop_scam_title":"Airdrop Scam","risk_is_airdrop_scam_body":"You may lose your assets if giving approval to the website of this token.","risk_not_is_airdrop_scam_title":"No Airdrop Scam","risk_not_is_airdrop_scam_body":"This is not an airdrop scam. Many scams attract users through airdrops."}'); -;// CONCATENATED MODULE: ../plugins/GoPlusSecurity/src/locales/ja-JP.json -const ja_JP_namespaceObject = {}; -;// CONCATENATED MODULE: ../plugins/GoPlusSecurity/src/locales/ko-KR.json -const ko_KR_namespaceObject = {}; -;// CONCATENATED MODULE: ../plugins/GoPlusSecurity/src/locales/qya-AA.json -const qya_AA_namespaceObject = JSON.parse('{"dialog_title":"crwdns14808:0crwdne14808:0","powered_by_go_plus":"crwdns14810:0crwdne14810:0","high_risk":"crwdns14812:0crwdne14812:0","low_risk":"crwdns14814:0crwdne14814:0","medium_risk":"crwdns14816:0crwdne14816:0","search":"crwdns14818:0crwdne14818:0","search_input_placeholder":"crwdns14820:0crwdne14820:0","token_info":"crwdns14822:0crwdne14822:0","more_details":"crwdns14824:0crwdne14824:0","security_detection":"crwdns14826:0crwdne14826:0","risky_factors":"crwdns14828:0{{quantity}}crwdne14828:0","attention_factors":"crwdns14830:0{{quantity}}crwdne14830:0","risky_factor":"crwdns14968:0{{quantity}}crwdne14968:0","attention_factor":"crwdns14970:0{{quantity}}crwdne14970:0","security_info_code_not_verify_title":"crwdns14832:0crwdne14832:0","security_info_code_not_verify_message":"crwdns14834:0crwdne14834:0","security_info_functions_that_can_suspend_trading_title":"crwdns14836:0crwdne14836:0","security_info_functions_that_can_suspend_trading_message":"crwdns14838:0crwdne14838:0","token_info_token_name":"crwdns14840:0crwdne14840:0","token_info_token_contract_address":"crwdns14842:0crwdne14842:0","token_info_contract_creator":"crwdns14844:0crwdne14844:0","token_info_contract_owner":"crwdns14846:0crwdne14846:0","token_info_total_supply":"crwdns14848:0crwdne14848:0","default_placeholder":"crwdns14850:0crwdne14850:0","not_found_tip_title":"crwdns14972:0crwdne14972:0","not_found_tip_network_error":"crwdns14974:0crwdne14974:0","not_found_tip_network_chain_correct":"crwdns14976:0crwdne14976:0","not_found_tip_network_address_not_cover":"crwdns14978:0crwdne14978:0","risk_safe_description":"crwdns14854:0crwdne14854:0","risk_contract_source_code_verified_title":"crwdns14856:0crwdne14856:0","risk_contract_source_code_verified_body":"crwdns14858:0crwdne14858:0","risk_contract_source_code_not_verified_title":"crwdns14860:0crwdne14860:0","risk_contract_source_code_not_verified_body":"crwdns14862:0crwdne14862:0","risk_proxy_contract_title":"crwdns14864:0crwdne14864:0","risk_proxy_contract_body":"crwdns14866:0crwdne14866:0","risk_no_proxy_title":"crwdns14868:0crwdne14868:0","risk_no_proxy_body":"crwdns14870:0crwdne14870:0","risk_mint_function_title":"crwdns14872:0crwdne14872:0","risk_mint_function_body":"crwdns14874:0crwdne14874:0","risk_no_mint_function_title":"crwdns14876:0crwdne14876:0","risk_no_mint_function_body":"crwdns14878:0crwdne14878:0","risk_can_take_back_ownership_title":"crwdns14880:0crwdne14880:0","risk_can_take_back_ownership_body":"crwdns14882:0crwdne14882:0","risk_no_can_take_back_ownership_title":"crwdns14884:0crwdne14884:0","risk_no_can_take_back_ownership_body":"crwdns14886:0crwdne14886:0","risk_owner_change_balance_title":"crwdns14888:0crwdne14888:0","risk_owner_change_balance_body":"crwdns14890:0crwdne14890:0","risk_owner_can_not_change_balance_title":"crwdns14892:0crwdne14892:0","risk_owner_can_not_change_balance_body":"crwdns14894:0crwdne14894:0","risk_buy_tax_title":"crwdns14896:0{{rate}}crwdne14896:0","risk_buy_tax_body":"crwdns14898:0crwdne14898:0","risk_sell_tax_title":"crwdns14900:0{{rate}}crwdne14900:0","risk_sell_tax_body":"crwdns14902:0crwdne14902:0","risk_is_honeypot_title":"crwdns14904:0crwdne14904:0","risk_is_honeypot_body":"crwdns14906:0crwdne14906:0","risk_is_not_honeypot_title":"crwdns14908:0crwdne14908:0","risk_is_not_honeypot_body":"crwdns14910:0crwdne14910:0","risk_transfer_pausable_title":"crwdns14912:0crwdne14912:0","risk_transfer_pausable_body":"crwdns14914:0crwdne14914:0","risk_no_code_transfer_pausable_title":"crwdns14916:0crwdne14916:0","risk_no_code_transfer_pausable_body":"crwdns14918:0crwdne14918:0","risk_is_anti_whale_title":"crwdns14920:0crwdne14920:0","risk_is_anti_whale_body":"crwdns14922:0crwdne14922:0","risk_is_no_anti_whale_title":"crwdns14924:0crwdne14924:0","risk_is_no_anti_whale_body":"crwdns14926:0crwdne14926:0","risk_slippage_modifiable_title":"crwdns14928:0crwdne14928:0","risk_slippage_modifiable_body":"crwdns14930:0crwdne14930:0","risk_not_slippage_modifiable_title":"crwdns14932:0crwdne14932:0","risk_not_slippage_modifiable_body":"crwdns14934:0crwdne14934:0","risk_is_blacklisted_title":"crwdns14936:0crwdne14936:0","risk_is_blacklisted_body":"crwdns14938:0crwdne14938:0","risk_not_is_blacklisted_title":"crwdns14940:0crwdne14940:0","risk_not_is_blacklisted_body":"crwdns14942:0crwdne14942:0","risk_is_whitelisted_title":"crwdns14944:0crwdne14944:0","risk_is_whitelisted_body":"crwdns14946:0crwdne14946:0","risk_not_is_whitelisted_title":"crwdns14948:0crwdne14948:0","risk_not_is_whitelisted_body":"crwdns14950:0crwdne14950:0"}'); -;// CONCATENATED MODULE: ../plugins/GoPlusSecurity/src/locales/zh-CN.json -const zh_CN_namespaceObject = {}; -;// CONCATENATED MODULE: ../plugins/GoPlusSecurity/src/locales/zh-TW.json -const zh_TW_namespaceObject = {}; -;// CONCATENATED MODULE: ../plugins/GoPlusSecurity/src/locales/languages.ts -// This file is auto generated. DO NOT EDIT -// Run `npx gulp sync-languages` to regenerate. -// Default fallback language in a family of languages are chosen by the alphabet order -// To overwrite this, please overwrite packages/scripts/src/locale-kit-next/index.ts +function useNetworkType(pluginID) { + const { Provider } = (0,_useWeb3State__WEBPACK_IMPORTED_MODULE_1__/* .useWeb3State */ .d)(pluginID); + const currentNetworkType = (0,_Context__WEBPACK_IMPORTED_MODULE_4__/* .useCurrentWeb3NetworkNetworkType */ .sw)(pluginID); + const defaultNetworkType = (0,_useDefaultNetworkType__WEBPACK_IMPORTED_MODULE_3__/* .useDefaultNetworkType */ .w)(pluginID); + const networkType = (0,use_subscription__WEBPACK_IMPORTED_MODULE_0__.useSubscription)(Provider?.networkType ?? _utils_subscription__WEBPACK_IMPORTED_MODULE_2__/* .UNDEFINED */ .i_); + return (currentNetworkType ?? networkType) ?? defaultNetworkType; +} +/***/ }), -const languages = { - en: en_US_namespaceObject, - ja: ja_JP_namespaceObject, - ko: ko_KR_namespaceObject, - qy: qya_AA_namespaceObject, - 'zh-CN': zh_CN_namespaceObject, - zh: zh_TW_namespaceObject -}; -// @ts-ignore -if (false) {} +/***/ 872: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -;// CONCATENATED MODULE: ../plugins/GoPlusSecurity/src/base.ts +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "E": () => (/* binding */ useNonFungibleAsset) +/* harmony export */ }); +/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(58500); +/* harmony import */ var _entry_web3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(50719); +/* harmony import */ var _useWeb3Hub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(94227); -const base = { - ID: constants/* PLUGIN_ID */.Uu, - icon: '', - name: { - fallback: constants/* PLUGIN_NAME */.EW - }, - description: { - fallback: constants/* PLUGIN_DESCRIPTION */.PP - }, - publisher: { - name: { - fallback: 'Mask Network' - }, - link: 'https://mask.io/' - }, - enableRequirement: { - architecture: { - app: false, - web: true - }, - networks: { - type: 'opt-out', - networks: {} - }, - target: 'stable' - }, - i18n: languages -}; + +function useNonFungibleAsset(pluginID, address, id, options) { + const account = (0,_entry_web3__WEBPACK_IMPORTED_MODULE_0__/* .useAccount */ .mA)(pluginID, options?.account); + const hub = (0,_useWeb3Hub__WEBPACK_IMPORTED_MODULE_1__/* .useWeb3Hub */ .h)(pluginID, { + account, + ...options + }); + return (0,react_use__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z)(async ()=>{ + if (!address || !id || !hub) return; + return hub.getNonFungibleAsset?.(address, id); + }, [ + address, + id, + hub + ]); +} /***/ }), -/***/ 3502: +/***/ 20414: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "EW": () => (/* binding */ PLUGIN_NAME), -/* harmony export */ "JS": () => (/* binding */ PLUGIN_OFFICIAL_WEBSITE), -/* harmony export */ "PP": () => (/* binding */ PLUGIN_DESCRIPTION), -/* harmony export */ "Uu": () => (/* binding */ PLUGIN_ID) -/* harmony export */ }); -/* harmony import */ var _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(79936); +/* unused harmony export useNonFungibleAssetSourceType */ +/* harmony import */ var use_subscription__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(14257); +/* harmony import */ var _useWeb3State__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12368); +/* harmony import */ var _utils_subscription__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(55437); + -const PLUGIN_ID = _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__/* .PluginId.GoPlusSecurity */ .je.GoPlusSecurity; -const PLUGIN_DESCRIPTION = 'Go+ Security Engine'; -const PLUGIN_NAME = 'GoPlusSecurity'; -const PLUGIN_OFFICIAL_WEBSITE = 'https://gopluslabs.io'; + +function useNonFungibleAssetSourceType(pluginID) { + const { Settings } = useWeb3State(pluginID); + return useSubscription(Settings?.nonFungibleAssetSourceType ?? UNDEFINED); +} /***/ }), -/***/ 97206: +/***/ 83382: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "e": () => (/* binding */ useNonFungibleCollections) +/* harmony export */ }); +/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(58500); +/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(44451); +/* harmony import */ var _masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(67938); +/* harmony import */ var _useAccount__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(72128); +/* harmony import */ var _useWeb3Hub__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(94227); -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - "u": () => (/* binding */ base) -}); -;// CONCATENATED MODULE: ../plugins/RSS3/src/locales/en-US.json -const en_US_namespaceObject = JSON.parse('{"inactive_project":"Inactive Project","no_activity_time":"No activity time","attended":"attended","no_data":"No data","total_grants":"Total {{count}} Grants","contribution":"Contribution","contribution_other":"Contributions"}'); -;// CONCATENATED MODULE: ../plugins/RSS3/src/locales/ja-JP.json -const ja_JP_namespaceObject = {}; -;// CONCATENATED MODULE: ../plugins/RSS3/src/locales/ko-KR.json -const ko_KR_namespaceObject = {}; -;// CONCATENATED MODULE: ../plugins/RSS3/src/locales/qya-AA.json -const qya_AA_namespaceObject = JSON.parse('{"inactive_project":"crwdns10775:0crwdne10775:0","no_activity_time":"crwdns10777:0crwdne10777:0","attended":"crwdns10779:0crwdne10779:0","no_data":"crwdns14472:0crwdne14472:0","total_grants":"crwdns14474:0{{count}}crwdne14474:0","contribution":"crwdns14618:0crwdne14618:0","contribution_other":"crwdns14620:0crwdne14620:0"}'); -;// CONCATENATED MODULE: ../plugins/RSS3/src/locales/zh-CN.json -const zh_CN_namespaceObject = {"attended":"已参加"}; -;// CONCATENATED MODULE: ../plugins/RSS3/src/locales/zh-TW.json -const zh_TW_namespaceObject = {}; -;// CONCATENATED MODULE: ../plugins/RSS3/src/locales/languages.ts -// This file is auto generated. DO NOT EDIT -// Run `npx gulp sync-languages` to regenerate. -// Default fallback language in a family of languages are chosen by the alphabet order -// To overwrite this, please overwrite packages/scripts/src/locale-kit-next/index.ts +function useNonFungibleCollections(pluginID, options) { + const account = (0,_useAccount__WEBPACK_IMPORTED_MODULE_2__/* .useAccount */ .m)(pluginID, options?.account); + const hub = (0,_useWeb3Hub__WEBPACK_IMPORTED_MODULE_3__/* .useWeb3Hub */ .h)(pluginID, options); + return (0,react_use__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z)(async ()=>{ + if (!account || !hub) return []; + const iterator = (0,_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .pageableToIterator */ .J)(async (indicator)=>{ + if (!hub.getNonFungibleCollections) return; + return hub.getNonFungibleCollections(account, { + indicator, + size: 50, + ...options + }); + }); + return (0,_masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .asyncIteratorToArray */ .SR)(iterator); + }, [ + account, + hub, + JSON.stringify(options) + ]); +} +/***/ }), -const languages = { - en: en_US_namespaceObject, - ja: ja_JP_namespaceObject, - ko: ko_KR_namespaceObject, - qy: qya_AA_namespaceObject, - 'zh-CN': zh_CN_namespaceObject, - zh: zh_TW_namespaceObject -}; -// @ts-ignore -if (false) {} +/***/ 74637: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -// EXTERNAL MODULE: ../plugins/RSS3/src/constants.ts -var constants = __webpack_require__(17989); -;// CONCATENATED MODULE: ../plugins/RSS3/src/base.ts +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "b": () => (/* binding */ useNonFungibleToken) +/* harmony export */ }); +/* harmony import */ var react_use_lib_useAsyncRetry__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(57170); +/* harmony import */ var _useWeb3Connection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(53837); +/* harmony import */ var _useChainId__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(45087); +/* harmony import */ var _useAccount__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(72128); -const base = { - ID: constants/* PLUGIN_ID */.Uu, - name: { - fallback: constants/* PLUGIN_NAME */.EW - }, - description: { - fallback: constants/* PLUGIN_DESCRIPTION */.PP - }, - publisher: { - name: { - fallback: constants/* PLUGIN_NAME */.EW - }, - link: 'https://rss3.bio/' - }, - enableRequirement: { - architecture: { - app: false, - web: true - }, - networks: { - type: 'opt-out', - networks: {} - }, - target: 'stable' - }, - experimentalMark: true, - i18n: languages -}; + + +function useNonFungibleToken(pluginID, address, tokenId, schemaType, options) { + const chainId = (0,_useChainId__WEBPACK_IMPORTED_MODULE_1__/* .useChainId */ .x)(pluginID, options?.chainId); + const account = (0,_useAccount__WEBPACK_IMPORTED_MODULE_2__/* .useAccount */ .m)(pluginID, options?.account); + const connection = (0,_useWeb3Connection__WEBPACK_IMPORTED_MODULE_0__/* .useWeb3Connection */ .T)(pluginID, options); + return (0,react_use_lib_useAsyncRetry__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z)(async ()=>{ + if (!address || !tokenId || !connection) return; + return connection.getNonFungibleToken(address, tokenId, schemaType, { + ...options, + account: options?.account ?? account, + chainId: options?.chainId ?? chainId + }); + }, [ + address, + tokenId, + schemaType, + connection, + chainId, + account + ]); +} /***/ }), -/***/ 17989: +/***/ 92223: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "EW": () => (/* binding */ PLUGIN_NAME), -/* harmony export */ "PP": () => (/* binding */ PLUGIN_DESCRIPTION), -/* harmony export */ "Uu": () => (/* binding */ PLUGIN_ID), -/* harmony export */ "g$": () => (/* binding */ RSS3_DEFAULT_IMAGE) +/* harmony export */ "N": () => (/* binding */ useNonFungibleTokenBalance) /* harmony export */ }); -/* harmony import */ var _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(79936); -/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(55678); +/* harmony import */ var react_use_lib_useAsyncRetry__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(57170); +/* harmony import */ var _useWeb3Connection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(53837); -const PLUGIN_ID = _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__/* .PluginId.RSS3 */ .je.RSS3; -const PLUGIN_DESCRIPTION = 'Derived from the best out of RSS, RSS3 is an open protocol designed for all our cyber existence in the era of Web 3.0.'; -const PLUGIN_NAME = 'RSS3'; -/* cspell:disable-next-line */ const RSS3_DEFAULT_IMAGE = (0,_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .resolveIPFSLink */ .r5)('QmVFq9qimnudPcs6QkQv8ZVEsvwD3aqETHWtS5yXgdbYY5'); +function useNonFungibleTokenBalance(pluginID, address, options) { + const connection = (0,_useWeb3Connection__WEBPACK_IMPORTED_MODULE_0__/* .useWeb3Connection */ .T)(pluginID, options); + return (0,react_use_lib_useAsyncRetry__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)(async ()=>{ + if (!address || !connection) return '0'; + return connection.getNonFungibleTokenBalance(address); + }, [ + address, + connection + ]); +} /***/ }), -/***/ 43128: +/***/ 45023: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; - -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - "u": () => (/* binding */ base) -}); - -;// CONCATENATED MODULE: ../plugins/Solana/src/locales/en-US.json -const en_US_namespaceObject = JSON.parse('{"button_log_in":"Log In","button_log_out":"Log Out","button_sign_up":"Sign Up","card_state_text_no_profile":"No Profile"}'); -;// CONCATENATED MODULE: ../plugins/Solana/src/locales/ja-JP.json -const ja_JP_namespaceObject = {}; -;// CONCATENATED MODULE: ../plugins/Solana/src/locales/ko-KR.json -const ko_KR_namespaceObject = {}; -;// CONCATENATED MODULE: ../plugins/Solana/src/locales/qya-AA.json -const qya_AA_namespaceObject = JSON.parse('{"button_log_in":"crwdns11879:0crwdne11879:0","button_log_out":"crwdns11881:0crwdne11881:0","button_sign_up":"crwdns11883:0crwdne11883:0","card_state_text_no_profile":"crwdns11885:0crwdne11885:0"}'); -;// CONCATENATED MODULE: ../plugins/Solana/src/locales/zh-CN.json -const zh_CN_namespaceObject = JSON.parse('{"button_log_in":"登录","button_log_out":"登出","button_sign_up":"注册","card_state_text_no_profile":"暂无个人资料"}'); -;// CONCATENATED MODULE: ../plugins/Solana/src/locales/zh-TW.json -const zh_TW_namespaceObject = {}; -;// CONCATENATED MODULE: ../plugins/Solana/src/locales/languages.ts -// This file is auto generated. DO NOT EDIT -// Run `npx gulp sync-languages` to regenerate. -// Default fallback language in a family of languages are chosen by the alphabet order -// To overwrite this, please overwrite packages/scripts/src/locale-kit-next/index.ts +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "L": () => (/* binding */ useNonFungibleTokenContract) +/* harmony export */ }); +/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(58500); +/* harmony import */ var _useWeb3Connection__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(53837); +function useNonFungibleTokenContract(pluginID, address, schemaType, options) { + const connection = (0,_useWeb3Connection__WEBPACK_IMPORTED_MODULE_0__/* .useWeb3Connection */ .T)(pluginID, options); + return (0,react_use__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)(async ()=>{ + if (!connection || !address) return; + return connection.getNonFungibleTokenContract?.(address, schemaType); + }, [ + address, + schemaType, + connection + ]); +} +/***/ }), +/***/ 96196: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -const languages = { - en: en_US_namespaceObject, - ja: ja_JP_namespaceObject, - ko: ko_KR_namespaceObject, - qy: qya_AA_namespaceObject, - 'zh-CN': zh_CN_namespaceObject, - zh: zh_TW_namespaceObject -}; -// @ts-ignore -if (false) {} +"use strict"; +/* unused harmony export useNonFungibleTokenPrice */ +/* harmony import */ var _useChainId__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(45087); +/* harmony import */ var _useWeb3Hub__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(94227); -// EXTERNAL MODULE: ../plugins/Solana/src/constants.ts -var constants = __webpack_require__(20914); -;// CONCATENATED MODULE: ../plugins/Solana/src/base.ts -const base = { - ID: constants/* PLUGIN_ID */.Uu, - icon: constants/* PLUGIN_ICON */.E0, - name: { - fallback: constants/* PLUGIN_NAME */.EW - }, - description: { - fallback: constants/* PLUGIN_DESCRIPTION */.PP - }, - publisher: { - name: { - fallback: 'Mask Network' - }, - link: 'https://mask.io/' - }, - enableRequirement: { - architecture: { - app: true, - web: true - }, - networks: { - type: 'opt-out', - networks: {} - }, - target: 'stable' - }, - i18n: languages, - declareApplicationCategories: [], - declareWeb3Networks: constants/* PLUGIN_NETWORKS */.BK, - declareWeb3Providers: constants/* PLUGIN_PROVIDERS */.aZ -}; +function useNonFungibleTokenPrice(pluginID, address, tokenId, options) { + const chainId = useChainId(pluginID, options?.chainId); + const hub = useWeb3Hub(pluginID, options); + return useAsyncRetry(async ()=>{ + if (!chainId || !address || !tokenId) return 0; + const price = await hub?.getNonFungibleTokenPrice?.(chainId, address, tokenId); + return price ?? 0; + }, [ + chainId, + address, + tokenId, + hub + ]); +} /***/ }), -/***/ 20914: +/***/ 81665: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "BK": () => (/* binding */ PLUGIN_NETWORKS), -/* harmony export */ "E0": () => (/* binding */ PLUGIN_ICON), -/* harmony export */ "EW": () => (/* binding */ PLUGIN_NAME), -/* harmony export */ "PP": () => (/* binding */ PLUGIN_DESCRIPTION), -/* harmony export */ "Uu": () => (/* binding */ PLUGIN_ID), -/* harmony export */ "aZ": () => (/* binding */ PLUGIN_PROVIDERS), -/* harmony export */ "pU": () => (/* binding */ ENDPOINT_KEY), -/* harmony export */ "qR": () => (/* binding */ NETWORK_ENDPOINTS), -/* harmony export */ "xP": () => (/* binding */ SOL_TLD_AUTHORITY) -/* harmony export */ }); -/* unused harmony export PLUGIN_META_KEY */ -/* harmony import */ var _masknet_web3_shared_solana__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(79958); -/* harmony import */ var _solana_web3_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(29948); +/* unused harmony export useNonFungibleTokens */ +/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(44451); +/* harmony import */ var _useWeb3Connection__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(53837); -const PLUGIN_META_KEY = 'com.mask.solana'; -const PLUGIN_ID = 'com.mask.solana'; -const PLUGIN_NAME = 'Solana Chain'; -const PLUGIN_ICON = '\u{1F305}'; -const PLUGIN_DESCRIPTION = ''; -const PLUGIN_NETWORKS = [ - { - ID: `${PLUGIN_ID}_solana`, - networkSupporterPluginID: PLUGIN_ID, - chainId: _masknet_web3_shared_solana__WEBPACK_IMPORTED_MODULE_0__/* .ChainId.Mainnet */ .a_.Mainnet, - type: _masknet_web3_shared_solana__WEBPACK_IMPORTED_MODULE_0__/* .NetworkType.Solana */ .td.Solana, - name: 'Solana', - icon: new URL(/* asset import */ __webpack_require__(96951), __webpack_require__.b), - iconColor: '#5d6fc0', - isMainnet: true - }, - { - ID: `${PLUGIN_ID}_solana_testnet`, - networkSupporterPluginID: PLUGIN_ID, - chainId: _masknet_web3_shared_solana__WEBPACK_IMPORTED_MODULE_0__/* .ChainId.Testnet */ .a_.Testnet, - type: _masknet_web3_shared_solana__WEBPACK_IMPORTED_MODULE_0__/* .NetworkType.Solana */ .td.Solana, - name: 'Solana Testnet', - icon: new URL(/* asset import */ __webpack_require__(96951), __webpack_require__.b), - iconColor: '#5d6fc0', - isMainnet: false - }, -]; -const PLUGIN_PROVIDERS = [ - { - ID: `${PLUGIN_ID}_phantom`, - providerAdaptorPluginID: PLUGIN_ID, - type: _masknet_web3_shared_solana__WEBPACK_IMPORTED_MODULE_0__/* .ProviderType.Phantom */ .lP.Phantom, - name: 'Phantom', - icon: new URL(/* asset import */ __webpack_require__(55002), __webpack_require__.b) - }, -]; -const NETWORK_ENDPOINTS = { - [_masknet_web3_shared_solana__WEBPACK_IMPORTED_MODULE_0__/* .ChainId.Mainnet */ .a_.Mainnet]: 'https://solana-api.projectserum.com', - [_masknet_web3_shared_solana__WEBPACK_IMPORTED_MODULE_0__/* .ChainId.Testnet */ .a_.Testnet]: 'https://api.testnet.solana.com', - [_masknet_web3_shared_solana__WEBPACK_IMPORTED_MODULE_0__/* .ChainId.Devnet */ .a_.Devnet]: 'https://api.devnet.solana.com' -}; -const ENDPOINT_KEY = 'mainnet-beta'; -const SOL_TLD_AUTHORITY = new _solana_web3_js__WEBPACK_IMPORTED_MODULE_1__.PublicKey('58PwtjSDuFHuUkYjH9BYnnQKHfwo9reZhC2zMJv9JPkx'); + +function useNonFungibleTokens(pluginID, // pair: [address, tokenId] +listOfPairs, options) { + const connection = useWeb3Connection(pluginID, options); + return useAsyncRetry(async ()=>{ + if (!connection) return EMPTY_LIST; + return Promise.all(listOfPairs?.map((x)=>connection.getNonFungibleToken(x[0], x[1], undefined, options) + ) ?? []); + }, [ + connection, + listOfPairs?.join() + ]); +} /***/ }), -/***/ 50361: +/***/ 23225: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "EW": () => (/* binding */ PLUGIN_NAME), -/* harmony export */ "IX": () => (/* binding */ MAX_DERIVE_COUNT), -/* harmony export */ "PP": () => (/* binding */ PLUGIN_DESCRIPTION), -/* harmony export */ "UB": () => (/* binding */ HD_PATH_WITHOUT_INDEX_ETHEREUM), -/* harmony export */ "Uu": () => (/* binding */ PLUGIN_ID), -/* harmony export */ "js": () => (/* binding */ UPDATE_CHAIN_STATE_DELAY), -/* harmony export */ "xv": () => (/* binding */ JSON_RPC_ERROR_CODE) -/* harmony export */ }); -/* harmony import */ var _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(79936); +/* unused harmony export useNonFungibleTokensBalance */ +/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(44451); +/* harmony import */ var _useWeb3Connection__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(53837); -// #region plugin definitions -const PLUGIN_ID = _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__/* .PluginId.Wallet */ .je.Wallet; -const PLUGIN_NAME = 'Wallet'; -const PLUGIN_DESCRIPTION = 'Mask Wallet'; -// #endregion -// Private key at m/purpose'/coin_type'/account'/change -const HD_PATH_WITHOUT_INDEX_ETHEREUM = "m/44'/60'/0'/0"; -const MAX_DERIVE_COUNT = 99; -var JSON_RPC_ERROR_CODE; -(function(JSON_RPC_ERROR_CODE) { - JSON_RPC_ERROR_CODE[JSON_RPC_ERROR_CODE["INVALID_REQUEST"] = -32600] = "INVALID_REQUEST"; - JSON_RPC_ERROR_CODE[JSON_RPC_ERROR_CODE["METHOD_NOT_FOUND"] = 32601] = "METHOD_NOT_FOUND"; - JSON_RPC_ERROR_CODE[JSON_RPC_ERROR_CODE["INVALID_PARAMS"] = -32602] = "INVALID_PARAMS"; - JSON_RPC_ERROR_CODE[JSON_RPC_ERROR_CODE["INTERNAL_ERROR"] = -32603] = "INTERNAL_ERROR"; - JSON_RPC_ERROR_CODE[JSON_RPC_ERROR_CODE["SERVER_ERROR_RANGE_START"] = -32000] = "SERVER_ERROR_RANGE_START"; - JSON_RPC_ERROR_CODE[JSON_RPC_ERROR_CODE["SERVER_ERROR_RANGE_END"] = -32099] = "SERVER_ERROR_RANGE_END"; -})(JSON_RPC_ERROR_CODE || (JSON_RPC_ERROR_CODE = {})); -const UPDATE_CHAIN_STATE_DELAY = 30 /* seconds */ * 1000 /* milliseconds */ ; + + +function useNonFungibleTokensBalance(pluginID, listOfAddress, options) { + const connection = useWeb3Connection(pluginID, options); + return useAsyncRetry(async ()=>{ + if (!connection) return EMPTY_OBJECT; + return connection.getNonFungibleTokensBalance(listOfAddress ?? []); + }, [ + listOfAddress?.join(), + connection + ]); +} /***/ }), -/***/ 19841: +/***/ 13776: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; +/* unused harmony export useNonFungibleTokensFromTokenList */ +/* harmony import */ var _useWeb3Hub__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(94227); +/* harmony import */ var _useChainId__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(45087); -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - "UB": () => (/* reexport */ constants/* HD_PATH_WITHOUT_INDEX_ETHEREUM */.UB), - "xv": () => (/* reexport */ constants/* JSON_RPC_ERROR_CODE */.xv), - "IX": () => (/* reexport */ constants/* MAX_DERIVE_COUNT */.IX), - "Uu": () => (/* reexport */ constants/* PLUGIN_ID */.Uu), - "js": () => (/* reexport */ constants/* UPDATE_CHAIN_STATE_DELAY */.js), - "R$": () => (/* reexport */ WalletMessages), - "ue": () => (/* reexport */ base/* base */.u) -}); -// UNUSED EXPORTS: PLUGIN_DESCRIPTION, PLUGIN_NAME -// EXTERNAL MODULE: ../plugins/Wallet/src/base.ts -var base = __webpack_require__(14157); -// EXTERNAL MODULE: ../plugin-infra/src/entry.ts -var entry = __webpack_require__(79936); -// EXTERNAL MODULE: ../plugins/Wallet/src/constants.ts -var constants = __webpack_require__(50361); -;// CONCATENATED MODULE: ../plugins/Wallet/src/messages.ts +function useNonFungibleTokensFromTokenList(pluginID, options) { + const chainId = useChainId(pluginID, options?.chainId); + const hub = useWeb3Hub(pluginID, options); + return useAsyncRetry(async ()=>{ + return hub?.getNonFungibleTokensFromTokenList?.(chainId); + }, [ + chainId, + hub + ]); +} -if (false) {} -const WalletMessages = { - events: (0,entry/* createPluginMessage */.I4)(constants/* PLUGIN_ID */.Uu) -}; +/***/ }), -;// CONCATENATED MODULE: ../plugins/Wallet/src/index.ts -// Do not export JSX from this file. It might break some runtime that does not have DOM. +/***/ 11200: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { +"use strict"; +/* unused harmony export useProviderDescriptors */ +/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(44451); +/* harmony import */ var _manager_store__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(93996); +/* harmony import */ var _Context__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(46390); +function useProviderDescriptors(expectedPluginID) { + const pluginID = useCurrentWeb3NetworkPluginID(expectedPluginID); + return getPluginDefine(pluginID)?.declareWeb3Providers ?? EMPTY_LIST; +} + /***/ }), -/***/ 52928: +/***/ 60209: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; +/* unused harmony export useProviderReady */ +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(58757); +/* harmony import */ var _useWeb3State__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12368); -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - "M": () => (/* binding */ languages) -}); -;// CONCATENATED MODULE: ../plugins/Wallet/src/locales/en-US.json -const en_US_namespaceObject = {}; -;// CONCATENATED MODULE: ../plugins/Wallet/src/locales/ja-JP.json -const ja_JP_namespaceObject = {}; -;// CONCATENATED MODULE: ../plugins/Wallet/src/locales/ko-KR.json -const ko_KR_namespaceObject = {}; -;// CONCATENATED MODULE: ../plugins/Wallet/src/locales/qya-AA.json -const qya_AA_namespaceObject = {}; -;// CONCATENATED MODULE: ../plugins/Wallet/src/locales/zh-CN.json -const zh_CN_namespaceObject = {}; -;// CONCATENATED MODULE: ../plugins/Wallet/src/locales/zh-TW.json -const zh_TW_namespaceObject = {}; -;// CONCATENATED MODULE: ../plugins/Wallet/src/locales/languages.ts -// This file is auto generated. DO NOT EDIT -// Run `npx gulp sync-languages` to regenerate. -// Default fallback language in a family of languages are chosen by the alphabet order -// To overwrite this, please overwrite packages/scripts/src/locale-kit-next/index.ts +function useProviderReady(pluginID, providerType) { + const { Provider } = useWeb3State(pluginID); + return useMemo(async ()=>{ + if (!providerType || !Provider) return false; + return Provider.isReady?.(providerType) ?? false; + }, [ + providerType, + Provider + ]); +} + + +/***/ }), +/***/ 52892: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "_": () => (/* binding */ useProviderType) +/* harmony export */ }); +/* harmony import */ var use_subscription__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(14257); +/* harmony import */ var _useWeb3State__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12368); +/* harmony import */ var _utils_subscription__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(55437); +/* harmony import */ var _Context__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(46390); -const languages = { - en: en_US_namespaceObject, - ja: ja_JP_namespaceObject, - ko: ko_KR_namespaceObject, - qy: qya_AA_namespaceObject, - 'zh-CN': zh_CN_namespaceObject, - zh: zh_TW_namespaceObject -}; -// @ts-ignore -if (false) {} +function useProviderType(pluginID) { + const { Provider } = (0,_useWeb3State__WEBPACK_IMPORTED_MODULE_1__/* .useWeb3State */ .d)(pluginID); + const currentProviderType = (0,_Context__WEBPACK_IMPORTED_MODULE_3__/* .useCurrentWeb3NetworkProviderType */ .aw)(pluginID); + const providerType = (0,use_subscription__WEBPACK_IMPORTED_MODULE_0__.useSubscription)(Provider?.providerType ?? _utils_subscription__WEBPACK_IMPORTED_MODULE_2__/* .UNDEFINED */ .i_); + return currentProviderType ?? providerType; +} /***/ }), -/***/ 20139: +/***/ 89286: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "k": () => (/* binding */ useRemoveTransactionCallback) +/* harmony export */ }); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(58757); +/* harmony import */ var _useAccount__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(72128); +/* harmony import */ var _useChainId__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(45087); +/* harmony import */ var _useWeb3State__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(12368); -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - "u": () => (/* binding */ base) -}); - -// EXTERNAL MODULE: ../plugins/example/src/constants.ts -var constants = __webpack_require__(35569); -;// CONCATENATED MODULE: ../plugins/example/src/locales/en-US.json -const en_US_namespaceObject = JSON.parse('{"name":"Example Plugin","__entry__":"🤔 Example"}'); -;// CONCATENATED MODULE: ../plugins/example/src/locales/languages.ts -// This file is auto generated. DO NOT EDIT -// Run `npx gulp sync-languages` to regenerate. -// Default fallback language in a family of languages are chosen by the alphabet order -// To overwrite this, please overwrite packages/scripts/src/locale-kit-next/index.ts - -const languages = { - en: en_US_namespaceObject -}; -// @ts-ignore -if (false) {} -;// CONCATENATED MODULE: ../plugins/example/src/base.ts -const base = { - ID: constants/* PLUGIN_ID */.Uu, - name: { - fallback: constants/* PLUGIN_NAME */.EW - }, - description: { - fallback: constants/* PLUGIN_DESCRIPTION */.PP - }, - publisher: { - name: { - fallback: 'Mask Network' - }, - link: 'https://mask.io/' - }, - enableRequirement: { - architecture: { - app: false, - web: true - }, - networks: { - type: 'opt-out', - networks: {} - }, - target: 'insider' - }, - experimentalMark: true, - i18n: languages -}; +function useRemoveTransactionCallback(pluginID) { + const account = (0,_useAccount__WEBPACK_IMPORTED_MODULE_1__/* .useAccount */ .m)(pluginID); + const chainId = (0,_useChainId__WEBPACK_IMPORTED_MODULE_2__/* .useChainId */ .x)(pluginID); + const { Transaction , TransactionWatcher } = (0,_useWeb3State__WEBPACK_IMPORTED_MODULE_3__/* .useWeb3State */ .d)(pluginID); + return (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)(async (id)=>{ + if (!account) return; + await TransactionWatcher?.unwatchTransaction(chainId, id); + await Transaction?.removeTransaction?.(chainId, account, id); + }, [ + chainId, + account, + Transaction + ]); +} /***/ }), -/***/ 35569: +/***/ 69753: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "EW": () => (/* binding */ PLUGIN_NAME), -/* harmony export */ "PP": () => (/* binding */ PLUGIN_DESCRIPTION), -/* harmony export */ "Uu": () => (/* binding */ PLUGIN_ID) +/* harmony export */ "_": () => (/* binding */ useRiskWarningApproved) /* harmony export */ }); -/* harmony import */ var _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(79936); +/* harmony import */ var use_subscription__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(14257); +/* harmony import */ var _utils_subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(55437); +/* harmony import */ var _useWeb3State__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(12368); -const PLUGIN_ID = _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__/* .PluginId.Example */ .je.Example; -const PLUGIN_DESCRIPTION = 'An example plugin of Mask Network.'; -const PLUGIN_NAME = 'Example'; -/***/ }), - -/***/ 12170: -/***/ ((__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) => { - -"use strict"; -/* harmony import */ var _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(79936); -/* harmony import */ var _base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20139); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(35569); - - - -(0,_masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__/* .registerPlugin */ .fo)({ - ..._base__WEBPACK_IMPORTED_MODULE_1__/* .base */ .u, - SNSAdaptor: { - load: ()=>__webpack_require__.e(/* import() */ 1915).then(__webpack_require__.bind(__webpack_require__, 11915)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 - }, - Dashboard: { - load: ()=>__webpack_require__.e(/* import() */ 6097).then(__webpack_require__.bind(__webpack_require__, 86097)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 - }, - Worker: { - load: ()=>__webpack_require__.e(/* import() */ 554).then(__webpack_require__.bind(__webpack_require__, 10554)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 - } -}); +function useRiskWarningApproved(pluginID) { + const { RiskWarning } = (0,_useWeb3State__WEBPACK_IMPORTED_MODULE_2__/* .useWeb3State */ .d)(pluginID); + return (0,use_subscription__WEBPACK_IMPORTED_MODULE_0__.useSubscription)(RiskWarning?.approved ?? _utils_subscription__WEBPACK_IMPORTED_MODULE_1__/* .FALSE */ .Dv); +} /***/ }), -/***/ 38047: +/***/ 47807: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -/* unused harmony export RelationFavor */ -var RelationFavor; -(function(RelationFavor) { - RelationFavor[RelationFavor["COLLECTED"] = -1] = "COLLECTED"; - RelationFavor[RelationFavor["UNCOLLECTED"] = 1] = "UNCOLLECTED"; - RelationFavor[RelationFavor["DEPRECATED"] = 0] = "DEPRECATED"; -})(RelationFavor || (RelationFavor = {})); - - -/***/ }), +/* unused harmony export useSocialAddressList */ +/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(44451); +/* harmony import */ var _useWeb3State__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12368); -/***/ 66802: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - "x": () => (/* reexport */ openWindow) -}); -;// CONCATENATED MODULE: ../shared-base-ui/src/bom/open-window.ts -function openWindow(url, target = '_blank', features = {}) { - if (!url) return null; - const flags = []; - for (const [name, value] of Object.entries(features.behaviors ?? {})){ - if (value) flags.push(`${name}=1`); - } - if (!features.opener) flags.push('noopener'); - if (!features.referrer) flags.push('noreferrer'); - if (Number.isFinite(features.width)) flags.push(`width=${features.width}`); - if (Number.isFinite(features.height)) flags.push(`height=${features.height}`); - if (Number.isFinite(features.screenX)) flags.push(`screenX=${features.screenX}`); - if (Number.isFinite(features.screenY)) flags.push(`screenY=${features.screenY}`); - return window.open(url, target, flags.join(' ')); +/** + * Get all social addresses under a specific network. + */ function useSocialAddressList(pluginID, identity, sorter) { + const { IdentityService } = useWeb3State(pluginID); + return useAsyncRetry(async ()=>{ + if (!identity?.identifier?.userId || !IdentityService?.lookup) return EMPTY_LIST; + const listOfAddress = await IdentityService.lookup(identity) ?? EMPTY_LIST; + return sorter && listOfAddress.length ? listOfAddress.sort(sorter) : listOfAddress; + }, [ + identity?.identifier?.userId, + sorter, + IdentityService?.lookup + ]); } -;// CONCATENATED MODULE: ../shared-base-ui/src/bom/index.ts - - /***/ }), -/***/ 84432: +/***/ 71506: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "Y": () => (/* binding */ useTrustedFungibleTokens) +/* harmony export */ }); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(58757); +/* harmony import */ var use_subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(14257); +/* harmony import */ var _utils_subscription__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(55437); +/* harmony import */ var _useWeb3State__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(12368); -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - "O": () => (/* binding */ CrashUI) -}); - -// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.0.0/node_modules/react/jsx-runtime.js -var jsx_runtime = __webpack_require__(71999); -// EXTERNAL MODULE: ../../node_modules/.pnpm/react-use@17.3.2_react-dom@18.0.0+react@18.0.0/node_modules/react-use/esm/useTimeoutFn.js -var useTimeoutFn = __webpack_require__(5710); -// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.0.0/node_modules/react/index.js -var react = __webpack_require__(86248); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.6.1_1376d0c029fe63cac75d7e36fe4212f4/node_modules/@mui/material/Alert/Alert.js + 4 modules -var Alert = __webpack_require__(80579); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.6.1_1376d0c029fe63cac75d7e36fe4212f4/node_modules/@mui/material/AlertTitle/AlertTitle.js + 1 modules -var AlertTitle = __webpack_require__(12536); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.6.1_1376d0c029fe63cac75d7e36fe4212f4/node_modules/@mui/material/Button/Button.js -var Button = __webpack_require__(37731); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.6.1_1376d0c029fe63cac75d7e36fe4212f4/node_modules/@mui/material/Box/Box.js -var Box = __webpack_require__(85139); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.6.1_1376d0c029fe63cac75d7e36fe4212f4/node_modules/@mui/material/IconButton/IconButton.js + 1 modules -var IconButton = __webpack_require__(589); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.6.1_1376d0c029fe63cac75d7e36fe4212f4/node_modules/@mui/material/Typography/Typography.js + 1 modules -var Typography = __webpack_require__(37253); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.6.1_1376d0c029fe63cac75d7e36fe4212f4/node_modules/@mui/material/styles/styled.js -var styled = __webpack_require__(32831); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+icons-material@5.6.1_15f9e73798f83ff073fea11061a4a4f7/node_modules/@mui/icons-material/ExpandLess.js -var ExpandLess = __webpack_require__(10028); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+icons-material@5.6.1_15f9e73798f83ff073fea11061a4a4f7/node_modules/@mui/icons-material/ExpandMore.js -var ExpandMore = __webpack_require__(29579); -// EXTERNAL MODULE: ../shared-base-ui/src/components/ErrorBoundary/context.ts -var ErrorBoundary_context = __webpack_require__(74189); -// EXTERNAL MODULE: ../../node_modules/.pnpm/react-i18next@11.16.5_react-dom@18.0.0+react@18.0.0/node_modules/react-i18next/dist/es/Trans.js -var Trans = __webpack_require__(31008); -// EXTERNAL MODULE: ../../node_modules/.pnpm/react-i18next@11.16.5_react-dom@18.0.0+react@18.0.0/node_modules/react-i18next/dist/es/useTranslation.js -var useTranslation = __webpack_require__(43966); -;// CONCATENATED MODULE: ../shared-base-ui/src/locales/i18n_generated.js -/* eslint-disable */ - - -const bind = (i18nKey) => (props) => (0,react.createElement)(Trans/* Trans */.c, { i18nKey, ns: "shareBase", ...props }) -function useSharedBaseI18N() { - const { t } = (0,useTranslation/* useTranslation */.$)("shareBase") - return (0,react.useMemo)( - function proxyBasedHooks() { - return new Proxy({ __proto__: null }, { - get(target, key) { - if (target[key]) - return target[key]; - return (target[key] = t.bind(null, key)); - }, - }); -}, - [t], - ) -} -const SharedBaseTrans = function proxyBasedTrans() { - return new Proxy({ __proto__: null }, { - get(target, key) { - if (target[key]) - return target[key]; - return (target[key] = bind(key)); - }, - }); -}() -;// CONCATENATED MODULE: ../shared-base-ui/src/locales/index.ts -// This file is auto generated. DO NOT EDIT -// Run `npx gulp sync-languages` to regenerate. -// Default fallback language in a family of languages are chosen by the alphabet order -// To overwrite this, please overwrite packages/scripts/src/locale-kit-next/index.ts - - -;// CONCATENATED MODULE: ../shared-base-ui/src/components/ErrorBoundary/CrashUI.tsx - - - - - - - - -function CrashUI({ onRetry , subject , ...error }) { - const context = (0,react.useContext)(ErrorBoundary_context/* ErrorBoundaryBuildInfoContext */.N); - const t = useSharedBaseI18N(); - const [showStack, setShowStack] = (0,react.useState)(false); - // This is a rarely reported crash. It is likely a race condition. - // https://github.com/DimensionDev/Maskbook/issues?q=Failed+to+execute+%27insertBefore%27+on+%27Node%27+ - // It seems like DOM mutation from out of our application might conflict with React reconciliation. - // As a temporary fix, try to recover this React tree after 200ms. - (0,useTimeoutFn/* default */.Z)(()=>{ - if (error.message.includes("Failed to execute 'insertBefore' on 'Node'")) { - onRetry(); - } - }, 200); - // crash report, will send to GitHub - const reportTitle = `[Crash] ${error.type}: ${error.message}`; - const reportBody = ` - -I was *doing something...*, then Mask reports an error. -> ${error.message} -Error stack: -
${error.stack}
\n\n${context || ''}`; - const githubLink = (0,react.useMemo)(()=>{ - const url = new URLSearchParams(); - url.set('title', reportTitle); - url.set('body', reportBody); - return 'https://github.com/DimensionDev/Maskbook/issues/new?' + url.toString(); +function useTrustedFungibleTokens(pluginID, schemaType, chainId) { + const { Token } = (0,_useWeb3State__WEBPACK_IMPORTED_MODULE_3__/* .useWeb3State */ .d)(pluginID); + const fungibleTokens = (0,use_subscription__WEBPACK_IMPORTED_MODULE_1__.useSubscription)(Token?.trustedFungibleTokens ?? _utils_subscription__WEBPACK_IMPORTED_MODULE_2__/* .EMPTY_ARRAY */ .LZ); + return (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(()=>{ + return fungibleTokens.filter((x)=>schemaType ? x.schema === schemaType : true + ).filter((x)=>chainId ? x.chainId === chainId : true + ); }, [ - reportBody, - reportTitle + schemaType, + fungibleTokens, + chainId ]); - return /*#__PURE__*/ (0,jsx_runtime.jsx)(Root, { - children: /*#__PURE__*/ (0,jsx_runtime.jsxs)(Alert/* default */.Z, { - severity: "error", - variant: "outlined", - children: [ - /*#__PURE__*/ (0,jsx_runtime.jsx)(AlertTitle/* default */.Z, { - children: t.error_boundary_crash_title({ - subject - }) - }), - /*#__PURE__*/ (0,jsx_runtime.jsxs)(ErrorTitle, { - children: [ - error.type, - ": ", - error.message - ] - }), - /*#__PURE__*/ (0,jsx_runtime.jsxs)(ActionArea, { - children: [ - /*#__PURE__*/ (0,jsx_runtime.jsx)(Button/* default */.Z, { - variant: "contained", - color: "primary", - onClick: onRetry, - children: t.error_boundary_try_to_recover() - }), - /*#__PURE__*/ (0,jsx_runtime.jsx)(Button/* default */.Z, { - href: githubLink, - color: "primary", - target: "_blank", - children: t.error_boundary_report_github() - }), - /*#__PURE__*/ (0,jsx_runtime.jsx)(Box/* default */.Z, { - sx: { - flex: 1 - } - }), - /*#__PURE__*/ (0,jsx_runtime.jsx)(IconButton/* default */.Z, { - color: "inherit", - size: "small", - onClick: ()=>setShowStack((x)=>!x - ) - , - children: showStack ? /*#__PURE__*/ (0,jsx_runtime.jsx)(ExpandMore/* default */.Z, {}) : /*#__PURE__*/ (0,jsx_runtime.jsx)(ExpandLess/* default */.Z, {}) - }) - ] - }), - showStack ? /*#__PURE__*/ (0,jsx_runtime.jsx)(ErrorStack, { - children: /*#__PURE__*/ (0,jsx_runtime.jsx)(Typography/* default */.Z, { - component: "pre", - children: /*#__PURE__*/ (0,jsx_runtime.jsx)("code", { - children: error.stack - }) - }) - }) : null - ] - }) - }); } -const Root = (0,styled/* default */.ZP)('div')` - overflow-x: auto; - flex: 1; - width: 100%; - contain: paint; - margin-top: 16px; -`; -const ErrorTitle = (0,styled/* default */.ZP)('div')` - user-select: text; - margin-bottom: 8px; -`; -const ErrorStack = (0,styled/* default */.ZP)('div')` - user-select: text; - overflow-x: auto; - contain: strict; - height: 300px; -`; -const ActionArea = (0,styled/* default */.ZP)('div')` - display: flex; - gap: 8px; -`; /***/ }), -/***/ 74189: +/***/ 32414: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "N": () => (/* binding */ ErrorBoundaryBuildInfoContext) +/* harmony export */ "K": () => (/* binding */ useTrustedNonFungibleTokens) /* harmony export */ }); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(86248); - -/** - * Please provide the build info text - */ const ErrorBoundaryBuildInfoContext = (0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)(''); - +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(58757); +/* harmony import */ var use_subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(14257); +/* harmony import */ var _useWeb3State__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(12368); +/* harmony import */ var _utils_subscription__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(55437); -/***/ }), - -/***/ 20955: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -"use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "S": () => (/* binding */ useScrollBottomEvent) -/* harmony export */ }); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(86248); -/* harmony import */ var lodash_unified__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(82617); -function useScrollBottomEvent(ref, cb) { - const onScroll = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((0,lodash_unified__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)(function(_ev) { - // ev.currentTarget is always null when applies debounce(). - const ev = _ev; - const element = ev.path[0]; - // On some device, there's a slight deviation between `scrollHeight` and `offsetHeight + scrollTop` - const isBottomArrived = Math.abs(element.scrollHeight - element.offsetHeight - element.scrollTop) < 5; - if (isBottomArrived) cb(); - }, 300), [ - cb - ]); - (0,react__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect)(()=>{ - if (!ref.current) return; - ref.current.addEventListener('scroll', onScroll); - // useLayoutEffect() to remove the listener before changes painted on screen. - return ()=>{ - if (!ref.current) return; - ref.current.removeEventListener('scroll', onScroll); - }; +function useTrustedNonFungibleTokens(pluginID, schemaType, chainId) { + const { Token } = (0,_useWeb3State__WEBPACK_IMPORTED_MODULE_2__/* .useWeb3State */ .d)(pluginID); + const nonFungibleTokens = (0,use_subscription__WEBPACK_IMPORTED_MODULE_1__.useSubscription)(Token?.trustedNonFungibleTokens ?? _utils_subscription__WEBPACK_IMPORTED_MODULE_3__/* .EMPTY_ARRAY */ .LZ); + return (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(()=>{ + return nonFungibleTokens.filter((x)=>schemaType ? x.schema === schemaType : true + ).filter((x)=>chainId ? x.chainId === chainId : true + ); }, [ - onScroll, - ref.current + schemaType, + nonFungibleTokens, + chainId ]); } /***/ }), -/***/ 57589: +/***/ 70278: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "WO": () => (/* binding */ ProfileIdentifier), -/* harmony export */ "_P": () => (/* binding */ PostIdentifier), -/* harmony export */ "bb": () => (/* binding */ PostIVIdentifier), -/* harmony export */ "ob": () => (/* binding */ ECKeyIdentifier), -/* harmony export */ "xI": () => (/* binding */ GroupIdentifier), -/* harmony export */ "xb": () => (/* binding */ Identifier) +/* harmony export */ "r": () => (/* binding */ useWallets) /* harmony export */ }); -/* unused harmony export PersonaIdentifier */ -/* harmony import */ var _dimensiondev_kit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(28807); -/* harmony import */ var ts_results__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(48160); -/* harmony import */ var _Site_type__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(77907); +/* harmony import */ var use_subscription__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(14257); +/* harmony import */ var _useWeb3State__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12368); +/* harmony import */ var _utils_subscription__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(55437); -/** - * @internal symbol that used to construct this type from the Identifier - */ const $fromString = Symbol(); -const fromStringCache = new Map(); -const fromString = (id, constructor)=>{ - let result = null; - // the third overload - if (id instanceof Identifier) result = id; - else { - const [type, ...rest] = id.split(':'); - // the second overload - if (fromStringCache.has(id)) result = fromStringCache.get(id); - else if (type === 'person') result = ProfileIdentifier[$fromString](rest.join(':')); - else if (type === 'group') result = GroupIdentifier[$fromString](rest.join(':')); - else if (type === 'post') result = PostIdentifier[$fromString](rest.join(':')); - else if (type === 'post_iv') result = PostIVIdentifier[$fromString](rest.join(':')); - else if (type === 'ec_key') result = ECKeyIdentifier[$fromString](rest.join(':')); - else return (0,ts_results__WEBPACK_IMPORTED_MODULE_1__/* .Err */ .UG)(new TypeError('Unreachable case:' + type)); - fromStringCache.set(id, result); - } - const err = (0,ts_results__WEBPACK_IMPORTED_MODULE_1__/* .Err */ .UG)(new TypeError(`Can't cast to Identifier. Expected: ${constructor?.name || 'Any Identifier'}, Try to convert from string: ${id}`)); - if (!constructor) return result ? (0,ts_results__WEBPACK_IMPORTED_MODULE_1__.Ok)(result) : err; - else if (result instanceof constructor) return (0,ts_results__WEBPACK_IMPORTED_MODULE_1__.Ok)(result); - else return err; -}; -class Identifier { - static equals(a, b) { - return !!a?.equals(b); - } - equals(other) { - if (!other) return false; - return this === other || this.toText() === other.toText(); - } - static IdentifiersToString(a, isOrderImportant = false) { - const ax = a.map((x)=>x.toText() - ); - if (!isOrderImportant) { - ax.sort(); - } - return ax.join(','); - } -} -Identifier.fromString = fromString; -let _$fromString = $fromString; -class ProfileIdentifier extends Identifier { - static getUserName(x) { - if (typeof x === 'string') { - if ([ - '', - '$unknown' - ].includes(x)) return null; - return x; - } else { - if (x.isUnknown) return null; - return x.userId; - } - } - get isUnknown() { - return this.equals(ProfileIdentifier.unknown); - } - toText() { - return `person:${this.network}/${this.userId}`; - } - friendlyToText() { - return `${this.userId}@${this.network}`; - } - static [_$fromString](str) { - const [network, userId] = str.split('/'); - if (!network || !userId) return null; - return new ProfileIdentifier(network, userId); - } - /** - * @param network - Network belongs to - * @param userId - User ID - */ constructor(network, userId){ - super(); - this.network = network; - this.userId = userId; - noSlash(network); - noSlash(userId); - } -} -ProfileIdentifier.unknown = new ProfileIdentifier(_Site_type__WEBPACK_IMPORTED_MODULE_2__/* .EnhanceableSite.Localhost */ .J.Localhost, '$unknown'); -let _$fromString1 = $fromString; -class GroupIdentifier extends Identifier { - static getFriendsGroupIdentifier(who, groupId) { - return new GroupIdentifier(who.network, who.userId, groupId); - } - get ownerIdentifier() { - if (this.virtualGroupOwner === null) return null; - return new ProfileIdentifier(this.network, this.virtualGroupOwner); - } - toText() { - return 'group:' + [ - this.network, - this.virtualGroupOwner, - this.groupID - ].join('/'); - } - get isReal() { - return !this.virtualGroupOwner; - } - get isVirtual() { - return !!this.virtualGroupOwner; - } - static [_$fromString1](str) { - const [network, belongs, groupID] = str.split('/'); - if (!network || !groupID) return null; - return new GroupIdentifier(network, belongs, groupID); - } - constructor(network, virtualGroupOwner, groupID){ - super(); - this.network = network; - this.virtualGroupOwner = virtualGroupOwner; - this.groupID = groupID; - noSlash(network); - noSlash(groupID); - if (virtualGroupOwner === '') this.virtualGroupOwner = null; - } -} -let _$fromString2 = $fromString; -class PostIdentifier extends Identifier { - get isUnknown() { - return this.equals(PostIdentifier.unknown); - } - toText() { - return `post:${this.postId}/${this.identifier.toText()}`; - } - static [_$fromString2](str) { - const [postId, ...identifier] = str.split('/'); - const id = Identifier.fromString(identifier.join('/')); - if (id.err || !postId) return null; - return new PostIdentifier(id.val, postId); - } - /** - * If identifier is a PostIdentifier, that means this post is bound with other post in some kind - * e.g. a comment. - */ constructor(identifier, postId){ - super(); - this.identifier = identifier; - this.postId = postId; - noSlash(postId); - } -} -PostIdentifier.unknown = new PostIdentifier(ProfileIdentifier.unknown, '$unknown'); -let _$fromString3 = $fromString; -class PostIVIdentifier extends Identifier { - toText() { - return `post_iv:${this.network}/${this.postIV.replace(/\//g, '|')}`; - } - toIV() { - const x = this.postIV.replace(/\|/g, '/'); - return new Uint8Array((0,_dimensiondev_kit__WEBPACK_IMPORTED_MODULE_0__/* .decodeArrayBuffer */ .xe)(x)); - } - static [_$fromString3](str) { - const [network, iv] = str.split('/'); - if (!network || !iv) return null; - return new PostIVIdentifier(network, iv); - } - constructor(network, postIV){ - super(); - this.network = network; - this.postIV = postIV; - } -} -let _$fromString4 = $fromString; -/** - * This class identify the point on an EC curve. - * ec_key:secp256k1/CompressedPoint - */ class ECKeyIdentifier extends Identifier { - toText() { - const normalized = this.encodedCompressedKey ?? this.compressedPoint.replace(/\//g, '|'); - return `ec_key:${this.curve}/${normalized}`; - } - static [_$fromString4](str) { - const [curve, point] = str.split('/'); - if (curve !== 'secp256k1') return null; - return new ECKeyIdentifier(curve, point); - } - constructor(curve, compressedPoint){ - super(); - this.curve = curve; - this.compressedPoint = compressedPoint; - this.type = 'ec_key'; - } -} -// eslint-disable-next-line no-redeclare -const PersonaIdentifier = [ - ECKeyIdentifier -]; -/** - * Because "/" is used to split parts in identifier - * we should reject the "/" - * - * If you want to use it, you must first convert to something other - */ function noSlash(str) { - if (!str) return; - if (str.includes('/')) throw new TypeError('Cannot contain / in a part of identifier'); +function useWallets(pluginID) { + const { Wallet } = (0,_useWeb3State__WEBPACK_IMPORTED_MODULE_1__/* .useWeb3State */ .d)(pluginID); + return (0,use_subscription__WEBPACK_IMPORTED_MODULE_0__.useSubscription)(Wallet?.wallets ?? _utils_subscription__WEBPACK_IMPORTED_MODULE_2__/* .EMPTY_ARRAY */ .LZ); } /***/ }), -/***/ 43550: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -/* unused harmony export PayloadVersions */ -var PayloadVersions; -(function(PayloadVersions) { - PayloadVersions[PayloadVersions['2/4'] = -40] = '2/4'; - PayloadVersions[PayloadVersions['3/4'] = -39] = '3/4'; - PayloadVersions[PayloadVersions['4/4'] = -38] = '4/4'; -})(PayloadVersions || (PayloadVersions = {})); - - -/***/ }), - -/***/ 42703: +/***/ 32383: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "K": () => (/* binding */ RelationFavor) +/* harmony export */ "$": () => (/* binding */ useWeb3) /* harmony export */ }); -var RelationFavor; -(function(RelationFavor) { - RelationFavor[RelationFavor["COLLECTED"] = -1] = "COLLECTED"; - RelationFavor[RelationFavor["UNCOLLECTED"] = 1] = "UNCOLLECTED"; - RelationFavor[RelationFavor["DEPRECATED"] = 0] = "DEPRECATED"; -})(RelationFavor || (RelationFavor = {})); +/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(58500); +/* harmony import */ var _useAccount__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(72128); +/* harmony import */ var _useChainId__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(45087); +/* harmony import */ var _useProviderType__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(52892); +/* harmony import */ var _useWeb3State__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(12368); +/// -/***/ }), -/***/ 65789: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -"use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "p": () => (/* binding */ andThenAsync) -/* harmony export */ }); -async function andThenAsync(op, mapper) { - op = await op; - if (op.err) return op; - return mapper(op.val); + +function useWeb3(pluginID, options) { + const { Connection } = (0,_useWeb3State__WEBPACK_IMPORTED_MODULE_3__/* .useWeb3State */ .d)(pluginID); + const chainId = (0,_useChainId__WEBPACK_IMPORTED_MODULE_1__/* .useChainId */ .x)(pluginID); + const account = (0,_useAccount__WEBPACK_IMPORTED_MODULE_0__/* .useAccount */ .m)(pluginID); + const providerType = (0,_useProviderType__WEBPACK_IMPORTED_MODULE_2__/* .useProviderType */ ._)(pluginID); + const { value: web3 = null } = (0,react_use__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z)(async ()=>{ + return Connection?.getWeb3?.({ + account, + chainId, + providerType, + ...options + }); + }, [ + account, + chainId, + providerType, + JSON.stringify(options) + ]); + return web3; } /***/ }), -/***/ 57602: +/***/ 53837: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "m": () => (/* binding */ PopupRoutes) +/* harmony export */ "T": () => (/* binding */ useWeb3Connection) /* harmony export */ }); -var PopupRoutes; -(function(PopupRoutes) { - PopupRoutes["Root"] = '/'; - PopupRoutes["Wallet"] = '/wallet'; - PopupRoutes["ImportWallet"] = '/wallet/import'; - PopupRoutes["AddDeriveWallet"] = '/wallet/addDerive'; - PopupRoutes["WalletSettings"] = '/wallet/settings'; - PopupRoutes["WalletRename"] = '/wallet/rename'; - PopupRoutes["DeleteWallet"] = '/wallet/delete'; - PopupRoutes["CreateWallet"] = '/wallet/create'; - PopupRoutes["SwitchWallet"] = '/wallet/switch'; - PopupRoutes["SelectWallet"] = '/wallet/select'; - PopupRoutes["WalletRecovered"] = '/wallet/recovered'; - PopupRoutes["LegacyWalletRecovered"] = '/wallet/legacy-recovered'; - PopupRoutes["BackupWallet"] = '/wallet/backup'; - PopupRoutes["AddToken"] = '/wallet/addToken'; - PopupRoutes["WalletSignRequest"] = '/wallet/sign'; - PopupRoutes["GasSetting"] = '/wallet/gas'; - PopupRoutes["TokenDetail"] = '/wallet/tokenDetail'; - PopupRoutes["ContractInteraction"] = '/wallet/contract-interaction'; - PopupRoutes["Unlock"] = '/wallet/unlock'; - PopupRoutes["Transfer"] = '/wallet/transfer'; - PopupRoutes["SetPaymentPassword"] = '/wallet/password'; - PopupRoutes["ReplaceTransaction"] = '/wallet/replace'; - PopupRoutes["Personas"] = '/personas'; - PopupRoutes["Logout"] = '/personas/logout'; - PopupRoutes["PersonaRename"] = '/personas/rename'; - PopupRoutes["PersonaSignRequest"] = '/personas/sign-request'; - PopupRoutes["PermissionAwareRedirect"] = '/redirect'; - PopupRoutes["RequestPermission"] = '/request-permission'; - PopupRoutes["ThirdPartyRequestPermission"] = '/3rd-request-permission'; - PopupRoutes["SignRequest"] = '/sign-request'; - PopupRoutes["Swap"] = '/swap'; -})(PopupRoutes || (PopupRoutes = {})); +/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(58500); +/* harmony import */ var _useAccount__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(72128); +/* harmony import */ var _useChainId__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(45087); +/* harmony import */ var _useProviderType__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(52892); +/* harmony import */ var _useWeb3State__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(12368); -/***/ }), -/***/ 84926: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -"use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "C": () => (/* binding */ createI18NBundle) -/* harmony export */ }); -function addI18NBundle(instance, namespace, langs1) { - if (!instance.addResourceBundle) throw new TypeError('Please call instance.init() first'); - try { - if (false) {} - } catch {} - for(const lang1 in langs1){ - instance.addResourceBundle(lang1, namespace, removeEmptyString(langs1[lang1])); - } -} -function createI18NBundle(namespace, langs) { - return (instance)=>addI18NBundle(instance, namespace, langs) - ; -} -function removeEmptyString(lang) { - return Object.fromEntries(Object.entries(lang).filter((x)=>x[1].length - )); + +function useWeb3Connection(pluginID, options) { + const { Connection } = (0,_useWeb3State__WEBPACK_IMPORTED_MODULE_3__/* .useWeb3State */ .d)(pluginID); + const chainId = (0,_useChainId__WEBPACK_IMPORTED_MODULE_1__/* .useChainId */ .x)(pluginID); + const account = (0,_useAccount__WEBPACK_IMPORTED_MODULE_0__/* .useAccount */ .m)(pluginID); + const providerType = (0,_useProviderType__WEBPACK_IMPORTED_MODULE_2__/* .useProviderType */ ._)(pluginID); + const { value: connection = null } = (0,react_use__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z)(async ()=>{ + return Connection?.getConnection?.({ + account, + chainId, + providerType, + ...options + }); + }, [ + account, + chainId, + providerType, + Connection, + JSON.stringify(options) + ]); + return connection; } /***/ }), -/***/ 59573: +/***/ 94227: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "I": () => (/* binding */ createIndexedDB_KVStorageBackend) +/* harmony export */ "h": () => (/* binding */ useWeb3Hub) /* harmony export */ }); -/* harmony import */ var idb__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(28955); -/* harmony import */ var ts_results__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(48160); -// This package is used in jest. Import from the esm version will fail the test. -// eslint-disable-next-line no-restricted-imports +/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(58500); +/* harmony import */ var _entry_web3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(50719); +/* harmony import */ var _useWeb3State__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(12368); -function createIndexedDB_KVStorageBackend(dbName, onChange, beforeAutoSync = Promise.resolve()) { - let db1; - setInterval(()=>{ - if (!db1) return; - db1.close(); - db1 = undefined; - }, 1000 * 60); - async function ensureDB() { - if (!db1) db1 = await initDB(); - return db1; - } - function initDB() { - return (0,idb__WEBPACK_IMPORTED_MODULE_0__/* .openDB */ .X3)(dbName, 1, { - upgrade (db, oldVersion, newVersion, transaction) { - db.createObjectStore('store'); - } + +function useWeb3Hub(pluginID, options) { + const { Hub } = (0,_useWeb3State__WEBPACK_IMPORTED_MODULE_1__/* .useWeb3State */ .d)(pluginID); + const account = (0,_entry_web3__WEBPACK_IMPORTED_MODULE_0__/* .useAccount */ .mA)(pluginID); + const chainId = (0,_entry_web3__WEBPACK_IMPORTED_MODULE_0__/* .useChainId */ .xx)(pluginID); + const { value: hub = null } = (0,react_use__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z)(async ()=>{ + return Hub?.getHub?.({ + account, + chainId, + ...options }); - } - return { - beforeAutoSync, - async getValue (key) { - const db = await ensureDB(); - const t = db.transaction('store', 'readonly'); - if (await t.store.count(key) === 0) return ts_results__WEBPACK_IMPORTED_MODULE_1__/* .None */ .Hq; - return (0,ts_results__WEBPACK_IMPORTED_MODULE_1__/* .Some */ .bD)(await t.store.get(key)); - }, - async setValue (key, value) { - const db = await ensureDB(); - const t = db.transaction('store', 'readwrite'); - await t.store.put(value, key); - onChange(key, value); - } - }; + }, [ + account, + chainId, + Hub, + JSON.stringify(options) + ]); + return hub; } /***/ }), -/***/ 3709: +/***/ 75789: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "q": () => (/* binding */ createInMemoryKVStorageBackend) +/* harmony export */ "x": () => (/* binding */ useWeb3Provider) /* harmony export */ }); -/* harmony import */ var ts_results__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(48160); +/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(58500); +/* harmony import */ var _useAccount__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(72128); +/* harmony import */ var _useChainId__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(45087); +/* harmony import */ var _useProviderType__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(52892); +/* harmony import */ var _useWeb3State__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(12368); -function createInMemoryKVStorageBackend(onChange, beforeAutoSync = Promise.resolve()) { - const storage = new Map(); - return { - beforeAutoSync, - async getValue (key) { - if (storage.has(key)) return (0,ts_results__WEBPACK_IMPORTED_MODULE_0__/* .Some */ .bD)(storage.get(key)); - return ts_results__WEBPACK_IMPORTED_MODULE_0__/* .None */ .Hq; - }, - async setValue (key, value) { - storage.set(key, value); - onChange(key, value); - } - }; + + + + +function useWeb3Provider(pluginID, options) { + const { Connection } = (0,_useWeb3State__WEBPACK_IMPORTED_MODULE_3__/* .useWeb3State */ .d)(pluginID); + const chainId = (0,_useChainId__WEBPACK_IMPORTED_MODULE_1__/* .useChainId */ .x)(pluginID); + const account = (0,_useAccount__WEBPACK_IMPORTED_MODULE_0__/* .useAccount */ .m)(pluginID); + const providerType = (0,_useProviderType__WEBPACK_IMPORTED_MODULE_2__/* .useProviderType */ ._)(pluginID); + const { value: web3Provider = null } = (0,react_use__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z)(async ()=>{ + return Connection?.getWeb3Provider?.({ + account, + chainId, + providerType, + ...options + }); + }, [ + account, + chainId, + providerType, + Connection, + JSON.stringify(options) + ]); + return web3Provider; } /***/ }), -/***/ 75990: +/***/ 12368: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "K": () => (/* binding */ isDashboardPage), -/* harmony export */ "N": () => (/* binding */ isPopupPage) +/* harmony export */ "d": () => (/* binding */ useWeb3State) /* harmony export */ }); -function isPopupPage() { - return location.protocol.includes('extension') && location.href.includes('popups.html'); -} -function isDashboardPage() { - return location.protocol.includes('extension') && location.href.includes('dashboard.html'); +/* harmony import */ var _Context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(46390); +/* harmony import */ var _hooks_useActivatedPluginWeb3State__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(76859); + + +function useWeb3State(expectedPluginID) { + const pluginID = (0,_Context__WEBPACK_IMPORTED_MODULE_0__/* .useCurrentWeb3NetworkPluginID */ .$f)(expectedPluginID); + return (0,_hooks_useActivatedPluginWeb3State__WEBPACK_IMPORTED_MODULE_1__/* .useActivatedPluginWeb3State */ .G)(pluginID); } /***/ }), -/***/ 20449: +/***/ 14232: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "$": () => (/* binding */ getAssetAsBlobURL) +/* harmony export */ "$": () => (/* binding */ useWeb3UI) /* harmony export */ }); -const cache = new Map(); -/** - * Fetch a file and turn it into blob URL. - * This function must run in React concurrent mode. - */ function getAssetAsBlobURL(url, fetcher) { - url = url.toString(); - if (!cache.has(url)) throw toBlob(url, fetcher); - return cache.get(url); -} -async function toBlob(url, fetcher) { - const blobURL = URL.createObjectURL(await fetcher(url)); - cache.set(url, blobURL); - return blobURL; +/* harmony import */ var _Context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(46390); +/* harmony import */ var _hooks_useActivatedPluginWeb3UI__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(95219); + + +function useWeb3UI(expectedPluginID) { + const pluginID = (0,_Context__WEBPACK_IMPORTED_MODULE_0__/* .useCurrentWeb3NetworkPluginID */ .$f)(expectedPluginID); + return (0,_hooks_useActivatedPluginWeb3UI__WEBPACK_IMPORTED_MODULE_1__/* .useActivatedPluginWeb3UI */ .v)(pluginID); } /***/ }), -/***/ 16746: +/***/ 23310: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "s": () => (/* binding */ pollingTask) -/* harmony export */ }); -function pollingTask(task, { autoStart =true , delay =30 * 1000 } = {}) { - let canceled = !autoStart; - let timer; - const runTask = async ()=>{ - if (canceled) return; - let stop = false; - try { - stop = await task(); - } catch (error) { - console.error(error); - } - if (!stop) resetTask(); - }; - const resetTask = ()=>{ - canceled = false; - clearTimeout(timer); - timer = setTimeout(runTask, delay); - }; - const cancelTask = ()=>{ - canceled = true; - }; - if (!canceled) runTask(); - return { - reset: resetTask, - cancel: cancelTask - }; +/* unused harmony export useZeroAddress */ +/* harmony import */ var _useWeb3State__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(12368); + +function useZeroAddress(pluginID, options) { + const { Others } = useWeb3State(pluginID); + return Others?.getZeroAddress?.(options?.chainId) ?? ''; } /***/ }), -/***/ 16280: +/***/ 82725: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "H": () => (/* binding */ SessionStorageCache) -/* harmony export */ }); -const SessionStorageCache = { - get (scope, key) { - return sessionStorage.getItem(`${scope}:${key}`); + +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "u": () => (/* binding */ base) +}); + +// EXTERNAL MODULE: ../plugins/CrossChainBridge/src/constants.tsx + 1 modules +var constants = __webpack_require__(97933); +;// CONCATENATED MODULE: ../plugins/CrossChainBridge/src/locales/en-US.json +const en_US_namespaceObject = JSON.parse('{"__plugin_name":"Cross-chain","official":"Official","cbridge_intro":"Powered by Celer Network. Support $Mask!","rainbow_bridge_intro":"Bridge between or send within Ethereum, NEAR and Aurora! "}'); +;// CONCATENATED MODULE: ../plugins/CrossChainBridge/src/locales/ja-JP.json +const ja_JP_namespaceObject = {}; +;// CONCATENATED MODULE: ../plugins/CrossChainBridge/src/locales/ko-KR.json +const ko_KR_namespaceObject = {}; +;// CONCATENATED MODULE: ../plugins/CrossChainBridge/src/locales/qya-AA.json +const qya_AA_namespaceObject = JSON.parse('{"__plugin_name":"crwdns16288:0crwdne16288:0","official":"crwdns14998:0crwdne14998:0","cbridge_intro":"crwdns15000:0$Maskcrwdne15000:0","rainbow_bridge_intro":"crwdns15002:0crwdne15002:0"}'); +;// CONCATENATED MODULE: ../plugins/CrossChainBridge/src/locales/zh-CN.json +const zh_CN_namespaceObject = {}; +;// CONCATENATED MODULE: ../plugins/CrossChainBridge/src/locales/zh-TW.json +const zh_TW_namespaceObject = {}; +;// CONCATENATED MODULE: ../plugins/CrossChainBridge/src/locales/languages.ts +// This file is auto generated. DO NOT EDIT +// Run `npx gulp sync-languages` to regenerate. +// Default fallback language in a family of languages are chosen by the alphabet order +// To overwrite this, please overwrite packages/scripts/src/locale-kit-next/index.ts + + + + + + +const languages = { + en: en_US_namespaceObject, + ja: ja_JP_namespaceObject, + ko: ko_KR_namespaceObject, + qy: qya_AA_namespaceObject, + 'zh-CN': zh_CN_namespaceObject, + zh: zh_TW_namespaceObject +}; +// @ts-ignore +if (false) {} + +;// CONCATENATED MODULE: ../plugins/CrossChainBridge/src/base.ts + + +const base = { + ID: constants/* PLUGIN_ID */.Uu, + name: { + fallback: constants/* PLUGIN_NAME */.EW }, - set (scope, key, value) { - return sessionStorage.setItem(`${scope}:${key}`, value); + description: { + fallback: constants/* PLUGIN_DESCRIPTION */.PP }, - remove (scope, key) { - return sessionStorage.removeItem(`${scope}:${key}`); - } + publisher: { + name: { + fallback: 'Mask Network' + }, + link: 'https://mask.io/' + }, + enableRequirement: { + architecture: { + app: false, + web: true + }, + networks: { + type: 'opt-out', + networks: {} + }, + target: 'stable' + }, + i18n: languages }; /***/ }), -/***/ 6288: +/***/ 97933: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "u": () => (/* binding */ AddressViewer) -/* harmony export */ }); -/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(71999); -/* harmony import */ var _masknet_theme__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(30232); -/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(37253); -/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(85139); -/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(93775); -/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(26405); -/* harmony import */ var _mui_icons_material_InfoOutlined__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(75687); -/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(65506); -/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(55678); -/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(66394); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(2666); +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "PP": () => (/* binding */ PLUGIN_DESCRIPTION), + "Uu": () => (/* binding */ PLUGIN_ID), + "EW": () => (/* binding */ PLUGIN_NAME), + "l8": () => (/* binding */ getCrossChainBridge) +}); + +// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.1.0/node_modules/react/jsx-runtime.js +var jsx_runtime = __webpack_require__(35667); +// EXTERNAL MODULE: ../plugin-infra/src/entry.ts +var entry = __webpack_require__(70226); +;// CONCATENATED MODULE: ../plugins/CrossChainBridge/src/SNSAdaptor/MaskIcon.tsx +function ArbitrumOneBridgeIcon({ size =36 }) { + return /*#__PURE__*/ (0,jsx_runtime.jsx)("img", { + style: { + alignSelf: 'center' + }, + width: size, + height: size, + src: new URL(/* asset import */ __webpack_require__(43990), __webpack_require__.b).toString() + }); +} +function BobaBridgeIcon({ size =36 }) { + return /*#__PURE__*/ (0,jsx_runtime.jsx)("img", { + style: { + alignSelf: 'center' + }, + width: size, + height: size, + src: new URL(/* asset import */ __webpack_require__(62996), __webpack_require__.b).toString() + }); +} +function CBridgeIcon({ size =36 }) { + return /*#__PURE__*/ (0,jsx_runtime.jsx)("img", { + style: { + alignSelf: 'center' + }, + width: size, + height: size, + src: new URL(/* asset import */ __webpack_require__(61977), __webpack_require__.b).toString() + }); +} +function PolygonBridgeIcon({ size =36 }) { + return /*#__PURE__*/ (0,jsx_runtime.jsx)("img", { + style: { + alignSelf: 'center' + }, + width: size, + height: size, + src: new URL(/* asset import */ __webpack_require__(53369), __webpack_require__.b).toString() + }); +} +function RainbowBridgeIcon({ size =36 }) { + return /*#__PURE__*/ (0,jsx_runtime.jsx)("img", { + style: { + alignSelf: 'center' + }, + width: size, + height: size, + src: new URL(/* asset import */ __webpack_require__(96559), __webpack_require__.b).toString() + }); +} +;// CONCATENATED MODULE: ../plugins/CrossChainBridge/src/constants.tsx -const useStyles = (0,_masknet_theme__WEBPACK_IMPORTED_MODULE_1__/* .makeStyles */ .ZL)()((theme)=>({ - root: { - padding: `0 ${theme.spacing(1)}`, - textAlign: 'right' +const PLUGIN_ID = entry/* PluginId.CrossChainBridge */.je.CrossChainBridge; +const PLUGIN_DESCRIPTION = 'A cross-chain-bridge plugin'; +const PLUGIN_NAME = 'CrossChainBridge'; +function getCrossChainBridge(t) { + return [ + { + name: 'CBridge', + ID: `${PLUGIN_ID}_cBridge`, + intro: t.cbridge_intro(), + icon: /*#__PURE__*/ (0,jsx_runtime.jsx)(CBridgeIcon, {}), + isOfficial: false, + link: 'https://cbridge.celer.network/#/transfer' }, - text: { - paddingTop: 36, - paddingBottom: 36, - '& > p': { - color: (0,_masknet_theme__WEBPACK_IMPORTED_MODULE_1__/* .getMaskColor */ .nb)(theme).textPrimary - } + { + name: 'Arbitrum One Bridge', + ID: `${PLUGIN_ID}_arbitrum_one_bridge`, + isOfficial: true, + icon: /*#__PURE__*/ (0,jsx_runtime.jsx)(ArbitrumOneBridgeIcon, {}), + link: 'https://bridge.arbitrum.io/' }, - icon: { - color: (0,_masknet_theme__WEBPACK_IMPORTED_MODULE_1__/* .getMaskColor */ .nb)(theme).textPrimary + { + name: 'BOBA Bridge', + ID: `${PLUGIN_ID}_boba_bridge`, + isOfficial: true, + icon: /*#__PURE__*/ (0,jsx_runtime.jsx)(BobaBridgeIcon, {}), + link: 'https://gateway.boba.network/' }, - iconContainer: { - display: 'inherit' + { + name: 'Polygon Bridge', + ID: `${PLUGIN_ID}_polygon_bridge`, + isOfficial: true, + icon: /*#__PURE__*/ (0,jsx_runtime.jsx)(PolygonBridgeIcon, {}), + link: 'https://wallet.polygon.technology/bridge/' }, - tipList: { - listStyleType: 'decimal', - paddingLeft: 16 - } - }) -); -function AddressViewer({ addressName }) { - const t = (0,___WEBPACK_IMPORTED_MODULE_2__/* .useSharedI18N */ .B_)(); - const { classes } = useStyles(); - const { type , label , resolvedAddress } = addressName; - const typeMap = { - [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .AddressNameType.ADDRESS */ .Lv.ADDRESS]: t.address_viewer_address_name_address(), - [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .AddressNameType.ENS */ .Lv.ENS]: t.address_viewer_address_name_ens(), - [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .AddressNameType.UNS */ .Lv.UNS]: t.address_viewer_address_name_uns(), - [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .AddressNameType.DNS */ .Lv.DNS]: t.address_viewer_address_name_dns(), - [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .AddressNameType.RSS3 */ .Lv.RSS3]: t.address_viewer_address_name_rns(), - [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .AddressNameType.GUN */ .Lv.GUN]: t.address_viewer_address_name_address(), - [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .AddressNameType.THE_GRAPH */ .Lv.THE_GRAPH]: t.address_viewer_address_name_address(), - [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .AddressNameType.TWITTER_BLUE */ .Lv.TWITTER_BLUE]: t.address_viewer_address_name_twitter() - }; - const rulesTipMap = [ - t.address_viewer_binding_rule1(), - t.address_viewer_binding_rule2(), - t.address_viewer_binding_rule3(), - t.address_viewer_binding_rule4(), + { + name: 'Rainbow Bridge', + ID: `${PLUGIN_ID}_rainbow_bridge`, + isOfficial: true, + intro: t.rainbow_bridge_intro(), + icon: /*#__PURE__*/ (0,jsx_runtime.jsx)(RainbowBridgeIcon, {}), + link: 'https://rainbowbridge.app/transfer' + }, ]; - const tooltipRender = /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", { - style: { - textAlign: 'left' - }, - children: [ - /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z, { - variant: "body2", - children: t.address_viewer_binding_rules_title() - }), - /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("ul", { - className: classes.tipList, - children: rulesTipMap.map((item, index)=>/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("li", { - children: item - }, index) - ) - }) - ] - }); - if (!resolvedAddress) return null; - return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z, { - className: classes.root, - display: "flex", - alignItems: "center", - justifyContent: "flex-end", - flexWrap: "wrap", - children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_mui_material__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z, { - display: "flex", - alignItems: "center", - children: [ - /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_mui_material__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z, { - color: "textPrimary", - component: "span", - children: [ - t.address_viewer_current_display_of({ - type: typeMap[type] - }), - /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, { - href: (0,_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_7__/* .resolveAddressLinkOnExplorer */ .V3)(_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Mainnet */ .a_.Mainnet, resolvedAddress), - target: "_blank", - rel: "noopener noreferrer", - children: (0,_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_8__/* .formatEthereumAddress */ .j8)(label, 4) - }) - ] - }), - /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", { - className: classes.iconContainer, - children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .Z, { - title: tooltipRender, - arrow: true, - placement: "top", - PopperProps: { - disablePortal: true - }, - children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_icons_material_InfoOutlined__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .Z, { - fontSize: "small", - className: classes.icon, - sx: { - lineHeight: 1, - marginLeft: 0.5, - cursor: 'pointer' - } - }) - }) - }) - ] - }) - }); } /***/ }), -/***/ 49016: +/***/ 51024: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "T": () => (/* binding */ ApplicationEntry) +/* harmony export */ "u": () => (/* binding */ base) /* harmony export */ }); -/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(71999); -/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(83849); -/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _masknet_theme__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(30232); -/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(37253); - - - +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(74183); -const useStyles = (0,_masknet_theme__WEBPACK_IMPORTED_MODULE_2__/* .makeStyles */ .ZL)()((theme)=>({ - applicationBox: { - display: 'flex', - flexDirection: 'column', - justifyContent: 'center', - alignItems: 'center', - backgroundColor: theme.palette.background.default, - borderRadius: '8px', - height: 100 - }, - applicationBoxHover: { - cursor: 'pointer', - '&:hover': { - transform: 'scale(1.05) translateY(-4px)', - boxShadow: theme.palette.mode === 'light' ? '0px 10px 16px rgba(0, 0, 0, 0.1)' : 'none' - } +const base = { + ID: _constants__WEBPACK_IMPORTED_MODULE_0__/* .CYBERCONNECT_PLUGIN_ID */ .k, + name: { + fallback: 'CyberConnect' + }, + description: { + fallback: 'A plugin for https://cyberconnect.me/' + }, + publisher: { + name: { + fallback: 'CyberConnect' }, - applicationImg: { - width: 36, - height: 36, - marginBottom: 10 + link: 'https://github.com/cyberconnecthq' + }, + enableRequirement: { + architecture: { + app: false, + web: true }, - title: { - fontSize: 15 + networks: { + type: 'opt-out', + networks: {} }, - disabled: { - opacity: 0.4, - cursor: 'default', - pointerEvent: 'none' - } - }) -); -function ApplicationEntry(props) { - const { icon , title , onClick , disabled =false } = props; - const { classes } = useStyles(); - return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", { - className: classnames__WEBPACK_IMPORTED_MODULE_1___default()(classes.applicationBox, disabled ? classes.disabled : classes.applicationBoxHover), - onClick: disabled ? ()=>{} : onClick, - children: [ - /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("img", { - src: icon, - className: classes.applicationImg - }), - /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, { - className: classes.title, - color: "textPrimary", - children: title - }) - ] - }); -} + target: 'stable' + }, + contribution: { + postContent: new Set([ + /https:\/\/app.cyberconnect.me/ + ]) + } +}; + + +/***/ }), + +/***/ 74183: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "k": () => (/* binding */ CYBERCONNECT_PLUGIN_ID) +/* harmony export */ }); +/* unused harmony export CYBERCONNECT_PLUGIN_NAME */ +/* harmony import */ var _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(70226); + +const CYBERCONNECT_PLUGIN_NAME = 'CyberConnect'; +const CYBERCONNECT_PLUGIN_ID = _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__/* .PluginId.CyberConnect */ .je.CyberConnect; /***/ }), -/***/ 98598: +/***/ 53439: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; // EXPORTS __webpack_require__.d(__webpack_exports__, { - "I": () => (/* binding */ AssetPlayer) + "u": () => (/* binding */ base) }); -// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.0.0/node_modules/react/jsx-runtime.js -var jsx_runtime = __webpack_require__(71999); -// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.0.0/node_modules/react/index.js -var react = __webpack_require__(86248); -// EXTERNAL MODULE: ../web3-shared/evm/constants/constants.ts + 27 modules -var constants = __webpack_require__(26223); -// EXTERNAL MODULE: ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/head.js -var head = __webpack_require__(29730); -// EXTERNAL MODULE: ../../node_modules/.pnpm/iframe-resizer-react@1.1.0_react-dom@18.0.0+react@18.0.0/node_modules/iframe-resizer-react/dist/index.es.js -var index_es = __webpack_require__(7615); -// EXTERNAL MODULE: ../shared/src/constants.tsx -var src_constants = __webpack_require__(44459); -// EXTERNAL MODULE: ../../node_modules/.pnpm/react-use@17.3.2_react-dom@18.0.0+react@18.0.0/node_modules/react-use/esm/useUpdateEffect.js + 1 modules -var useUpdateEffect = __webpack_require__(93618); -// EXTERNAL MODULE: ../theme/src/entry.ts -var entry = __webpack_require__(30232); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.6.1_1376d0c029fe63cac75d7e36fe4212f4/node_modules/@mui/material/Box/Box.js -var Box = __webpack_require__(85139); -// EXTERNAL MODULE: ../icons/utils/index.tsx -var utils = __webpack_require__(15679); -;// CONCATENATED MODULE: ../icons/brands/MaskPlaceholder.tsx +// EXTERNAL MODULE: ../plugins/DAO/src/constants.ts +var constants = __webpack_require__(71849); +;// CONCATENATED MODULE: ../plugins/DAO/src/locales/en-US.json +const en_US_namespaceObject = {}; +;// CONCATENATED MODULE: ../plugins/DAO/src/locales/ja-JP.json +const ja_JP_namespaceObject = {}; +;// CONCATENATED MODULE: ../plugins/DAO/src/locales/ko-KR.json +const ko_KR_namespaceObject = {}; +;// CONCATENATED MODULE: ../plugins/DAO/src/locales/qya-AA.json +const qya_AA_namespaceObject = {}; +;// CONCATENATED MODULE: ../plugins/DAO/src/locales/zh-CN.json +const zh_CN_namespaceObject = {}; +;// CONCATENATED MODULE: ../plugins/DAO/src/locales/zh-TW.json +const zh_TW_namespaceObject = {}; +;// CONCATENATED MODULE: ../plugins/DAO/src/locales/languages.ts +// This file is auto generated. DO NOT EDIT +// Run `npx gulp sync-languages` to regenerate. +// Default fallback language in a family of languages are chosen by the alphabet order +// To overwrite this, please overwrite packages/scripts/src/locale-kit-next/index.ts -const MaskPlaceholder = (0,utils/* createPaletteAwareIcon */.t)('MaskPlaceholder', /*#__PURE__*/ (0,jsx_runtime.jsxs)("g", { - fill: "none", - children: [ - /*#__PURE__*/ (0,jsx_runtime.jsx)("path", { - d: "M18 36c9.941 0 18-8.059 18-18S27.941 0 18 0 0 8.059 0 18s8.059 18 18 18Z", - fill: "#CFD9DE" - }), - /*#__PURE__*/ (0,jsx_runtime.jsx)("path", { - fillRule: "evenodd", - clipRule: "evenodd", - d: "M28.5 13.917v5.833H10.247a7.936 7.936 0 0 0 14.861 1.75H28.5v4.9a2.1 2.1 0 0 1-2.1 2.1H9.6a2.1 2.1 0 0 1-2.1-2.1V13.917h21ZM23.094 21.5a6.177 6.177 0 0 1-5.107 2.697 6.177 6.177 0 0 1-5.108-2.697h10.215Zm-9.586-6.183a3.267 3.267 0 0 0-3.233 2.8h1.79a1.517 1.517 0 0 1 2.887 0h1.79a3.267 3.267 0 0 0-3.234-2.8Zm8.984 0a3.267 3.267 0 0 0-3.234 2.8h1.79a1.517 1.517 0 0 1 2.887 0h1.79a3.267 3.267 0 0 0-3.233-2.8ZM26.4 7.5c1.16 0 2.1.94 2.1 2.1v2.567h-21V9.6c0-1.16.94-2.1 2.1-2.1h16.8Z", - fill: "#fff" - }) - ] -}), /*#__PURE__*/ (0,jsx_runtime.jsxs)("g", { - fill: "none", - children: [ - /*#__PURE__*/ (0,jsx_runtime.jsx)("path", { - d: "M18 36c9.941 0 18-8.059 18-18S27.941 0 18 0 0 8.059 0 18s8.059 18 18 18Z", - fill: "#2F3336" - }), - /*#__PURE__*/ (0,jsx_runtime.jsx)("path", { - fillRule: "evenodd", - clipRule: "evenodd", - d: "M28.5 13.917v5.833H10.247a7.936 7.936 0 0 0 14.861 1.75H28.5v4.9a2.1 2.1 0 0 1-2.1 2.1H9.6a2.1 2.1 0 0 1-2.1-2.1V13.917h21ZM23.094 21.5a6.177 6.177 0 0 1-5.107 2.697 6.177 6.177 0 0 1-5.108-2.697h10.215Zm-9.586-6.183a3.267 3.267 0 0 0-3.233 2.8h1.79a1.517 1.517 0 0 1 2.887 0h1.79a3.267 3.267 0 0 0-3.234-2.8Zm8.984 0a3.267 3.267 0 0 0-3.234 2.8h1.79a1.517 1.517 0 0 1 2.887 0h1.79a3.267 3.267 0 0 0-3.233-2.8ZM26.4 7.5c1.16 0 2.1.94 2.1 2.1v2.567h-21V9.6c0-1.16.94-2.1 2.1-2.1h16.8Z", - fill: "#15171A" - }) - ] -}), /*#__PURE__*/ (0,jsx_runtime.jsxs)("g", { - fill: "none", - children: [ - /*#__PURE__*/ (0,jsx_runtime.jsx)("path", { - d: "M18 36c9.941 0 18-8.059 18-18S27.941 0 18 0 0 8.059 0 18s8.059 18 18 18Z", - fill: "#38444D" - }), - /*#__PURE__*/ (0,jsx_runtime.jsx)("path", { - fillRule: "evenodd", - clipRule: "evenodd", - d: "M28.5 13.917v5.833H10.247a7.936 7.936 0 0 0 14.861 1.75H28.5v4.9a2.1 2.1 0 0 1-2.1 2.1H9.6a2.1 2.1 0 0 1-2.1-2.1V13.917h21ZM23.094 21.5a6.177 6.177 0 0 1-5.107 2.697 6.177 6.177 0 0 1-5.108-2.697h10.215Zm-9.586-6.183a3.267 3.267 0 0 0-3.233 2.8h1.79a1.517 1.517 0 0 1 2.887 0h1.79a3.267 3.267 0 0 0-3.234-2.8Zm8.984 0a3.267 3.267 0 0 0-3.234 2.8h1.79a1.517 1.517 0 0 1 2.887 0h1.79a3.267 3.267 0 0 0-3.233-2.8ZM26.4 7.5c1.16 0 2.1.94 2.1 2.1v2.567h-21V9.6c0-1.16.94-2.1 2.1-2.1h16.8Z", - fill: "#18232E" - }) - ] -}), '0 0 36 36'); -;// CONCATENATED MODULE: ../icons/general/AssetLoading.tsx -const AssetLoadingIcon = (0,utils/* createIcon */.I)('AssetLoadingIcon', /*#__PURE__*/ (0,jsx_runtime.jsxs)("g", { - fill: "none", - children: [ - /*#__PURE__*/ (0,jsx_runtime.jsx)("path", { - d: "M18 36c9.941 0 18-8.059 18-18S27.941 0 18 0 0 8.059 0 18s8.059 18 18 18Z", - fill: "#1C68F3" - }), - /*#__PURE__*/ (0,jsx_runtime.jsx)("path", { - fillRule: "evenodd", - clipRule: "evenodd", - d: "M28.864 13.575v5.978H9.86c.83 3.627 4.123 6.336 8.058 6.336a8.273 8.273 0 0 0 7.415-4.543h3.531v5.021c0 1.189-.979 2.152-2.186 2.152H9.186C7.98 28.52 7 27.556 7 26.367V13.575h21.864Zm-5.628 7.771a6.46 6.46 0 0 1-5.318 2.764 6.46 6.46 0 0 1-5.317-2.764h10.635Zm-9.98-6.336c-1.714 0-3.131 1.247-3.367 2.87h1.864c.205-.625.8-1.077 1.503-1.077.702 0 1.298.452 1.503 1.076h1.863c-.235-1.622-1.653-2.869-3.366-2.869Zm9.353 0c-1.714 0-3.131 1.247-3.367 2.87h1.864c.205-.625.8-1.077 1.503-1.077.702 0 1.298.452 1.503 1.076h1.863c-.235-1.622-1.653-2.869-3.366-2.869ZM26.678 7c1.207 0 2.186.963 2.186 2.152v2.63H7v-2.63C7 7.963 7.979 7 9.186 7h17.492Z", - fill: "#fff" - }), - /*#__PURE__*/ (0,jsx_runtime.jsx)("ellipse", { - cx: "18", - cy: "48", - rx: "11.5", - ry: "4", - fill: "#003EAE" - }) - ] -}), '0 0 36 52'); -;// CONCATENATED MODULE: ../shared/src/UI/components/AssetPlayer/index.tsx +const languages = { + en: en_US_namespaceObject, + ja: ja_JP_namespaceObject, + ko: ko_KR_namespaceObject, + qy: qya_AA_namespaceObject, + 'zh-CN': zh_CN_namespaceObject, + zh: zh_TW_namespaceObject +}; +// @ts-ignore +if (false) {} + +;// CONCATENATED MODULE: ../plugins/DAO/src/base.ts + + +const base = { + ID: constants/* PLUGIN_ID */.Uu, + name: { + fallback: constants/* PLUGIN_NAME */.EW + }, + description: { + fallback: constants/* PLUGIN_DESCRIPTION */.PP + }, + publisher: { + name: { + fallback: 'Mask Network' + }, + link: 'https://mask.io/' + }, + enableRequirement: { + architecture: { + app: false, + web: true + }, + networks: { + type: 'opt-out', + networks: {} + }, + target: 'stable' + }, + experimentalMark: true, + i18n: languages +}; +/***/ }), +/***/ 71849: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "EW": () => (/* binding */ PLUGIN_NAME), +/* harmony export */ "PP": () => (/* binding */ PLUGIN_DESCRIPTION), +/* harmony export */ "Uu": () => (/* binding */ PLUGIN_ID) +/* harmony export */ }); +/* harmony import */ var _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(70226); +const PLUGIN_ID = _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__/* .PluginId.DAO */ .je.DAO; +const PLUGIN_DESCRIPTION = 'The Web3 DAO based on JuiceBox.'; +const PLUGIN_NAME = 'DAO'; +/***/ }), +/***/ 51217: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { +"use strict"; -const useStyles = (0,entry/* makeStyles */.ZL)()({ - hidden: { - position: 'absolute', - visibility: 'hidden' - } -}); -var AssetPlayerState; -(function(AssetPlayerState) { - AssetPlayerState[AssetPlayerState["LOADING"] = 0] = "LOADING"; - AssetPlayerState[AssetPlayerState["INIT"] = 1] = "INIT"; - AssetPlayerState[AssetPlayerState["NORMAL"] = 2] = "NORMAL"; - AssetPlayerState[AssetPlayerState["ERROR"] = 3] = "ERROR"; -})(AssetPlayerState || (AssetPlayerState = {})); -const AssetPlayer = /*#__PURE__*/ (0,react.memo)((props)=>{ - const ref = (0,react.useRef)(null); - const { url , type: type1 , options , iconProps , isFixedIframeSize =true , fallbackResourceLoader } = props; - const classes = (0,entry/* useStylesExtends */.Bc)(useStyles(), props); - const [hidden, setHidden] = (0,react.useState)(Boolean(props.renderTimeout)); - const { RPC: RPC_Entries } = (0,constants/* getRPCConstants */.t0)(props.erc721Token?.chainId); - const rpc = (0,head/* default */.Z)(RPC_Entries); - const erc721Token = rpc ? { - ...props.erc721Token, - rpc - } : undefined; - const [playerState, setPlayerState] = (0,react.useState)(url || erc721Token ? AssetPlayerState.LOADING : AssetPlayerState.ERROR); - (0,react.useEffect)(()=>{ - if (!props.renderTimeout || !hidden) return; - const timer = setTimeout(()=>{ - setHidden(false); - }, props.renderTimeout); - return ()=>clearTimeout(timer) - ; - }, [ - props.renderTimeout, - hidden - ]); - // #region setup iframe when url and options be changed - const setIframe = (0,react.useCallback)(()=>{ - // if iframe isn't be init or the load error has been existed - if (!ref.current || playerState === AssetPlayerState.ERROR || playerState === AssetPlayerState.NORMAL) return; - if (!url && !erc721Token) { - setPlayerState(AssetPlayerState.ERROR); - return; - } - if (playerState === AssetPlayerState.INIT) { - ref.current.iFrameResizer.sendMessage({ - url, - erc721Token, - type: type1, - ...options - }); - return; - } - }, [ - url, - JSON.stringify(erc721Token), - type1, - JSON.stringify(options), - playerState - ]); - // #region resource loaded error - const onMessage = (0,react.useCallback)(({ message })=>{ - if (message?.name === 'Error') { - setPlayerState(AssetPlayerState.ERROR); - } - if (message?.type === 'webglContextLost') { - setHidden(true); - setPlayerState(AssetPlayerState.LOADING); - setTimeout(()=>setHidden(false) - , 1000); - } - if (message.message?.type === 'name') { - props.setERC721TokenName?.(message.message.name); - } - if (message.message?.type === 'sourceType') { - props.setSourceType?.(message.message.name); - } - }, []); - // #endregion - (0,useUpdateEffect/* default */.Z)(()=>{ - setIframe(); - }, [ - setIframe - ]); - // Workaround for a bug of `iframe-resizer-react`: - // When the content of iframe loaded, `IframeResizer` triggers a `size` event, - // but the `height` and `width` value of that `size` event isn't equal to the content. - // (Sometimes it doesn't matter, if the size of iframe has been set fixed already) - // Meanwhile `IframeResizer` triggers a `resize` event when the size of - // parent of iframe changed, this time the returned `height` and `width` is right. - // So resize the parent manually. - (0,react.useEffect)(()=>{ - if (playerState !== AssetPlayerState.NORMAL && isFixedIframeSize) return; - const resize = (height)=>()=>{ - if (!ref.current?.parentElement) return; - ref.current.parentElement.style.height = height; - } - ; - const noSenseHeight = '100px'; - const timerOne = setTimeout(resize(noSenseHeight), 100); - const timerTwo = setTimeout(resize(''), 150); - return ()=>{ - clearTimeout(timerOne); - clearTimeout(timerTwo); - }; - }, [ - playerState, - ref.current - ]); - (0,react.useEffect)(()=>{ - if (playerState === AssetPlayerState.NORMAL) { - ref.current?.iFrameResizer.sendMessage({ - loaded: true - }); - } - }, [ - playerState, - ref.current - ]); - const IframeResizerMemo = (0,react.useMemo)(()=>hidden ? null : /*#__PURE__*/ (0,jsx_runtime.jsx)(index_es/* default */.Z, { - src: src_constants/* mediaViewerUrl */.n2, - onInit: (iframe)=>{ - ref.current = iframe; - setPlayerState(AssetPlayerState.INIT); - setIframe(); - }, - className: ![ - AssetPlayerState.NORMAL, - AssetPlayerState.INIT - ].includes(playerState) ? classes.hidden : classes.iframe, - onResized: ({ type })=>{ - if (type === 'init' || playerState === AssetPlayerState.NORMAL) return; - setPlayerState(AssetPlayerState.NORMAL); - }, - style: { - width: playerState !== AssetPlayerState.NORMAL ? 0 : undefined, - height: playerState !== AssetPlayerState.NORMAL ? 0 : undefined - }, - checkOrigin: false, - onMessage: onMessage, - frameBorder: "0", - resizeFrom: "child", - allow: "autoplay", - allowFullScreen: true - }) - , [ - hidden, - playerState, - classes, - src_constants/* mediaViewerUrl */.n2 - ]); - return /*#__PURE__*/ (0,jsx_runtime.jsxs)(jsx_runtime.Fragment, { - children: [ - /*#__PURE__*/ (0,jsx_runtime.jsx)(Box/* default */.Z, { - className: playerState === AssetPlayerState.ERROR ? classes.errorPlaceholder : classes.loadingPlaceholder, - style: { - display: playerState === AssetPlayerState.NORMAL ? 'none' : undefined - }, - children: playerState === AssetPlayerState.ERROR ? props.fallbackResourceLoader ?? (props.fallbackImage ? /*#__PURE__*/ (0,jsx_runtime.jsx)("img", { - className: classes.loadingFailImage, - src: props.fallbackImage.toString() - }) : /*#__PURE__*/ (0,jsx_runtime.jsx)(MaskPlaceholder, { - className: classes.errorIcon, - ...iconProps - })) : props.loadingIcon ?? /*#__PURE__*/ (0,jsx_runtime.jsx)(AssetLoadingIcon, { - className: classes.loadingIcon - }) - }), - IframeResizerMemo - ] - }); +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "u": () => (/* binding */ base) }); +// EXTERNAL MODULE: ../plugins/Debugger/src/constants.ts +var constants = __webpack_require__(38014); +;// CONCATENATED MODULE: ../plugins/Debugger/src/locales/en-US.json +const en_US_namespaceObject = {}; +;// CONCATENATED MODULE: ../plugins/Debugger/src/locales/ja-JP.json +const ja_JP_namespaceObject = {}; +;// CONCATENATED MODULE: ../plugins/Debugger/src/locales/ko-KR.json +const ko_KR_namespaceObject = {}; +;// CONCATENATED MODULE: ../plugins/Debugger/src/locales/qya-AA.json +const qya_AA_namespaceObject = {}; +;// CONCATENATED MODULE: ../plugins/Debugger/src/locales/zh-CN.json +const zh_CN_namespaceObject = {}; +;// CONCATENATED MODULE: ../plugins/Debugger/src/locales/zh-TW.json +const zh_TW_namespaceObject = {}; +;// CONCATENATED MODULE: ../plugins/Debugger/src/locales/languages.ts +// This file is auto generated. DO NOT EDIT +// Run `npx gulp sync-languages` to regenerate. +// Default fallback language in a family of languages are chosen by the alphabet order +// To overwrite this, please overwrite packages/scripts/src/locale-kit-next/index.ts + -/***/ }), -/***/ 87525: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -"use strict"; -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - "T": () => (/* binding */ ERC20TokenList) -}); -// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.0.0/node_modules/react/jsx-runtime.js -var jsx_runtime = __webpack_require__(71999); -// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.0.0/node_modules/react/index.js -var react = __webpack_require__(86248); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.6.1_1376d0c029fe63cac75d7e36fe4212f4/node_modules/@mui/material/ListItem/ListItem.js + 2 modules -var ListItem = __webpack_require__(16451); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.6.1_1376d0c029fe63cac75d7e36fe4212f4/node_modules/@mui/material/ListItemIcon/ListItemIcon.js -var ListItemIcon = __webpack_require__(40006); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.6.1_1376d0c029fe63cac75d7e36fe4212f4/node_modules/@mui/material/ListItemText/ListItemText.js -var ListItemText = __webpack_require__(43754); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.6.1_1376d0c029fe63cac75d7e36fe4212f4/node_modules/@mui/material/Typography/Typography.js + 1 modules -var Typography = __webpack_require__(37253); -// EXTERNAL MODULE: ../../node_modules/.pnpm/classnames@2.3.1/node_modules/classnames/index.js -var classnames = __webpack_require__(83849); -var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames); -// EXTERNAL MODULE: ../web3-shared/evm/context/index.tsx -var context = __webpack_require__(24790); -// EXTERNAL MODULE: ../../node_modules/.pnpm/react-use@17.3.2_react-dom@18.0.0+react@18.0.0/node_modules/react-use/esm/useAsyncFn.js -var useAsyncFn = __webpack_require__(30688); -;// CONCATENATED MODULE: ../web3-shared/evm/hooks/useAddERC20TokenCallback.ts +const languages = { + en: en_US_namespaceObject, + ja: ja_JP_namespaceObject, + ko: ko_KR_namespaceObject, + qy: qya_AA_namespaceObject, + 'zh-CN': zh_CN_namespaceObject, + zh: zh_TW_namespaceObject +}; +// @ts-ignore +if (false) {} +;// CONCATENATED MODULE: ../plugins/Debugger/src/base.ts -function useAddERC20TokenCallback() { - const { addToken } = (0,context/* useWeb3Context */.Z_)(); - return (0,useAsyncFn/* default */.Z)(async (token)=>{ - await addToken(token); - }, [ - addToken - ]); -} -;// CONCATENATED MODULE: ../web3-shared/evm/hooks/useTrustERC20TokenCallback.ts +const base = { + ID: constants/* PLUGIN_ID */.Uu, + name: { + fallback: constants/* PLUGIN_NAME */.EW + }, + description: { + fallback: constants/* PLUGIN_DESCRIPTION */.PP + }, + publisher: { + name: { + fallback: 'Mask Network' + }, + link: 'https://mask.io/' + }, + enableRequirement: { + architecture: { + app: false, + web: true + }, + networks: { + type: 'opt-out', + networks: {} + }, + target: 'insider' + }, + experimentalMark: true, + i18n: languages +}; + +/***/ }), -function useTrustERC20TokenCallback() { - const { trustToken } = (0,context/* useWeb3Context */.Z_)(); - return (0,useAsyncFn/* default */.Z)(async (address, token)=>{ - await trustToken(address, token); - }, [ - trustToken - ]); -} +/***/ 38014: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -// EXTERNAL MODULE: ../web3-shared/evm/utils/address.ts -var utils_address = __webpack_require__(2239); -// EXTERNAL MODULE: ../web3-shared/evm/utils/formatter.ts -var formatter = __webpack_require__(66394); -// EXTERNAL MODULE: ../shared/src/UI/components/TokenIcon/index.tsx + 2 modules -var TokenIcon = __webpack_require__(67632); -// EXTERNAL MODULE: ../theme/src/entry.ts -var entry = __webpack_require__(30232); -// EXTERNAL MODULE: ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/some.js + 1 modules -var some = __webpack_require__(14626); -// EXTERNAL MODULE: ../icons/general/Loading.tsx -var Loading = __webpack_require__(14696); -// EXTERNAL MODULE: ../shared/src/locales/index.ts + 1 modules -var locales = __webpack_require__(29889); -// EXTERNAL MODULE: ../shared/src/UI/components/LoadingAnimation/index.tsx -var LoadingAnimation = __webpack_require__(99769); -// EXTERNAL MODULE: ../../node_modules/.pnpm/bignumber.js@9.0.2/node_modules/bignumber.js/bignumber.js -var bignumber = __webpack_require__(42263); -var bignumber_default = /*#__PURE__*/__webpack_require__.n(bignumber); -;// CONCATENATED MODULE: ../shared/src/UI/components/ERC20TokenList/ERC20TokenListItem.tsx +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "EW": () => (/* binding */ PLUGIN_NAME), +/* harmony export */ "PP": () => (/* binding */ PLUGIN_DESCRIPTION), +/* harmony export */ "Uu": () => (/* binding */ PLUGIN_ID) +/* harmony export */ }); +/* harmony import */ var _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(70226); +const PLUGIN_ID = _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__/* .PluginId.Debugger */ .je.Debugger; +const PLUGIN_DESCRIPTION = 'Mask Network plugin debugger.'; +const PLUGIN_NAME = 'Debugger'; +/***/ }), +/***/ 10760: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { +"use strict"; +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "u": () => (/* binding */ base) +}); +// EXTERNAL MODULE: ../web3-shared/evm/constants/descriptors.ts + 1 modules +var descriptors = __webpack_require__(13898); +// EXTERNAL MODULE: ../plugins/EVM/src/constants/index.ts +var constants = __webpack_require__(18179); +;// CONCATENATED MODULE: ../plugins/EVM/src/locales/en-US.json +const en_US_namespaceObject = {}; +;// CONCATENATED MODULE: ../plugins/EVM/src/locales/languages.ts +// This file is auto generated. DO NOT EDIT +// Run `npx gulp sync-languages` to regenerate. +// Default fallback language in a family of languages are chosen by the alphabet order +// To overwrite this, please overwrite packages/scripts/src/locale-kit-next/index.ts +const languages = { + en: en_US_namespaceObject +}; +// @ts-ignore +if (false) {} +;// CONCATENATED MODULE: ../plugins/EVM/src/base.ts -const useStyles = (0,entry/* makeStyles */.ZL)()((theme)=>({ - icon: { - width: 36, - height: 36 - }, - list: { - maxHeight: '100%', - padding: theme.spacing(1.5), - borderRadius: theme.spacing(1) - }, - text: { - display: 'flex', - alignItems: 'center', - justifyContent: 'space-between' - }, - primary: { - flex: 1, - whiteSpace: 'nowrap', - textOverflow: 'ellipsis', - overflow: 'hidden', - paddingRight: theme.spacing(1) - }, +const base = { + ID: constants/* PLUGIN_ID */.Uu, + name: { + fallback: constants/* PLUGIN_NAME */.EW + }, + description: { + fallback: constants/* PLUGIN_DESCRIPTION */.PP + }, + publisher: { name: { - display: 'block', - lineHeight: '20px', - fontSize: 16, - // TODO: Should align dashboard and twitter theme in common component, depend twitter theme - color: theme.palette.mode === 'dark' ? '#6E767D' : '#536471' + fallback: 'Mask Network' }, - symbol: { - lineHeight: '20px', - fontSize: 16 + link: 'https://mask.io/' + }, + enableRequirement: { + architecture: { + app: true, + web: true }, - import: { - '&:before': { - content: '""', - display: 'inline-block', - position: 'absolute', - top: 0, - left: 0, - width: '100%', - height: '100%', - background: 'transparent' - } + networks: { + type: 'opt-out', + networks: {} }, - importButton: { - padding: '3px 0', - borderRadius: 15, - fontSize: 14, - fontWeight: 500, - lineHeight: '20px' - } - }) -); -const getERC20TokenListItem = (addedTokens, externalTokens, info, selectedTokens, loadingAsset, account)=>({ data , onSelect })=>{ - const t1 = (0,locales/* useSharedI18N */.B)(); - const { classes } = useStyles(); - const [, addERC20Token] = useAddERC20TokenCallback(); - const [, trustERC20Token] = useTrustERC20TokenCallback(); - const token = data.token; - if (!token) return null; - const { address , name , symbol , logoURI } = token; - const isNotAdded = (0,some/* default */.Z)(externalTokens, (t)=>(0,utils_address/* isSameAddress */.Wr)(address, t.address) - ); - const isAdded = (0,some/* default */.Z)(addedTokens, (t)=>(0,utils_address/* isSameAddress */.Wr)(address, t.address) - ); - const onImport = (0,react.useCallback)(async (event)=>{ - event.stopPropagation(); - if (!token || !account) return; - await addERC20Token(token); - await trustERC20Token(account, token); - }, [ - token, - account - ]); - const handleTokenSelect = (e)=>{ - e.stopPropagation(); - onSelect(data); - }; - const action = (0,react.useMemo)(()=>{ - return !isNotAdded || isAdded || info.inList && info.from === 'search' ? data.balance === null ? null : /*#__PURE__*/ (0,jsx_runtime.jsx)("span", { - children: loadingAsset ? /*#__PURE__*/ (0,jsx_runtime.jsx)(LoadingAnimation/* LoadingAnimation */.p, {}) : Number.parseFloat(new (bignumber_default())((0,formatter/* formatBalance */.az)(data.balance ?? 0, token.decimals, 6)).toFixed(6)) - }) : /*#__PURE__*/ (0,jsx_runtime.jsx)(entry/* MaskLoadingButton */.b4, { - variant: "contained", - color: "primary", - onClick: onImport, - size: "small", - className: classes.importButton, - soloLoading: true, - loadingIndicator: /*#__PURE__*/ (0,jsx_runtime.jsx)(Loading/* LoadingIcon */.H, { - sx: { - fontSize: 14 - } - }), - children: t1.import() - }); - }, [ - info, - isNotAdded, - isAdded, - data.balance - ]); - return /*#__PURE__*/ (0,jsx_runtime.jsxs)(ListItem/* default */.ZP, { - button: true, - className: `${classes.list} dashboard token-list`, - onClick: handleTokenSelect, - disabled: selectedTokens.some((0,utils_address/* currySameAddress */.DC)(address)), - children: [ - /*#__PURE__*/ (0,jsx_runtime.jsx)(ListItemIcon/* default */.Z, { - children: /*#__PURE__*/ (0,jsx_runtime.jsx)(TokenIcon/* TokenIcon */.T, { - classes: { - icon: classes.icon - }, - address: address, - name: name, - logoURI: logoURI - }) - }), - /*#__PURE__*/ (0,jsx_runtime.jsxs)(ListItemText/* default */.Z, { - classes: { - primary: classes.text - }, - children: [ - /*#__PURE__*/ (0,jsx_runtime.jsxs)(Typography/* default */.Z, { - className: classnames_default()(classes.primary, isNotAdded ? classes.import : ''), - color: "textPrimary", - component: "span", - children: [ - /*#__PURE__*/ (0,jsx_runtime.jsx)("span", { - className: classes.symbol, - children: symbol - }), - /*#__PURE__*/ (0,jsx_runtime.jsxs)("span", { - className: `${classes.name} dashboard token-list-symbol`, - children: [ - name, - isAdded && /*#__PURE__*/ (0,jsx_runtime.jsx)("span", { - children: " \u2022 Added By User" - }) - ] - }) - ] - }), - /*#__PURE__*/ (0,jsx_runtime.jsx)(Typography/* default */.Z, { - sx: { - fontSize: 16 - }, - color: "textSecondary", - component: "span", - children: action - }) - ] - }) - ] - }, address); - } -; + target: 'stable' + }, + i18n: languages, + declareWeb3Networks: descriptors/* NETWORK_DESCRIPTORS */.qQ, + declareWeb3Providers: descriptors/* PROVIDER_DESCRIPTORS */.zM +}; -// EXTERNAL MODULE: ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/uniqBy.js -var uniqBy = __webpack_require__(18443); -// EXTERNAL MODULE: ../../node_modules/.pnpm/react-use@17.3.2_react-dom@18.0.0+react@18.0.0/node_modules/react-use/esm/useAsyncRetry.js -var useAsyncRetry = __webpack_require__(64452); -// EXTERNAL MODULE: ../../node_modules/.pnpm/fuse.js@6.5.3/node_modules/fuse.js/dist/fuse.esm.js -var fuse_esm = __webpack_require__(46149); -// EXTERNAL MODULE: ../../node_modules/.pnpm/wallet.ts@1.0.1/node_modules/wallet.ts/dist/index.js -var dist = __webpack_require__(99674); -// EXTERNAL MODULE: ../web3-shared/evm/hooks/useChainId.ts -var useChainId = __webpack_require__(31174); -// EXTERNAL MODULE: ../shared-base/src/index.ts + 1 modules -var src = __webpack_require__(78144); -;// CONCATENATED MODULE: ../web3-shared/evm/hooks/useERC20TokensDetailedFromTokenLists.ts +/***/ }), +/***/ 18179: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "EW": () => (/* binding */ PLUGIN_NAME), +/* harmony export */ "PP": () => (/* binding */ PLUGIN_DESCRIPTION), +/* harmony export */ "Uu": () => (/* binding */ PLUGIN_ID) +/* harmony export */ }); +/* harmony import */ var _masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(67938); +const PLUGIN_ID = _masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .NetworkPluginID.PLUGIN_EVM */ .FF.PLUGIN_EVM; +const PLUGIN_NAME = 'EVM'; +const PLUGIN_DESCRIPTION = ''; +/***/ }), +/***/ 40980: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -function useERC20TokensDetailedFromTokenLists(lists, keyword = '', additionalTokens = src/* EMPTY_LIST */.rP, targetChainId) { - // #region fetch token lists - const currentChainId = (0,useChainId/* useChainId */.xx)(); - const chainId = targetChainId ?? currentChainId; - const { fetchERC20TokensFromTokenLists } = (0,context/* useWeb3Context */.Z_)(); - const { value: tokensFromList = src/* EMPTY_LIST */.rP , ...asyncResult } = (0,useAsyncRetry/* default */.Z)(async ()=>!lists || lists.length === 0 ? [] : fetchERC20TokensFromTokenLists(lists, chainId) - , [ - chainId, - lists?.sort().join() - ]); - // #endregion - // #region fuse - const fuse = (0,react.useMemo)(()=>new fuse_esm/* default */.Z([ - ...additionalTokens, - ...tokensFromList - ], { - shouldSort: true, - threshold: 0, - minMatchCharLength: 1, - keys: [ - { - name: 'name', - weight: 0.5 - }, - { - name: 'symbol', - weight: 1 - }, - ] - }) - , [ - tokensFromList, - additionalTokens.map((x)=>x.address - ).join() - ]); - // #endregion - // #region create searched tokens - const searchedTokens = (0,react.useMemo)(()=>{ - const allToken = [ - ...additionalTokens, - ...tokensFromList - ]; - if (!keyword) return allToken; - return [ - ...dist.EthereumAddress.isValid(keyword) ? allToken.filter((0,utils_address/* currySameAddress */.DC)(keyword)) : [], - ...fuse.search(keyword).map((x)=>x.item - ), - ]; - }, [ - keyword, - fuse, - tokensFromList, - additionalTokens.map((x)=>x.address - ).join() - ]); - // #endregion - if (!asyncResult.error) return { - ...asyncResult, - value: searchedTokens - }; - return { - ...asyncResult, - value: undefined - }; -} +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "J": () => (/* binding */ SharedContextSettings), +/* harmony export */ "o": () => (/* binding */ Web3StateSettings) +/* harmony export */ }); +/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(44451); -// EXTERNAL MODULE: ../web3-shared/evm/hooks/useAssetsFromChain.ts + 2 modules -var useAssetsFromChain = __webpack_require__(72831); -// EXTERNAL MODULE: ../web3-shared/evm/hooks/useAssetsFromProvider.ts -var useAssetsFromProvider = __webpack_require__(38392); -// EXTERNAL MODULE: ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/sortBy.js -var sortBy = __webpack_require__(5043); -;// CONCATENATED MODULE: ../web3-shared/evm/hooks/useAssetsByTokenList.ts +const Web3StateSettings = (0,_masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .createValueRefWithReady */ .a)(null); +const SharedContextSettings = (0,_masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .createValueRefWithReady */ .a)(null); +/***/ }), +/***/ 36856: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { +"use strict"; -function useAssetsByTokenList(tokens, targetChainId) { - const [tokensForAsset, setTokensForAsset] = (0,react.useState)([]); - // merge tokens to avoid fetch asset from chain all the time - (0,react.useEffect)(()=>{ - setTokensForAsset((oldTokensForAsset)=>{ - const uniqTokens = (0,uniqBy/* default */.Z)([ - ...tokens, - ...oldTokensForAsset - ], (x)=>x.address - ); - const sortedTokens = (0,sortBy/* default */.Z)(uniqTokens, (x)=>x.address - ); - return sortedTokens; - }); - }, [ - tokens.map((x)=>x.address.slice(0, 5) - ).join('') - ]); - const { value: assetsDetailedChain = [] , loading: assetsDetailedChainLoading , error: assetsDetailedChainError , retry: retryAssetsDetailedChain , } = (0,useAssetsFromChain/* useAssetsFromChain */.R)(tokensForAsset, targetChainId); - const { value: assetsDetailedProvider = [] , loading: assetsDetailedProviderLoading , error: assetsDetailedProviderError , retry: retryAssetsDetailedDebank , } = (0,useAssetsFromProvider/* useAssetsFromProvider */.u)(targetChainId); - const detailedTokensRetry = (0,react.useCallback)(()=>{ - retryAssetsDetailedChain(); - retryAssetsDetailedDebank(); - }, [ - retryAssetsDetailedChain, - retryAssetsDetailedDebank - ]); - const assetsDetailed = assetsDetailedChain.map((asset)=>{ - const assertWithValue = assetsDetailedProvider.find((detail)=>(0,utils_address/* isSameAddress */.Wr)(detail.token.address, asset.token.address) && detail.token.chainId === asset.token.chainId - ); - if (assertWithValue) { - return { - ...asset, - ...{ - value: assertWithValue.value - } - }; - } - return asset; - }).filter((m)=>tokens.find((x)=>(0,utils_address/* isSameAddress */.Wr)(x.address, m.token.address) - ) - ); - return { - value: assetsDetailed, - error: assetsDetailedChainError || assetsDetailedProviderError, - loading: assetsDetailedChainLoading || assetsDetailedProviderLoading, - retry: detailedTokensRetry - }; -} +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "s": () => (/* binding */ createWeb3State) +}); -// EXTERNAL MODULE: ../web3-shared/evm/hooks/useAccount.ts -var useAccount = __webpack_require__(10372); -// EXTERNAL MODULE: ../web3-shared/evm/hooks/useTrustedERC20Tokens.ts + 1 modules -var useTrustedERC20Tokens = __webpack_require__(65321); -// EXTERNAL MODULE: ../web3-shared/evm/hooks/useNativeTokenDetailed.ts -var useNativeTokenDetailed = __webpack_require__(38443); -// EXTERNAL MODULE: ../web3-shared/evm/constants/constants.ts + 27 modules -var constants = __webpack_require__(26223); -// EXTERNAL MODULE: ../web3-shared/evm/hooks/useERC20TokenDetailed.ts + 5 modules -var useERC20TokenDetailed = __webpack_require__(29782); -// EXTERNAL MODULE: ../web3-shared/evm/utils/token.ts -var token = __webpack_require__(33690); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.6.1_1376d0c029fe63cac75d7e36fe4212f4/node_modules/@mui/material/Stack/Stack.js -var Stack = __webpack_require__(867); -;// CONCATENATED MODULE: ../shared/src/UI/components/ERC20TokenList/index.tsx +// EXTERNAL MODULE: ../../node_modules/.pnpm/@dimensiondev+kit@0.0.0-20220617045824-8bc7a27/node_modules/@dimensiondev/kit/esm/index.js +var esm = __webpack_require__(46123); +// EXTERNAL MODULE: ../plugin-infra/src/entry-web3.ts + 1 modules +var entry_web3 = __webpack_require__(50719); +// EXTERNAL MODULE: ../web3-shared/base/src/index.ts + 1 modules +var src = __webpack_require__(67938); +// EXTERNAL MODULE: ../web3-shared/evm/types/index.ts +var types = __webpack_require__(72499); +// EXTERNAL MODULE: ../web3-shared/evm/utils/address.ts +var utils_address = __webpack_require__(2596); +// EXTERNAL MODULE: ../web3-shared/evm/utils/formatter.ts +var formatter = __webpack_require__(5326); +;// CONCATENATED MODULE: ../plugins/EVM/src/state/AddressBook.ts +class AddressBook extends entry_web3/* AddressBookState */.Cp { + constructor(context, subscriptions){ + super(context, (0,esm/* getEnumAsArray */.Yl)(types/* ChainId */.a_).map((x)=>x.value + ), subscriptions, { + isValidAddress: utils_address/* isValidAddress */.At, + isSameAddress: src/* isSameAddress */.Wr, + formatAddress: formatter/* formatEthereumAddress */.j8 + }); + } +} +// EXTERNAL MODULE: ../web3-providers/src/index.ts +var web3_providers_src = __webpack_require__(19769); +// EXTERNAL MODULE: ../web3-shared/evm/constants/constants.ts + 12 modules +var constants = __webpack_require__(47104); +// EXTERNAL MODULE: ../web3-shared/evm/utils/resolver.ts +var resolver = __webpack_require__(94861); +;// CONCATENATED MODULE: ../plugins/EVM/src/state/Hub/TokenIconSpecialIconList.json +const TokenIconSpecialIconList_namespaceObject = JSON.parse('[{"name":"MASK","address":"0x2eD9a5C8C13b93955103B9a7C167B67Ef4d568a3","logo_url":"https://dimensiondev.github.io/Mask-VI/assets/Logo/MB--Logo--Geo--ForceCircle--Blue.svg"},{"name":"MASK","address":"0x2B9E7ccDF0F4e5B24757c1E1a80e311E34Cb10c7","logo_url":"https://dimensiondev.github.io/Mask-VI/assets/Logo/MB--Logo--Geo--ForceCircle--Blue.svg"},{"name":"NEST","address":"0x04abEdA201850aC0124161F037Efd70c74ddC74C","logo_url":"https://s2.coinmarketcap.com/static/img/coins/64x64/5841.png"},{"name":"Yes KYC","address":"0x14de81C71B3F73874659082b971433514E201B27","logo_url":"https://etherscan.io/token/images/ykyctoken_32.png"},{"name":"cWBTC","address":"0xC11b1268C1A384e55C48c2391d8d480264A3A7F4","logo_url":"https://etherscan.io/token/images/compoundwrappedbtc_32.png"},{"name":"DANK","address":"0x0cB8D0B37C7487b11d57F1f33dEfA2B1d3cFccfE","logo_url":"https://etherscan.io/token/images/dank_32.png"},{"name":"DSCP","address":"0x03e3f0c25965f13DbbC58246738C183E27b26a56","logo_url":"https://etherscan.io/token/images/disciplina_28.png"},{"name":"GEE","address":"0x4F4f0Db4de903B88f2B1a2847971E231D54F8fd3","logo_url":"https://etherscan.io/token/images/geens_28.png"},{"name":"FKX","address":"0x009e864923b49263c7F10D19B7f8Ab7a9A5AAd33","logo_url":"https://etherscan.io/token/images/knoxstertoken_32.png?v=2"},{"name":"N0031","address":"0x075190c6130EA0a3A7E40802F1D77F4Ea8f38fE2","logo_url":"https://etherscan.io/token/images/nestyfi_32.png"},{"name":"NFC","address":"0xb0866289e870D2efc282406cF4123Df6E5BcB652","logo_url":"https://etherscan.io/token/images/nofaketoday_28.png"},{"name":"O3Swap","address":"0xEe9801669C6138E84bD50dEB500827b776777d28","logo_url":"https://etherscan.io/token/images/o3swaptoken_32.png"},{"name":"QTUM","address":"0x9a642d6b3368ddc662CA244bAdf32cDA716005BC","logo_url":"https://etherscan.io/token/images/qtum_28.png"},{"name":"REMI","address":"0x13cb85823f78Cff38f0B0E90D3e975b8CB3AAd64","logo_url":"https://etherscan.io/token/images/remiit_28.png"},{"name":"REDC","address":"0xB563300A3BAc79FC09B93b6F84CE0d4465A2AC27","logo_url":"https://etherscan.io/token/images/redcab_28.png"},{"name":"SBTC","address":"0xfE18be6b3Bd88A2D2A7f928d00292E7a9963CfC6","logo_url":"https://etherscan.io/token/images/Synthetixsbtc_32.png"},{"name":"TPT","address":"0xC596bD09d652827b0106292D3e378D5938df4B12","logo_url":"https://etherscan.io/token/images/009-TPT-Teleport-Token-Coin-Logo.png"},{"name":"TRL","address":"0xCed1A8529125D1bD06B54a7B01210df357D00885","logo_url":"https://etherscan.io/token/images/giraffage_28.png"},{"name":"UPX","address":"0x5f778ec4B31a506c1Dfd8b06F131E9B451a61D39","logo_url":"https://etherscan.io/token/images/udap_28.png"},{"name":"WYV","address":"0x056017c55aE7AE32d12AeF7C679dF83A85ca75Ff","logo_url":"https://etherscan.io/token/images/wyvern_28.png"},{"name":"VDOC","address":"0x82BD526bDB718C6d4DD2291Ed013A5186cAE2DCa","logo_url":"https://etherscan.io/token/images/vdoc_28.png"},{"name":"rSAI","address":"0xea8b224eDD3e342DEb514C4176c2E72Bcce6fFF9","logo_url":"https://etherscan.io/token/images/redeemabledai_32.png?v=2"},{"name":"ALICE","address":"0xAC51066d7bEC65Dc4589368da368b212745d63E8","logo_url":"https://bscscan.com/token/images/alicetoken_32.png"},{"name":"BP","address":"0xACB8f52DC63BB752a51186D1c55868ADbFfEe9C1","logo_url":"https://bscscan.com/token/images/bunnypark_32.png"},{"name":"DOGGY","address":"0x74926B3d118a63F6958922d3DC05eB9C6E6E00c6","logo_url":"https://bscscan.com/token/images/doggy_32.png"},{"name":"DCH","address":"0x14ACe3d3429408bFA8562099A253172913AD71bd","logo_url":"https://bscscan.com/token/images/dechart_32.png"},{"name":"FRANK","address":"0x129e6d84c6CAb9b0c2F37aD1D14a9fe2E59DAb09","logo_url":"https://bscscan.com/token/images/frankenstein_32.png"},{"name":"RFOX","address":"0x0a3A21356793B49154Fd3BbE91CBc2A16c0457f5","logo_url":"https://bscscan.com/token/images/redfoxlabs_32.png"},{"name":"FOR","address":"0x658A109C5900BC6d2357c87549B651670E5b0539","logo_url":"https://bscscan.com/token/images/forceprotocol_32.png"},{"name":"TPT","address":"0xECa41281c24451168a37211F0bc2b8645AF45092","logo_url":"https://bscscan.com/token/images/tokenpocket_32.png"},{"name":"UNCL","address":"0x0E8D5504bF54D9E44260f8d153EcD5412130CaBb","logo_url":"https://bscscan.com/token/images/unicrypt-uncl_32.png"},{"name":"UNCX","address":"0x09a6c44c3947B69E2B45F4D51b67E6a39ACfB506","logo_url":"https://bscscan.com/token/images/unicrypt_32.png"},{"name":"WOOP","address":"0x8b303d5BbfBbf46F1a4d9741E491e06986894e18","logo_url":"https://bscscan.com/token/images/woonkly_32.png"},{"name":"ZIL","address":"0xb86AbCb37C3A4B64f74f59301AFF131a1BEcC787","logo_url":"https://bscscan.com/token/images/zilliqa_32.png"},{"name":"PBTC","address":"0xeD28A457A5A76596ac48d87C0f577020F6Ea1c4C","logo_url":"https://bscscan.com/token/images/ptokenbtc_32.png"},{"name":"FUSD","address":"0x3c5959b568896393","logo_url":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGYAAABkCAYAAAB0F0VpAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAaGVYSWZNTQAqAAAACAAEAQYAAwAAAAEAAgAAARIAAwAAAAEAAQAAASgAAwAAAAEAAgAAh2kABAAAAAEAAAA+AAAAAAADoAEAAwAAAAEAAQAAoAIABAAAAAEAAABmoAMABAAAAAEAAABkAAAAAHl4y70AAALkaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA2LjAuMCI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIgogICAgICAgICAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyI+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjE8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlBob3RvbWV0cmljSW50ZXJwcmV0YXRpb24+MjwvdGlmZjpQaG90b21ldHJpY0ludGVycHJldGF0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+MTAyPC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT4xPC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4xMDA8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KFaK0OAAACAxJREFUeAHtnb9v20YUxx8VJWmLopHRuYi7dGkGFd26hEGXdijgtEPGKP9AbQN1gEy2pwKxATv9B6KMGdok6FyYWbpGQ6cuddGtQCGlKNAfka1+351OoiiKOoqkyGffA+Q7HsnHd+/j9+5ISqRHVZfuQYOo34SZPpF3lWiwijraiNtsJBhu9Bz7HkPHMa1smbbhquoVXuVM6n69SnTBJ6pdh20oFQhUc5cAGjv4PKsiqGqAUTDqa3DSbXxsIwGb5iY9RNJTaAOkr7gsXcoF091fIzoFDA9lZaQHS9pInw9o5d5xWVYtH4weM1qAsV5gmsrJnwNEjwdAyx+Tlgumu7cDjwGIGrxzct5S1AQ4yu4yAS0HjEpZdFD9CJkHmSPoZHMZKa5YMHpQf4ju+vO6LGg9j0Gc3naKtLk4MN29DRi+jU+jyA6UqLuDDHCHVu6izF/yB6MH9ycw1c/f3EpqRGrbOszbsnzBdO83MYs5gpGNvA2ttj4eey4iejZ7edlZy0sRde+3AOUF9J0zKOxBPg/rH5EaU3k5u+QTMd09zLhoI7s54jUgYgY38hh3soPp7mPWNWiJd2l+HcgFTrZU5qDE4WyolK5Se9xqu7bFI8ZBmefhTJGzGBgHZR4Us35hOOnB6NkXn807sfMA4PQ/SHsZJx2Y7p4PW/g8xUk6D3SI6pit2Z/n2A/+eo7OZ/RO0nugiYuffEphLfZgqM5QGtaa3YYRD+CUIsVMzQ6Mvo8C6k6yecA7sL06MB+Muv6lrhJns8ntzR5AxqlbTZzmgyHPSpHzu7UHfNK3RBJ3SJ6VaQWpBq3Eo7mVxgM9RM67SbO02RGj7qu4FGY8mXOJlNbfTtI5Gwz1N7AjFDgpyAMbSROBeDA6WtYLMsipHXng4syoiQfjomXkumIrfG7DXwmelmkwLlqmvVRoS3zUTM/KhM/Edl77iNYvf0gN73Kh7oxT7vX245rntcXO0KYjRn11dZ6uaq4/eP0GbQNMGVAyeIRnaK3o/pNg1Fl+YT97iB471+XV2hXaQKQIldtRuyfBUE3sTGy19la0b5KWm7jA2QwbHAEzWAuvlFTniJEt3kTUjMFoYsh3MuV6/R2Zho+t9sdV/J5uvDBJbNxe/Vrr0jVqXXq/+oYmW4h0Nj6nCYEhP3m/aq3lmZePKHn4xqf4fFIt4xa25oJvdq2bCsqJwSfUblVlJx29ectqW7fRLA/UrmNNm9fqiNFfsuBlJ6V6YDAKDpPK/FLtyXjwl/QffUzf0pcUZNRU+u5RMPxgA5nCUD6n7+kn+oMe08/y4Qyz1zBiZJ7th6GYfyv5cDQLsaksDsrZgOOtcj8MGK6LkSQophNyI0cPK7XoNRrTsaqWNlCM7TLhjFKZJ+YyTBoosuEISmWLQBEKRwWKiDEmCxSBcNS5TOXB5AFFIByZszLj6LNcVj5irtAl+o4+o2v0dmYOt+g9+ob8zHqWoaDyYNgJecARBKXDfRYBJiscQVC4qz3+AzADVeGFqssikSMMyghBLY/Ha4y0LaGSBo5MKN4xu1FMKgszt4EjEwr3cvAr/zVgAl6QJElw5EJhAvzQ7hEYHT7cIEni4MiGwt6fSGU6fCRBMbaG4ciHgl4NHyVsviUToGnbdFZayXB+oC+kmR1nrzqH4RV6jCnhgc9xVrk2bwTGRAz7hBub0p1zfPon7f7zIx2fvqSg/5uw7pw+NwaHwTyTDqZz8jvd+Osx9Qb/mv4JK08CY7CZLmOZn4QqWzb/PhIMBRkr9JKHMRj9YOeeZDTyUteEt4Pw0hiMalXvUAmvF1OXm76MiwePTI3LCJjTB+GVkurCowVpbPJR9JNg1Ep5VwE4WngmJlgmooX7MQlG9WwgKmo4UngmxjMyoYJxvd6O2u5FG0i/NOEXtDem1rmGAjzgtfFetDtRxdMRox+oKSpqop2StfxqN87eaTBqq/ohCtFT57jOVq+No+XecZxd8WBc1MT5qoC2+GjhA8WDUSa4qCmARFjl4axo4Y1mg9FRE5v/wtpdfSEP8Ews0bezwfDx9CueOgsd2u2U5IHdpOdh8o7JYJRqvCDNSZ4eCGzeaTYfjL5UkBh2eVp9xnUhhfWt/tE9a0d0915g26b19m7DGA+o1zO2Y1ZMNc2PmNEu/ZuogriTxTzA5yx327b72oPRJ0IMx0l6D2ACdWEzzW72YFir+tKGmwykcTC25XHl5rxZWFRnOjC8twpHhKUTGw8ACr9+Mf6yS5IC+8E/qsW9pyzqkejyEMrkDbDoRrOW00eM0aQuVbvIMe6IlIDi3YnelYxsk7i4eMQYtS5yjCdMmSlSjJLFI8Zo0Dd5Ds3iOS9zgcI+zA6GtaxsYSp47mdrHcy+8FrFxcYUdmNYsqeysDb1JFr32viwSxat5wuGrdDfGXiCms+L50A2bS5KpvVD/mCMBfrlDfzTjoZpOmMlUpe69oUyfykODNuqniOs3mLn5296aRp7OPIDRMlOkRYUC8ZY3t1fQ/UA/2GrpklmyV+8P0HqSn8mn7a/ywFjrNIvOl3HYsM0CSkD2Im7jltcLkWWC4a7pCcHLZwZA1DVI4gjxOO0FbDpy5Tlgwn3TqW409voPKe6qkgPhrRxTgIgxaesWZ0uF4yxSk8SGA4glXKXFDDUT1Ce4euqT41ZZZbVABP2gEp1rwBJPefeLzDdBTjsc3yCMlIVjpso1QMTNVePSU00+/ivvjoE1cAyt9lIMNwIEPipE/iZSQljho2h4W3+B67PJplkPQvfAAAAAElFTkSuQmCC"},{"name":"FLOW","address":"0x1654653399040a61","logo_url":"https://swap.blocto.app/static/media/flow-logo.7d05ec26.svg"},{"name":"tUSD","address":"0xcfdd90d4a00f7b5b","logo_url":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAOxAAADsQBlSsOGwAAIABJREFUeJztnXl8XNWV57/3vtpLu2TLkmVLli1vGGOTAHawTSAsWQmQpjvLZ0K2SSY9oZPJ5EN38sknC52Z8Ml0mkxPlk4YsieE7pCEZSbsE8dAbDAGbLCNd8mWra2kkqpKtb337vzx6pVqs1CVqmTZ0s8Iqape3XeX3zv3nHPPPVeg7lDMY85CnusKzOPcYp4AcxzzBJjjmCfAHMc8AeY45gkwxzFPgDmOeQLMccwTYI5jngBzHI5zXYHKQQEKDY163DTgp5kqGvFRgwcvLtxoKMBEEUcnQpwg4wwwziAhhokSJpkqT5zDtlQOFwgBrOWMKpy0UE0njWyglWtZySaW4sOVc61A5gyoRRfr/wKRfn2SUZ7iMM9ylP0M0cMIg4yjY3IhkEKcv4tBConAi4PLWcwXuY6rWY4EZIVmNjM16GHifJsd/IRdDBAhjlmR+80EzkMCKJxI3s8GPscWltFAHV4AxAw9kSolcQwUpxnleU7yVf7IfoY439Sq84YAAsUW2vkMW7iWLurxUsqQR/UEhircZLd04NS0ouumUpTYQy+PsJ/v8SxDxIou51xg1hPAheQ6VvBf2MrVdOXP3UpZU7ECXZmEk3HG9QThRIwToQBHgwOcGR+jNxK03k/GMU2z4PTtlg68ThdNniqavTV01DTSWdNEs7+WKqcbv8OFx+G06pD6fi4FFYpRYnyPZ/kxuznGMLNZV5i1BHAh2UQbP+ODLKUua+CVUilVDsb1BIFYhO5QgKOjgxwY6ePY6AA9oWGiepKkYaAECIcGQoA5yXwtBAiBMgyUYeIQEpfmoM7tY0XdQlbVN9NZ00RHTRNLquqp8/iQSiCFRYhMMthS4W62czfP0MsYs5EIs5AAiiY8PM6nuJgWNES6Y1VKQ9eVyelwkMPBfp7vP8HR6DDHhwcYiIySzBxgpUBZ4woCpRSpPwvfObcn7ItF6kMh8GoOltYvYHl1E+vqWljXuJjVDYuodnlS98qXCDGS3MXT3MlTzDYdYVYRwIvGPdzKLazDgyNPvBrK5GhwgCdPHuDZvqOcTkQYGgtioiyxrlT+IBaArcTlYioahRACIQUo8Hu9NHj8rKtZxJbWFWxbvJJGj/+s9zxKgI/yG56hh9kiDWYJARRvp4tv8i4uoSXjiQeUQgjBYDTMD/f9icd69jNixDB1AwkYpsJUJhLBxMSQW/r0mpgpgSQCE6tOUljSSTkkbs1Bh7ee/7BmE+/uWI9Lc6TbYNfIrse9PM8/8H8JzAJF8ZwTwI3ky7yNL/G2rHneUCaGaXIqMsJDx/fy8/3PMo4JholQKeUvA9Md5GKQKymksMinUpLh4sbF/KeLtnF5yzK8Dpc1jYlM/QCOEeAT3M+fOMG5lAbnkACKOjwc5g4a8OcN/ulIkO2nD/Pbwy9yJDyEHk+epZRzK8AKThuaRFPw9mUXc2PHei5dsNTSEXJgYPIpHuAn7D5nrqRzRoCtLOVBPkod3qxOTJgGO3oP8cDRl9g91EMoHgVT5T3xcO4H30YuCWylU3M6aPXW8Pb2i7hp2QY6axdkXWdbCts5yju5l9g5oME5IcDHeRN3cyPVZD8VfZFRfvn6Lh49fYDeYACBwFRmSj2fmIdnM3ItFiEFHqeLi+pb+NjaK7mmbXW6Dfa1JordnOQWfkYv4Rmu74wSQPElruJO3oGWYw69PtzHt/Y8xu5AD8lk0tLqU1W0vjm7Bz4TIkPtA8tyUECtr4oPdr6ZT6zbis/pzPMbHGGId/MTDjHETOkFM0YACXyGTdzNTen53kzZ5XsDp/j6C/+H14Z6keTb4+fT4GeikLKoed28q2U1n7/0ehZ6q/O+00+IK/gXuhllJkgwYwT4OzbxHW5ON8lUCt002N57iG+9/DinwkEwjNRcL87bQS+ETCJIKZAOjW3NK7j9kmtYWd+MzLESTEw6uStFgspiRtxSX2Ibd3NTlmAMJWP87ugevv7CI5wKjYBhXpCDD9kSzDBNDN3g6d6DfOvFR3l58GTe9RLJLm5nGXUVr1vFCfBxLuVO3pEW+woIxsf56f7nuPuVpwhEw2BODP6FikzFT5mWL2Nn3zH++55H+fPpQ3nXN1PNH/gwTeSbj+VEBQmg2MpS7uamtMJnKkU4EeNXB3fyq0O7CMVjKNPMmvMvtKc/ExNtE2mzdv9QL9/c8xi7+o/lXX8xrTzIRyh+gXrqqBgB6vHwIB+lGjdgee50ZfJ4z2vcd+QFwsk4hmmQqeVfyINvI48ESnF8ZIC7XvgjrwydzOoDgWAzHdzD+yo2UBUp143kEH+fjtQByxTa3X+C7+x9muHYOKZhZNnMcwkTZBcoBZqQHBjp4+6XnuRYcBAzhwS3cRnvpqsidakAARRf4W004svSfo+ODvJPLz/BUGrOPx/t+0rBVJbPY8/QSX5+cCcjsfGszwXwG25jNY1lv3fZCXADK/gHrsl6urvHAnxl10McGDmT0vZJfzaXkS0JFAlD55GeV/nd0T3W52pCcfTi5B5uxV3mIStraV4kd/HurKjcsUSM7+59mt2D3QhjbszzpUAgwFSMJ2L8eP+z7Dh9GMh+SN5CO19gG5SxD8tIAMU93Mp6WrLefeT4K2wfPI5m2qJuXvTnIqsvTMVIIsrXdj5EbyQIGUvfEslXuI5mfGW7d9kI0ISHW7g4w95X7B06xf1H9xAKhzAznDzFDH6hVcDzAUoVXsE86/WpPlGANBW9eoR7XttBUhlZXkInGr/mQ2WrZ1kI4ELyOJ/Cw0QUTDAe5ffHXuL46GD6umKfersDTWVF/Vi/Z/uPmbGQVRyB7f4xlULGdZ7oPcgTPQcw1ER5AsEWOtnCEsoxFZRla9gm2ljHIsvLhcIwTZ7vO87Tp15Hz/DvlwKFotblpdlXM6V4v3OKVPxoTNc5HRlBt4NQS4CpFMFohD8ce5l1Da2010xYAE4kD/ExWvlvxNCnVeVpE8CF5Ke8H0eGMIkkEzzSvZfBWHhaIlwIgWGYbG3t4lMXX5XlRJmNUFgitTcS5O+feYCR+DgOWZyQteMIAJRp8krgFDtOH2aRvxaXZsdIC+rwchUdPMZhptMf0ybA9axgKfXpSgsEO84c5pn+4yk3r0pLhlKgBPidblY3tJA0psf2SkNhOXUMZVp7BUptc4oESkE4GefJ3oNctXglrVV1aGKin3/BB2jlG+jTmAqmRQCB4nNszQru0JXJD/dtJ5qIgWlOKdR6ckxQxyEtr3hu7P1sgR3fUL7aKZRp8FJ/N8+eOcqtXW+y9INU+xvxczPr+Hf2lXyHaSmBW2nn6hwX5Y7eQxwOBxDm+RPGNRuRDnFXgqSEx0/uJ6on04MPIBH8LVfANGIJp0EAxWe4MovtET3BPa/uSC3v2lfND/50oJTCTOjs7DvGrv7j1nsZfXoVK7iERSWXXzIBnAiuoSs1V1k27/N9xzgcGkScv9vlZy1MAfe9/jxJ08ibVm9na8nllkgAxQfYSEPKIyWEIG7q7Dh9mHFTn6U6+vmHLOmpm+waOMGB4TNZ1wgEb6UTMEq6R0kEkAg+y5b0a1MpekLDvDjQg5lInrfeu9mOpDK4//ALee8vo5EtLKMUq6MkAnhx0EHDhOkn4PBIP8MqjhQSO79OOed/e5pRmX+X+POG9yi1XLt+ZWt1RihZSqzu7j/BWCJ7T6EAvsy1lGJ/lGAGKi6nNZWhw6pgJJngpcBJgmmffxmhJraH60ohSihfCJG2n6d0S6zgzWKhUDiEtKJ8i/72G5StQOkG/dEQO3oP8c6Oi4HUbmUEG2nFhSRRpEVQkh/gDq5N/y0QBGJhjoWH0Q0TU5XD9p+AEBCIhXnuzNGSJIqpFI0eP6vrW7JMqMkwloiyb6iXot0NqfwA/eNj6GXxgWRDExLdIXk10Mt1S9filBPRgnX48OAgQaKoMosmQBVOrs2w/ZVSnA4H6Q0NpzusXKJfKYUmJM+eOcIrQ/nh028EgSBmJNnW2sU3r3wfbm1qzT02OsgXdvw7mixuAFUqW42uTMJ63No1nNrePh1kuoeNRILXR/oJxCIs8temr3EiuZE1/JKXKWYqKJoALVQjyd7X1hMe5szYCKZhUroD9OyI6UlieuHdwZNBCkFUTzKWiBVFyoRpEIiFkGJ2ZfNQKIQSnNEjnI4EafbVZJHr07wlRYCpo2gCLKORTIbFDJ2e8AiJ1JJlOQe/bC7fyfLCTPKl2eRyVljZT5xSMm7qDEZDWVOaQLCJdqpxEypiGiiS4oqNtGTt5Y8mE3SPBdIb+mYqV99chEBgmorx6DinwiMk8hbHFC3k7zecDEUT4BpWZr0TM5KcDA1TvMZUPhQy7wSWv8JO41IMrAUdcdaFnWKjfcoF27Qej8foDg0TM/S8qa2N2rN8uzCKIoCGxiaWZL0X05MMRkNF3bRYZHZ2bucLrLneVrgM0yRpGsQNnXEjybieSOkPUx8wwzQZ1xNE9WQq1ZyObhrpRFT2/dJ7HXPqVEly2KF1o2aCeI4EEAiWU19UeUXpAPW4qcrZqxaIR4gZyQI51qaHdEh0AcliRR0ZGKbCSIVhSSGpc3up9/iodnrwO93UuX2YSrFpUSdaEQpdi7+Om5ZvIGkaJE2DkViEmK4zHI8QSkQJJqLWVm8h0ZBoUlgOsByNf7I2lAohBEpYcQLhZIwF3qqJzxB00lRUeUUSID8F2qnwCEmjND/02WAHkQiR2lJmGiSVZWFoQuLRnHQ1tNJZ08TyuoUsqaqnxVeL1+nC73RR4/TSHx3FVIqEYaQcQVMnQLXLw03LN9Lqr8VUVkiaJiRhPU40mWAsGeNUeITu0QAnQgH2D5+mNxy0iJnKWObUtPQ9zTISwSZVJBmzHrwcrKEZa3l4au0tigDN+PPmxGB83ApanOby78QmCEukm0oRN3Rc0sEify0d1Y1sbl3BJY1tLK6qT8ceHhsb5ExklL1Dp+iNBOkeCzASGydh6pjKEuXbWlfy3as/iEdzTqkuh4P9/O3/+xUezYkU4NIcOISko6aJJl81y6obWeSv5aolK3mfuwqnpjGWSk27u/8EL/Qfpz8SYiQ+jhQCl6alXdgwPSIIq7MIxWKEE/G8zztoKKq8ogjQiA8ThZZBg6RhTFv6Z82fKJzSwdLqBjY0LWF9Uxtddc1IIXgt0Mufew9xfGyII6MDnImMEjeS2Pn9hSBloVjSQwpJTLcDpqbe6UIIDGUS1S1zKpTq6L7xsVTy0Yn61ri9LK2qZ0VdM501C9jS2sXfdF3GUCzM/uEzvDTQzauBXkbiUSu/IOUhwtnWWlqpLqqtRRGgBk9e0QPREGoa3p/MwdeEZG1jC+9MpVaLGkn2DHTzyEt7OT4WYGB8lLipW3OvkEghrKf6LB1pTRmiJANFItBSAZ0Ft2en6h3Tkxwc6eO1wGmEEKkI5lrWNrSwdXEXt294GyOxCI91v8aTJw8wHAunHUylegmVqYgkYoST8SwvIUAdHlxoU14TKIoA1skb2RXOt0VLgxSCt7ev4z+u20pHbRP3HdzFb4+8SPdYgLihI6Q1ID7pyuJaOv/vWVApfdwu17IINJxSQykrefWRYD9HRwf4U+/rXNbcwScu2srnNl7LltYu/vmlxzk2OoRTytLrJqzpMaYn7RTGaTjQ8BRBgKLMQFcBvpRFsUGxtLqBD6y6nJX1zcR1nR+9uoPDwQEMFJqUaYUqt9POlbdOiJy8PsoSyUJYRNWkJKYnebJnP492v4rP4eKG9ov40KpNuDSHHfFXETiLeK6n7eyers1rd2KNy0ud24ow8jtdvGvZxeimgW4YBVfxinHGqIzfk8YT5H5hKmWriXbYbRFCQEoaNPtq2byoE4/mRJOS1qo63PYq3nTIq6bf91DkFGAUECvOlIZbalPsXUMHh/v406mDNHnfTIPHz+c3XsclTW08cHQPh0cGGEtESZh6nlcvPY/au49yKmJ785SaUJqsK7Oz+WVuOpl0XGyZm0GYzABYgcDvdFPj9LClzVII1za0oIDe8Aj3vb6LYCKK1+G0wshLIoHA53Thd7oL9rtZRExAUQQotA2p1V+HxnQCk60Bips6P9i3nZ7QCDev2MjymgW8o+Niti1exevBPvYMdHMsOMjpSJBTkSChRIykaWAqk6RppgM4rLMbRPq3FIKhaJgnevbj1CbslyqnG4/mQgormjmSjKc2dgheH+lL+yBs2thPm004h9BwSJk+VKLB42dJdT3t1Y2saWhh44KlLK6yDrroi4zxQv8JfnHwL+wdOoVbc0wrcEYIgdfpxudwFTifAOJFxAcWRYBx4pDzvHs1O+PlNKcCIJyMcf/hF9jVf4xLFyzl8uZlrKpfxJr6Fq5oXkY4GacvMkrf+BihZIzT4SDDsQinwiOMxCOMJWJp5ShuJNFTLt0TYwHu2v1HInoc3bQ6x+tw4ZYOhLBiBmJ6EhOFV3Pi0DRc0oEU1tOsCYnP6UIKQY3TQ7XLw0JfDc3eGlr8tTR4/NS5fbT662j2VeOQGmcio7w0eJJ9g6fY1X+MfUO9jMQjWUvMJVkAWBLHocmC5xtFSVaOAEGiecO8wGs12HYGFbsNTIiJjFm2UD4xFqAnNMxj3a/R4q9jdf0iOmqbWFXfzPLaBbx5YTsep4u4niRp6kT1JAnTIGkYJJVBKB4jlIwS03WC8fE0ZQPxSNpvkK9NWk93tcsaYKXAISUNHj/u1BPukBKPdOKQGm7NgVtz4HE40YRkNBHl+NgQz545wpHRQY4E+zk00k8wPk4yRbrpDn5mXf1ON16HK++jISIYGFTEEzhIJO/QpoW+GityxhQTk2GRsDsj0xsI1krjsdEBDg6fwcCk1uWl1u2j3u1jee0C2msaWNvQSou/jhZfLXUuL06p4ap1TASm2kqa/fqN6oJN4tTfqVgCpVR6kSmcjHFkdJDusSEODJ/h6Nggp0NBQsk4I/EIMT2JSzpwaPmDUA6rRQhBtceL35lPgB6CRZVVJAHCeQpfrctaeIkaydRTVNT9s5C7kKJS77kdVjXjhs6ZcJBToRFeDfRmzPXg1pws9NXQ6PHR6q/HpTnSvvyV9c28s+PiKSmrEsFANMSvX9+FFJKxRJShaJhxPc7pyChj8VhqncEmmErrBbaDyu90YVLeNYB0H6Va4Ndc+Byu9EKYjSNFJpouigDDRFE53ejWHLT46xiMhsvqdcm1sW0zS5PSqnSO1EiYBidDw3SPBditerD1+pie5Pr2tVy3dG16LeBsA2KXdWxskG/veRxNyHTUre1mto+K0QQIu+MnbEEAjIz6lhO2UqshaHR4LR0mZ7APM0DFCBAmSQ9BlmUsOPgcLtqrG9k7eKqYoopCIU1XZHxmewOllGg5n0khcGtOiukUS+lzZ4WST8btCQOycH3LCgFet5slVfW4Hc6cJNOKIwSKKq5oR9BTHMl67XO66axtonJO12wUerJy38t0+JhqKjN/NtLOooyyiq1TpSCFpMrjY2l1Q17yCYUqWgcomgDPkZ3T1ik1Wn21+J2elASc3xZWCdjTkG4Y+JQsmDJHIDjFWFHlFkkAwX4GsjyCUgjaquppralDyErsiZmHDYFAOjWWVTWwyFeb5bFUKMaI0V/kkTNFS4AeglmDrJSi1V9Le+0CEKkz9eZJUFZk9qfmdNJV30y925cnbO9nL3qRPtmiCTDAOCHiE/OqgDq3n+W+BtyaY8rbr+ZRPJQAtym4pGlJwc/v5TmKXZUpmgAGJv/En9OvBQKPw8klC9qo91enbdJ5KVBeCAFKChZ7a3jTwvY8xTNMnP0MTlJCYZSwHCz4Kc/niBrFitqFtLmrMVOm1zzKC9tHcfWS1VQ53XmfjxIr6dzBkuIBBglzJkfbXFxVx4amJTjcE66FeSkwfUz0ocCpBH/d9ea8axSKn/JiweX6N0JJBIijeJ6etB4gEEgEV7etwmdITFHuNAlzExO5FwGnxs3LL6XVn3+QVByd/8l2ip3/YRoRQV/h0awhFkKwccFS3tzcDlJORMfMS4FpQ0hJtcPFezrX532mUOykh6ESTyIvmQAHCPASvXnvf3TNFvyaa/bn9T2PoCRcuWg5axta87yaCvgd+yg1JmsaMYGCh3gt63wbgI0Ll/CO9osQLse8FJgG7LgKoUkaPVXcuOwSvJqD3IEeJcrPebHk+0wrKPT7PMdYjujRhOSvlr+JeqfH3sYynVvMeZimycbGNi5qaM1bzlYofswLjJK/Q2iqmBYBhojxPZ7NEkuGMumqW8gNSy9CczgQQuZtXpjH5LCffikFzVW1vHfZJSz0VuftbzRRqae/9L6ddlj4vezOesbt+LkbO9azrLpxhg6nvXCQ5faVGpsWdnBpc3vB1cb7eJm99E3rftMenuMM8222Z0kBpaCrrpkb2tbid7rTjqF5KTA5MvMuSilpq2ngb7ouo8GdvytbofgqjzHd7SVleD4F/8IzxJjYqiyFoMrp5j2d61nf2IbQZHrlap4EhZG5S0EgMAXc3LGBi5va8jaAKBQPsI/jRa79F0JZBPQpxriLp/NMlCVVDXxk9WaqHZbrcp4EbwwhBMopuXbxaj606gpcUssT/wOE+RC/Lot6XaYZWnAnT3GMQBYJpBBsW7yST6zdAm5ndlj0DJJAKdBTqWOSpkHC0Av/mAYK69qZRObTr6SgzVPLNzbfRJXTXcDuV/wrfyFRJuuqjCqa5CP8puAnt625kmsXrgBHKshyhiWBEBBKRAklY5P+hJMxRuIRNCFmzHjN3qAm8GsuvrDxeurdvnSmlEw8Rzdf56ky3l/dUca2Ku7hFj7OFemK2/PXaCLK5/58Py8MdmNmnCRW0QMlUjGB1S4PS6sbphS3JxCEkzFOjE0EV1Yq3i/zeF0hBLVeP7et3syHV23C73TlDb6J4kr+FzsLeGBLr0NZCQCNeHiev6Mz46Bje5D3BU7zj88/wquBXmtzZYVJkHnuoK6mLtYFZOXhrTQBhACvx8uNHev59EXbWOitLhAJrfgCD/PPPMN0Nf9MlN1KDxDjY9yfdwS6QLC6fhG3r7+aNfUtKV23suah3YmaEOmtXFP5caVyClcq2ldktF0KgeZycX3bGj6+5koW+goP/n76+T47KefgQ4XcNNs5wSf5bd46gUtqbG5ZzifXbWVRTR1KVN4yECLjJsV+rwLIbKcUAuV2cM2iLu7YeD1t/rq8flAoAoyzjR8QK/FUkMlQIT+d4KfsZjv5Kd6dUuPt7ev46pveRa3Lg5kaH5WWCReuiWjvorbdvJrbxXXNK/kfW/+KBo+/4MOdwOAGfshwicu9b4SKOWoN4B3cywucLDjHX922iu9c9QHaqxoQmoaUMivA5EKByPiXfk8IfB4f716yjq9d8R7c0lFwvcRE8XkeZA/9FatfRT31cUxu4WepDYv52Lyok29svonLF7bj0uzl4wkSXEhEAEvSCSmp8/j46+WXcvv6t1rmXoHBVyi+wRN8n12VrVO5rYBCWEkjf+bTNBfIZK2bJoeD/fzy0C4e7XmNSDxmCcqMWlXUVKwgMm18KSTKIVno9nPbqrfw3uWX0OipKvg9heJ/s4tP8fuKt3xGCACKdmo5xheRBYSOiSIYG+e3R17kX/duZxwdaaisNCrnGwmynmgBaJINDW18dsPb2LBgCR4tf2cvWO38Pa/yfn5FcgbaPEMEAIsEdezi9oKSwMaLA93cuesRDkWHIZ5I+womSpm9RCg0oNKp4RCSWzsv5YuXvRNHgaTSNuwn/z/zhxkZfJhRAlhYRh2/58Osp7XAvGcN9Ugswo9e28EjJ/YxHItgmkY6RWuhufJcI9edm/oPt9PFusbFfLDrMq5ZsnrSXMUmim/wJF/jCSZPfVlezDgBwPIWPsRH2Ux7vuabyscfM5Ls7DvGwyf2srPvOIHxEEJKlJHt0TuXBMj05CkFQlo2rSYEXfXNXNXSxc2dG1la04BSFM53iCKBwed5MKXwzazie04IAFb+3Xt4H7dxGYKzm35D0TC7+o/zyIm9vBw4RTA+Tio/S8FEiZUmRG497RxCSIHL4aDNX89bW7q4bula1jS04NYck4r8ISLcwI94qYKm3mQ4ZwQAywZ9F138G7fh4eziUQF9kVEODJ/hyd6DPHfmKH2xEBgmmGriuDqV+73yNK3woKfu55A4HA66/I1ct3Qtb1m0nBV1Cwsu5uTW7QD9bOUHFXPyTAXnlAA2VtHIvdzKZtoLWglgBZtKIYjpSU6EAjzZs58HjrxIXyKSylKpEOaEjpCZIcx+XQyyHTcTr00U2Nm/TMWm5g7e27mRzYs6afRWpc8ommx/pIniDh7mu+wsKqdfJTArCADgRvIFruIrXIsT7SwmkiX27c4NJ+M8c/owDx9/hVeHegmZSZISjGQSUzdwSGkpj0qlc/UXytCZjsEXIms6sr2ThlJoLieaFDgSJov8tbyldQXvWbaedY2Ls04GeaOB30k3/5WH2clJZnq+L4RZQwALioX4uI8PsYVlZydCzpxqKsXpSJA9A90cCvZzfCzAmegYIaETSySIJePEEkmMVGp7WSDDpqmsc4kFApfTicvlwuty40KyQPPQUdPI4qoG1jW2sr6pjVqXd9I6ZbdKMUiEH/AX7uQJzFkw8DZmGQEmsIUlPMzHqcUzZZewbSYGYmECsQiD4yHrdzTEQDTEeDJO2EiinBq5G1aUqfCh4ZUOGr1VNLj9NHmraPD4WeCrptlXgysVI1CMi9pE8SCv8n5+WeSpvjODWUsAUHhxso0OfsEHacSXl6U07xuppzA9/6eWFnRlkjR0DGWim6aV1jYHVgJoK9GjU2o4NQfSNu/ExDSBeuOlYjvF9K94ma/xGMcJzgJvRWHMYgLYUDiQ3MI6Ps0mtrF8UrPxrKVkJHPMNx8ttthrUaUlcbb+jRLnJzzPz3gxtWlj9oj7QjgPCJAJk0tYxGfZxlaWsTwVdnYuVw0Vijg6u+jhAfag1CYNAAABCElEQVTxc3YzSoLZPvA2zjMCTEBgsIVOvsy1bKCVOjw4KX6OLgaZpmSIOKPE+AV7uJs/pfbnnx+DnonzlgCZcCHx4uBm1vFJNnEFS7GHS5tmyIPCMiElglFi/Bt7+TF/4TUGGMdMnc5x/g28jQuCABOwmlKDmxZqaKOGTupZwQJWsZAOGmihOktaTHxTMU6SAON0M8JRhjnKAIcYoocgvYzRRziVHOv8HfBcXGAEmAxmyiiQuJB4cOBKSQcTRQyDOAYGRuo6S9W80FFUtvDzGxPn9CUwSZzVKp/GeX7nIeZ3789xzBNgjmOeAHMc8wSY45gnwBzHPAHmOOYJMMcxT4A5jnkCzHH8f1BFL1d3IEP5AAAEcGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSfvu78nIGlkPSdXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQnPz4KPHg6eG1wbWV0YSB4bWxuczp4PSdhZG9iZTpuczptZXRhLyc+CjxyZGY6UkRGIHhtbG5zOnJkZj0naHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyc+CgogPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9JycKICB4bWxuczpBdHRyaWI9J2h0dHA6Ly9ucy5hdHRyaWJ1dGlvbi5jb20vYWRzLzEuMC8nPgogIDxBdHRyaWI6QWRzPgogICA8cmRmOlNlcT4KICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0nUmVzb3VyY2UnPgogICAgIDxBdHRyaWI6Q3JlYXRlZD4yMDIwLTExLTE5PC9BdHRyaWI6Q3JlYXRlZD4KICAgICA8QXR0cmliOkV4dElkPmRmMjI3YzkyLTY2MmQtNGI5Ny05N2QwLWFiNmQyYThmYjcwZTwvQXR0cmliOkV4dElkPgogICAgIDxBdHRyaWI6RmJJZD41MjUyNjU5MTQxNzk1ODA8L0F0dHJpYjpGYklkPgogICAgIDxBdHRyaWI6VG91Y2hUeXBlPjI8L0F0dHJpYjpUb3VjaFR5cGU+CiAgICA8L3JkZjpsaT4KICAgPC9yZGY6U2VxPgogIDwvQXR0cmliOkFkcz4KIDwvcmRmOkRlc2NyaXB0aW9uPgoKIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PScnCiAgeG1sbnM6ZGM9J2h0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvJz4KICA8ZGM6dGl0bGU+CiAgIDxyZGY6QWx0PgogICAgPHJkZjpsaSB4bWw6bGFuZz0neC1kZWZhdWx0Jz7mnKrlkb3lkI0g55qE6KSH5pysPC9yZGY6bGk+CiAgIDwvcmRmOkFsdD4KICA8L2RjOnRpdGxlPgogPC9yZGY6RGVzY3JpcHRpb24+CgogPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9JycKICB4bWxuczpwZGY9J2h0dHA6Ly9ucy5hZG9iZS5jb20vcGRmLzEuMy8nPgogIDxwZGY6QXV0aG9yPkhzdWFuIExlZTwvcGRmOkF1dGhvcj4KIDwvcmRmOkRlc2NyaXB0aW9uPgoKIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PScnCiAgeG1sbnM6eG1wPSdodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvJz4KICA8eG1wOkNyZWF0b3JUb29sPkNhbnZhPC94bXA6Q3JlYXRvclRvb2w+CiA8L3JkZjpEZXNjcmlwdGlvbj4KPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KPD94cGFja2V0IGVuZD0ncic/PolbVtwAAAAASUVORK5CYII="},{"name":"AVAX","address":"0xb31f66aa3c1e785363f0875a1b74e27b85fd66c7","logo_url":"https://raw.githubusercontent.com/sushiswap/icons/master/network/avalanche.jpg\'"}]'); +;// CONCATENATED MODULE: ../plugins/EVM/src/state/Hub/hub.ts -const DEFAULT_LIST_HEIGHT = 300; -const SEARCH_KEYS = [ - 'token.address', - 'token.symbol', - 'token.name' -]; -const Placeholder = /*#__PURE__*/ (0,react.memo)(({ message , height })=>/*#__PURE__*/ (0,jsx_runtime.jsx)(Stack/* default */.Z, { - minHeight: height ?? DEFAULT_LIST_HEIGHT, - justifyContent: "center", - alignContent: "center", - marginTop: "12px", - children: /*#__PURE__*/ (0,jsx_runtime.jsx)(Typography/* default */.Z, { - color: "textSecondary", - textAlign: "center", - children: message - }) - }) -); -const ERC20TokenList = /*#__PURE__*/ (0,react.memo)((props)=>{ - const t = (0,locales/* useSharedI18N */.B)(); - const account = (0,useAccount/* useAccount */.m)(); - const currentChainId = (0,useChainId/* useChainId */.xx)(); - const chainId = props.targetChainId ?? currentChainId; - const trustedERC20Tokens = (0,useTrustedERC20Tokens/* useTrustedERC20Tokens */.d)(); - const { value: nativeToken } = (0,useNativeTokenDetailed/* useNativeTokenDetailed */.J)(chainId); - const [keyword, setKeyword] = (0,react.useState)(''); - const { whitelist: includeTokens , blacklist: excludeTokens = [] , tokens =[] , onSelect , FixedSizeListProps , selectedTokens =[] , } = props; - const { ERC20 } = (0,constants/* useTokenListConstants */.HQ)(chainId); - const { value: erc20TokensDetailed = src/* EMPTY_LIST */.rP , loading: erc20TokensDetailedLoading } = useERC20TokensDetailedFromTokenLists(ERC20, keyword, nativeToken ? [ - ...trustedERC20Tokens, - nativeToken - ] : trustedERC20Tokens, chainId); - // #region add token by address - const matchedTokenAddress = (0,react.useMemo)(()=>{ - if (!keyword || !(0,utils_address/* isValidAddress */.At)(keyword) || erc20TokensDetailedLoading) return; - return keyword; - }, [ - keyword, - erc20TokensDetailedLoading - ]); - const { value: searchedToken , loading: searchedTokenLoading } = (0,useERC20TokenDetailed/* useERC20TokenDetailed */.k)(matchedTokenAddress ?? ''); - // #endregion - const filteredTokens = erc20TokensDetailed.filter((token)=>(!includeTokens || includeTokens.some((0,utils_address/* currySameAddress */.DC)(token.address))) && (!excludeTokens.length || !excludeTokens.some((0,utils_address/* currySameAddress */.DC)(token.address))) - ); - const renderTokens = (0,uniqBy/* default */.Z)([ - ...tokens, - ...filteredTokens, - ...searchedToken ? [ - searchedToken - ] : src/* EMPTY_LIST */.rP - ], (x)=>x.address.toLowerCase() - ); - const { value: assets , loading: assetsLoading , error: assetsError , retry: retryLoadAsset , } = useAssetsByTokenList(renderTokens.filter((x)=>(0,utils_address/* isValidAddress */.At)(x.address) - ), chainId); - const renderAssets = (0,react.useMemo)(()=>{ - return assetsLoading ? src/* EMPTY_LIST */.rP : keyword ? assets : [ - ...assets - ].sort((0,token/* makeSortAssertFn */.Si)(chainId, { - isMaskBoost: true - })); - }, [ - chainId, - keyword, - assetsLoading, - assets.map((x)=>x.token.address - ).sort().join(), - ]); - const getPlaceHolder = ()=>{ - if (erc20TokensDetailedLoading || assetsLoading) return /*#__PURE__*/ (0,jsx_runtime.jsx)(Placeholder, { - height: FixedSizeListProps?.height, - message: t.erc20_token_list_loading() +class Hub { + getOptions(initial, overrides) { + return { + chainId: this.chainId, + account: this.account, + sourceType: this.sourceType, + currencyType: this.currencyType, + ...initial, + ...overrides + }; + } + async getFungibleTokensFromTokenList(chainId, initial) { + const options = this.getOptions(initial, { + chainId }); - if (searchedTokenLoading) return /*#__PURE__*/ (0,jsx_runtime.jsx)(Placeholder, { - height: FixedSizeListProps?.height, - message: t.erc20_search_token_loading() + const { FUNGIBLE_TOKEN_LISTS =[] } = (0,constants/* getTokenListConstants */.Hi)(options.chainId); + return web3_providers_src/* TokenList.fetchFungibleTokensFromTokenLists */.no.fetchFungibleTokensFromTokenLists(options.chainId, FUNGIBLE_TOKEN_LISTS); + } + async getNonFungibleTokensFromTokenList(chainId, initial) { + throw new Error('Method not implemented.'); + } + async getGasOptions(chainId, initial) { + const options = this.getOptions(initial, { + chainId }); - if (!renderAssets.length) return /*#__PURE__*/ (0,jsx_runtime.jsx)(Placeholder, { - height: FixedSizeListProps?.height, - message: t.erc20_search_not_token_found() + try { + const isEIP1559 = resolver/* chainResolver.isSupport */.VU.isSupport(options.chainId, 'EIP1559'); + if (isEIP1559) return await web3_providers_src/* MetaSwap.getGasOptions */.v0.getGasOptions(options.chainId); + return await web3_providers_src/* DeBank.getGasOptions */.Cy.getGasOptions(options.chainId); + } catch (error) { + return web3_providers_src/* EthereumWeb3.getGasOptions */.yR.getGasOptions(options.chainId); + } + } + getFungibleAsset(address, initial) { + throw new Error('Method not implemented.'); + } + async getFungibleAssets(account, initial) { + const options = this.getOptions(initial, { + account }); - return null; - }; - return /*#__PURE__*/ (0,jsx_runtime.jsx)(entry/* SearchableList */.xV, { - SearchFieldProps: { - placeholder: t.erc20_token_list_placeholder(), - ...props.SearchTextFieldProps - }, - onSelect: (asset)=>onSelect?.(asset.token) - , - disableSearch: !!props.disableSearch, - onSearch: setKeyword, - data: renderAssets, - searchKey: SEARCH_KEYS, - itemRender: getERC20TokenListItem(trustedERC20Tokens, searchedToken ? [ - searchedToken - ] : [], searchedToken ? [ - ...tokens, - ...erc20TokensDetailed - ].find((x)=>(0,utils_address/* isSameAddress */.Wr)(x.address, searchedToken.address) - ) ? { - from: 'search', - inList: true - } : { - from: 'search', - inList: false - } : { - from: 'defaultList', - inList: true - }, selectedTokens, assetsLoading, account), - placeholder: getPlaceHolder(), - FixedSizeListProps: FixedSizeListProps - }); -}); + // only the first page is available + if ((options.indicator ?? 0) > 0) return (0,src/* createPageable */.LI)([], (0,src/* createIndicator */.sz)(options.indicator)); + const providers = { + [src/* SourceType.DeBank */.PO.DeBank]: web3_providers_src/* DeBank */.Cy, + [src/* SourceType.Zerion */.PO.Zerion]: web3_providers_src/* Zerion */.KN + }; + const predicate = (0,src/* createPredicate */.Km)(Object.keys(providers)); + const filteredProviders = predicate(options.sourceType) ? [ + providers[options.sourceType] + ] : [ + web3_providers_src/* DeBank */.Cy, + web3_providers_src/* Zerion */.KN + ]; + return (0,src/* attemptUntil */.Ck)(filteredProviders.map((x)=>()=>x.getAssets(options.account, options) + ), (0,src/* createPageable */.LI)([], (0,src/* createIndicator */.sz)(options.indicator))); + } + async getNonFungibleAsset(address, tokenId, initial) { + const options = this.getOptions(initial); + const providers = { + [src/* SourceType.OpenSea */.PO.OpenSea]: web3_providers_src/* OpenSea */.Nn, + [src/* SourceType.Rarible */.PO.Rarible]: web3_providers_src/* Rarible */.e8, + [src/* SourceType.Alchemy_EVM */.PO.Alchemy_EVM]: web3_providers_src/* Alchemy_EVM */.de + }; + const predicate = (0,src/* createPredicate */.Km)(Object.keys(providers)); + const defaultProviders = options.chainId === types/* ChainId.Mainnet */.a_.Mainnet ? [ + web3_providers_src/* OpenSea */.Nn, + web3_providers_src/* Alchemy_EVM */.de, + web3_providers_src/* Rarible */.e8 + ] : [ + web3_providers_src/* Alchemy_EVM */.de, + web3_providers_src/* OpenSea */.Nn, + web3_providers_src/* Rarible */.e8 + ]; + const filteredProviders = predicate(options.sourceType) ? [ + providers[options.sourceType] + ] : defaultProviders; + return (0,src/* attemptUntil */.Ck)(filteredProviders.map((x)=>()=>x.getAsset(address, tokenId, options) + ), undefined); + } + async getNonFungibleTokens(account, initial) { + const options = this.getOptions(initial, { + account + }); + const providers = { + [src/* SourceType.OpenSea */.PO.OpenSea]: web3_providers_src/* OpenSea */.Nn, + [src/* SourceType.Rarible */.PO.Rarible]: web3_providers_src/* Rarible */.e8, + [src/* SourceType.Alchemy_EVM */.PO.Alchemy_EVM]: web3_providers_src/* Alchemy_EVM */.de + }; + const predicate = (0,src/* createPredicate */.Km)(Object.keys(providers)); + const defaultProviders = options.chainId === types/* ChainId.Mainnet */.a_.Mainnet ? [ + web3_providers_src/* OpenSea */.Nn, + web3_providers_src/* Alchemy_EVM */.de, + web3_providers_src/* Rarible */.e8 + ] : [ + web3_providers_src/* Alchemy_EVM */.de, + web3_providers_src/* OpenSea */.Nn, + web3_providers_src/* Rarible */.e8 + ]; + const filteredProviders = predicate(options.sourceType) ? [ + providers[options.sourceType] + ] : defaultProviders; + return (0,src/* attemptUntil */.Ck)(filteredProviders.map((x)=>()=>x.getAssets(options.account, options) + ), (0,src/* createPageable */.LI)([], (0,src/* createIndicator */.sz)(options.indicator))); + } + getNonFungibleCollections(account, initial) { + const options = this.getOptions(initial, { + account + }); + return web3_providers_src/* OpenSea.getCollections */.Nn.getCollections(options.account, options); + } + getFungibleTokenPrice(chainId, address, initial) { + const options = this.getOptions(initial, { + chainId + }); + const { PLATFORM_ID ='' , COIN_ID ='' } = (0,constants/* getCoinGeckoConstants */.V6)(options.chainId); + if ((0,utils_address/* isNativeTokenAddress */.qw)(address)) { + return web3_providers_src/* CoinGecko.getTokenPriceByCoinId */.oD.getTokenPriceByCoinId(COIN_ID, options.currencyType); + } + return web3_providers_src/* CoinGecko.getTokenPrice */.oD.getTokenPrice(PLATFORM_ID, address, options.currencyType); + } + getNonFungibleTokenPrice(chainId, address, tokenId, initial) { + throw new Error('Method not implemented.'); + } + async getFungibleTokenIconURLs(chainId, address, initial) { + const options = this.getOptions(initial, { + chainId + }); + const { TOKEN_ASSET_BASE_URI =[] } = (0,constants/* getTokenAssetBaseURLConstants */.ed)(options.chainId); + const checkSummedAddress = (0,formatter/* formatEthereumAddress */.j8)(address); + if ((0,src/* isSameAddress */.Wr)((0,constants/* getTokenConstants */.aV)(chainId).NATIVE_TOKEN_ADDRESS, checkSummedAddress)) { + return TOKEN_ASSET_BASE_URI.map((x)=>`${x}/info/logo.png` + ); + } + const specialIcon = TokenIconSpecialIconList_namespaceObject.find((0,src/* currySameAddress */.DC)(address)); + if (specialIcon) return [ + specialIcon.logo_url + ]; + // load from remote + return TOKEN_ASSET_BASE_URI.map((x)=>`${x}/assets/${checkSummedAddress}/logo.png` + ); + } + getNonFungibleTokenIconURLs(chainId, address, tokenId, initial) { + throw new Error('Method not implemented.'); + } + async getTransactions(chainId, account, initial) { + const options = this.getOptions(initial, { + account, + chainId + }); + return web3_providers_src/* DeBank.getTransactions */.Cy.getTransactions(options.account, options); + } + constructor(chainId, account, sourceType, currencyType){ + this.chainId = chainId; + this.account = account; + this.sourceType = sourceType; + this.currencyType = currencyType; + } +} +function createHub(chainId = types/* ChainId.Mainnet */.a_.Mainnet, account = '', sourceType, currencyType) { + return new Hub(chainId, account, sourceType, currencyType); +} +;// CONCATENATED MODULE: ../plugins/EVM/src/state/Hub.ts -/***/ }), -/***/ 70552: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { +class Hub_Hub extends entry_web3/* HubState */.xH { + constructor(context, subscription){ + super(createHub, subscription); + this.context = context; + } +} -"use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "X": () => (/* binding */ ImageIcon) -/* harmony export */ }); -/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(71999); -/* harmony import */ var _masknet_theme__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(30232); +;// CONCATENATED MODULE: ../plugins/EVM/src/state/RiskWarning.ts -const useStyles = (0,_masknet_theme__WEBPACK_IMPORTED_MODULE_1__/* .makeStyles */ .ZL)()((theme)=>{ - return { - icon: {} - }; -}); -function ImageIcon(props) { - const { size =48 , icon } = props; - const classes = (0,_masknet_theme__WEBPACK_IMPORTED_MODULE_1__/* .useStylesExtends */ .Bc)(useStyles(), props); - return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("img", { - height: size, - width: size, - src: icon?.toString(), - className: classes.icon - }); + +class RiskWarning extends entry_web3/* RiskWarningState */.SW { + async approve(address, pluginID) { + await web3_providers_src/* RiskWarning.approve */.qy.approve(address, pluginID); + await super.approve(address); + } + constructor(context, subscription){ + super(context, subscription, { + formatAddress: formatter/* formatEthereumAddress */.j8 + }); + } } +;// CONCATENATED MODULE: ../plugins/EVM/src/state/Token.ts -/***/ }), -/***/ 99769: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -"use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "p": () => (/* binding */ LoadingAnimation) -/* harmony export */ }); -/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(71999); -/* harmony import */ var _masknet_icons__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(14696); -/* harmony import */ var _masknet_theme__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(30232); -/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(83849); -/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_2__); +class Token extends entry_web3/* TokenState */.Vi { + constructor(context, subscriptions){ + const defaultValue = { + fungibleTokens: [], + nonFungibleTokens: [], + fungibleTokenBlockedBy: {}, + nonFungibleTokenBlockedBy: {} + }; + super(context, defaultValue, subscriptions, { + isValidAddress: utils_address/* isValidAddress */.At, + isSameAddress: src/* isSameAddress */.Wr, + formatAddress: formatter/* formatEthereumAddress */.j8 + }); + } +} +;// CONCATENATED MODULE: ../plugins/EVM/src/state/Transaction.ts -const useStyles = (0,_masknet_theme__WEBPACK_IMPORTED_MODULE_1__/* .makeStyles */ .ZL)()({ - animated: { - '@keyframes loadingAnimation': { - '0%': { - transform: 'rotate(0deg)' - }, - '100%': { - transform: 'rotate(360deg)' - } - }, - animation: 'loadingAnimation 1.6s linear infinite' +class Transaction extends entry_web3/* TransactionState */.g7 { + constructor(context, subscriptions){ + super(context, (0,esm/* getEnumAsArray */.Yl)(types/* ChainId */.a_).map((x)=>x.value + ), subscriptions, { + formatAddress: formatter/* formatEthereumAddress */.j8 + }); } -}); -const LoadingAnimation = (props)=>{ - const { classes } = useStyles(); - return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_masknet_icons__WEBPACK_IMPORTED_MODULE_3__/* .LoadingIcon */ .H, { - ...props, - className: classnames__WEBPACK_IMPORTED_MODULE_2___default()(classes.animated, props.className) - }); -}; +} + +// EXTERNAL MODULE: ../../node_modules/.pnpm/ethjs-ens@2.0.1/node_modules/ethjs-ens/index.js +var ethjs_ens = __webpack_require__(8001); +var ethjs_ens_default = /*#__PURE__*/__webpack_require__.n(ethjs_ens); +// EXTERNAL MODULE: ../../node_modules/.pnpm/web3-utils@1.7.3/node_modules/web3-utils/lib/index.js +var lib = __webpack_require__(11627); +// EXTERNAL MODULE: ../web3-shared/evm/utils/payload.ts +var payload = __webpack_require__(2046); +// EXTERNAL MODULE: ../../node_modules/.pnpm/@servie+events@3.0.0/node_modules/@servie/events/dist/index.js +var dist = __webpack_require__(69260); +// EXTERNAL MODULE: ../../node_modules/.pnpm/web3@1.7.3/node_modules/web3/lib/index.js +var web3_lib = __webpack_require__(75692); +var web3_lib_default = /*#__PURE__*/__webpack_require__.n(web3_lib); +;// CONCATENATED MODULE: ../web3-shared/evm/utils/provider.ts + +function createWeb3(provider) { + const web3 = new (web3_lib_default())(provider); + web3.eth.transactionBlockTimeout = 10 * 1000; + web3.eth.transactionPollingTimeout = 10 * 1000; + // @ts-ignore disable the default polling strategy + web3.eth.transactionPollingInterval = Number.MAX_SAFE_INTEGER; + return web3; +} +function createWeb3Provider(request) { + const provider = { + on () { + return provider; + }, + removeListener () { + return provider; + }, + request, + send (payload, callback) { + return this.sendAsync(payload, callback); + }, + // some pkg (eth-rpc) needs this method + sendAsync: async (payload, callback)=>{ + try { + const result = await request({ + method: payload.method, + params: payload.params + }); + callback(null, { + jsonrpc: '2.0', + id: String(payload.id), + result + }); + return { + jsonrpc: '2.0', + id: String(payload.id), + result + }; + } catch (error) { + if (error instanceof Error) callback(error); + return { + jsonrpc: '2.0', + id: String(payload.id), + error: error + }; + } + } + }; + return provider; +} +;// CONCATENATED MODULE: ../plugins/EVM/src/state/Connection/providers/Base.ts -/***/ }), -/***/ 80759: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -"use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "y": () => (/* binding */ NFTCardStyledAssetPlayer) -/* harmony export */ }); -/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(71999); -/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(83849); -/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(927); -/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(98354); -/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(65506); -/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(53465); -/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(37485); -/* harmony import */ var _masknet_theme__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(30232); -/* harmony import */ var _AssetPlayer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(98598); +class BaseProvider { + // No need to wait by default + get ready() { + return true; + } + // No need to wait by default + get readyPromise() { + return Promise.resolve(); + } + // Switch chain with RPC calls by default + async switchChain(chainId) { + if (chainId && resolver/* chainResolver.chainNetworkType */.VU.chainNetworkType(chainId) === types/* NetworkType.Ethereum */.td.Ethereum) { + await this.request({ + method: types/* EthereumMethodType.WALLET_SWITCH_ETHEREUM_CHAIN */.W8.WALLET_SWITCH_ETHEREUM_CHAIN, + params: [ + { + chainId: (0,lib.toHex)(chainId) + }, + ] + }); + } else if (chainId) { + await this.request({ + method: types/* EthereumMethodType.WALLET_ADD_ETHEREUM_CHAIN */.W8.WALLET_ADD_ETHEREUM_CHAIN, + params: [ + { + chainId: (0,lib.toHex)(chainId), + chainName: resolver/* chainResolver.chainName */.VU.chainName(chainId), + nativeCurrency: resolver/* chainResolver.nativeCurrency */.VU.nativeCurrency(chainId), + rpcUrls: (0,constants/* getRPCConstants */.t0)(chainId).RPC_URLS ?? [], + blockExplorerUrls: [ + resolver/* chainResolver.infoURL */.VU.infoURL(chainId)?.url + ] + }, + ] + }); + } else { + throw new Error('Unknown chain id.'); + } + // Delay to make sure the provider will return the newest chain id. + await (0,esm/* delay */.gw)(1000); + const actualChainId = await this.request({ + method: types/* EthereumMethodType.ETH_CHAIN_ID */.W8.ETH_CHAIN_ID, + params: [] + }); + if (Number.parseInt(actualChainId, 16) !== chainId) throw new Error(`Failed to switch to ${resolver/* chainResolver.chainFullName */.VU.chainFullName(chainId)}.`); + } + // A provider should at least implement a RPC request method. + // Then it can be used to create an external provider for web3js. + async request(requestArguments, options) { + throw new Error('Method not implemented.'); + } + // Create a web3 instance from the external provider by default. + async createWeb3(options) { + return createWeb3(await this.createWeb3Provider(options)); + } + // Create an external provider from the basic request method. + async createWeb3Provider(options) { + await this.readyPromise; + return createWeb3Provider((requestArguments)=>this.request(requestArguments, options) + ); + } + connect(chainId) { + throw new Error('Method not implemented'); + } + disconnect() { + throw new Error('Method not implemented'); + } + constructor(){ + this.emitter = new dist/* Emitter */.Q5(); + } +} + +// EXTERNAL MODULE: ../plugins/EVM/src/settings/index.ts +var settings = __webpack_require__(40980); +// EXTERNAL MODULE: ../shared-base/src/index.ts + 2 modules +var shared_base_src = __webpack_require__(44451); +// EXTERNAL MODULE: ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/head.js +var head = __webpack_require__(29730); +;// CONCATENATED MODULE: ../plugins/EVM/src/state/Connection/providers/MaskWallet.ts -const useStyles = (0,_masknet_theme__WEBPACK_IMPORTED_MODULE_2__/* .makeStyles */ .ZL)()((theme)=>({ - wrapper: { - display: 'flex', - justifyContent: 'center', - alignItems: 'center', - height: 160, - width: 120, - overflow: 'hidden' - }, - loadingPlaceholder: { - height: 160, - width: 120 - }, - loadingIcon: { - width: 36, - height: 52 - }, - imgWrapper: { - width: '100%', - height: '100%', - display: 'flex', - justifyContent: 'center', - alignItems: 'center' + +class MaskWalletProvider extends BaseProvider { + /** + * Block by the share context + * @returns + */ get ready() { + return settings/* Web3StateSettings.ready */.o.ready; + } + /** + * Block by the share context + * @returns + */ get readyPromise() { + return settings/* Web3StateSettings.readyPromise.then */.o.readyPromise.then(()=>{}); + } + async switchChain(chainId) { + await settings/* SharedContextSettings.value.updateAccount */.J.value.updateAccount({ + chainId + }); + } + addSharedContextListeners() { + const sharedContext = settings/* SharedContextSettings.value */.J.value; + sharedContext.chainId.subscribe(()=>{ + this.emitter.emit('chainId', (0,lib.toHex)(sharedContext.chainId.getCurrentValue())); + }); + sharedContext.account.subscribe(()=>{ + const account = sharedContext.account.getCurrentValue(); + if (account) this.emitter.emit('accounts', [ + account + ]); + else this.emitter.emit('disconnect', types/* ProviderType.MaskWallet */.lP.MaskWallet); + }); + } + async request(requestArguments, options) { + const response = await settings/* SharedContextSettings.value.send */.J.value.send((0,payload/* createPayload */.Z4)(0, requestArguments.method, requestArguments.params), { + chainId: settings/* SharedContextSettings.value.chainId.getCurrentValue */.J.value.chainId.getCurrentValue(), + popupsWindow: (0,shared_base_src/* getSiteType */.sv)() === shared_base_src/* ExtensionSite.Dashboard */.v_.Dashboard || (0,shared_base_src/* isEnhanceableSiteType */.zQ)(), + ...options + }); + return response?.result; + } + async connect(chainId) { + const { chainId: actualChainId , getWallets , updateAccount } = settings/* SharedContextSettings.value */.J.value; + if ((0,shared_base_src/* getSiteType */.sv)() === shared_base_src/* ExtensionSite.Popup */.v_.Popup) throw new Error("Can't connect wallet"); + const wallets = await getWallets(); + settings/* SharedContextSettings.value.openPopupWindow */.J.value.openPopupWindow(wallets.length ? shared_base_src/* PopupRoutes.SelectWallet */.mZ.SelectWallet : shared_base_src/* PopupRoutes.Wallet */.mZ.Wallet, { + chainId + }); + const account = (0,head/* default */.Z)(await settings/* SharedContextSettings.value.selectAccount */.J.value.selectAccount()); + if (!account) throw new Error(`Failed to connect to ${resolver/* chainResolver.chainFullName */.VU.chainFullName(chainId)}.`); + // switch chain + if (actualChainId.getCurrentValue() !== chainId) { + await updateAccount({ + chainId + }); } - }) -); -const assetPlayerFallbackImageDark = new URL(/* asset import */ __webpack_require__(39952), __webpack_require__.b); -const assetPlayerFallbackImageLight = new URL(/* asset import */ __webpack_require__(39872), __webpack_require__.b); -function NFTCardStyledAssetPlayer(props) { - const { chainId =_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_4__/* .ChainId.Mainnet */ .a_.Mainnet , contractAddress ='' , tokenId ='' , isNative =false , fallbackImage , fallbackResourceLoader , url , setERC721TokenName , renderOrder , setSourceType , } = props; - const classes = (0,_masknet_theme__WEBPACK_IMPORTED_MODULE_2__/* .useStylesExtends */ .Bc)(useStyles(), props); - const theme = (0,_mui_material__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z)(); - const { tokenDetailed } = (0,_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_6__/* .useERC721TokenDetailed */ .zi)({ - address: contractAddress, - chainId - }, tokenId); - const { value: isImageToken } = (0,_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_7__/* .useImageChecker */ .v)(url || tokenDetailed?.info.imageURL || tokenDetailed?.info.mediaUrl); - const fallbackImageURL = theme.palette.mode === 'dark' ? assetPlayerFallbackImageDark : assetPlayerFallbackImageLight; - return isImageToken || isNative ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", { - className: classes.imgWrapper, - children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("img", { - width: "100%", - style: { - objectFit: 'cover' - }, - src: url || tokenDetailed?.info.imageURL || tokenDetailed?.info.mediaUrl, - onError: (event)=>{ - const target = event.currentTarget; - target.src = fallbackImageURL.toString(); - target.classList.add(classes.loadingFailImage ?? ''); - } - }) - }) : /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_AssetPlayer__WEBPACK_IMPORTED_MODULE_3__/* .AssetPlayer */ .I, { - showIframeFromInit: true, - erc721Token: { + return { chainId, - contractAddress, - tokenId: tokenId - }, - url: url, - options: { - autoPlay: true, - controls: false, - playsInline: true - }, - setERC721TokenName: setERC721TokenName, - setSourceType: setSourceType, - // It would fail to render as loading too many(>200) iframe at once. - renderTimeout: renderOrder ? 20000 * Math.floor(renderOrder / 100) : undefined, - fallbackImage: fallbackImage ?? fallbackImageURL, - loadingIcon: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, { - size: 20 - }), - classes: { - iframe: classnames__WEBPACK_IMPORTED_MODULE_1___default()(classes.wrapper, classes.iframe), - errorPlaceholder: classes.wrapper, - loadingPlaceholder: classes.wrapper, - loadingFailImage: classes.loadingFailImage, - loadingIcon: classes.loadingIcon - }, - fallbackResourceLoader: fallbackResourceLoader - }); + account + }; + } + async disconnect() { + // do nothing + } + constructor(){ + super(); + settings/* Web3StateSettings.readyPromise.then */.o.readyPromise.then(this.addSharedContextListeners.bind(this)); + } } +;// CONCATENATED MODULE: ../plugins/EVM/src/state/Connection/providers/None.ts -/***/ }), -/***/ 8524: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -"use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "s": () => (/* binding */ QRCode) -/* harmony export */ }); -/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(71999); -/* harmony import */ var _masknet_theme__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(30232); -/* harmony import */ var qrcode__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(86099); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(86248); -/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(37253); -/* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(31008); -/* harmony import */ var _mui_material_colors__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(96997); -/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(78144); +class NoneProvider extends BaseProvider { + async request(requestArguments, options) { + const response = await settings/* SharedContextSettings.value.send */.J.value.send((0,payload/* createPayload */.Z4)(0, requestArguments.method, requestArguments.params), options); + return response?.result; + } +} +;// CONCATENATED MODULE: ../plugins/EVM/src/state/Connection/provider.ts +/** + * Register all supported providers + */ const Providers = { + [types/* ProviderType.None */.lP.None]: new NoneProvider(), + [types/* ProviderType.MaskWallet */.lP.MaskWallet]: new MaskWalletProvider(), + [types/* ProviderType.MetaMask */.lP.MetaMask]: null, + [types/* ProviderType.WalletConnect */.lP.WalletConnect]: null, + [types/* ProviderType.Coin98 */.lP.Coin98]: null, + [types/* ProviderType.WalletLink */.lP.WalletLink]: null, + [types/* ProviderType.MathWallet */.lP.MathWallet]: null, + [types/* ProviderType.Fortmatic */.lP.Fortmatic]: null, + [types/* ProviderType.Torus */.lP.Torus]: null, + [types/* ProviderType.CustomNetwork */.lP.CustomNetwork]: null +}; +;// CONCATENATED MODULE: ../plugins/EVM/src/state/NameService.ts -const CACHE_SCOPE = 'qrcode'; -const useStyles = (0,_masknet_theme__WEBPACK_IMPORTED_MODULE_1__/* .makeStyles */ .ZL)()((theme)=>({ - text: { - paddingTop: 50 - }, - info: { - color: theme.palette.mode === 'dark' ? _mui_material_colors__WEBPACK_IMPORTED_MODULE_5__/* ["default"][500] */ .Z[500] : _mui_material_colors__WEBPACK_IMPORTED_MODULE_5__/* ["default"][800] */ .Z[800], - extDecoration: 'underline', - cursor: 'pointer' + + +class NameService extends entry_web3/* NameServiceState */.Te { + async createENS() { + if (this.ens) return this.ens; + this.ens = new (ethjs_ens_default())({ + // @ts-ignore + provider: await Providers[types/* ProviderType.MaskWallet */.lP.MaskWallet].createWeb3Provider(types/* ChainId.Mainnet */.a_.Mainnet), + network: types/* ChainId.Mainnet */.a_.Mainnet + }); + return this.ens; + } + async lookup(chainId, name) { + if (chainId !== types/* ChainId.Mainnet */.a_.Mainnet) return; + const cachedAddress = await super.lookup(chainId, name); + if (cachedAddress) return cachedAddress; + const ens = await this.createENS(); + await super.addAddress(chainId, name, await ens.lookup(name)); + return super.lookup(chainId, name); + } + async reverse(chainId, address) { + try { + if (chainId !== types/* ChainId.Mainnet */.a_.Mainnet) return; + const cachedDomain = await super.reverse(chainId, address); + if (cachedDomain) return cachedDomain; + const ens = await this.createENS(); + const name = await ens.reverse(address); + await super.addName(chainId, address, name); + return super.reverse(chainId, address); + } catch { + return; } - }) -); -function QRCode({ text , options ={} , canvasProps }) { - const ref = (0,react__WEBPACK_IMPORTED_MODULE_3__.useRef)(null); - const [error, setError] = (0,react__WEBPACK_IMPORTED_MODULE_3__.useState)(false); - const image = _masknet_shared_base__WEBPACK_IMPORTED_MODULE_4__/* .SessionStorageCache.get */ .Hd.get(CACHE_SCOPE, text); - const { classes } = useStyles(); - (0,react__WEBPACK_IMPORTED_MODULE_3__.useEffect)(()=>{ - if (!ref.current || error) return; - qrcode__WEBPACK_IMPORTED_MODULE_2__.toCanvas(ref.current, text, options, (err)=>{ - if (err) { - setError(true); - _masknet_shared_base__WEBPACK_IMPORTED_MODULE_4__/* .SessionStorageCache.remove */ .Hd.remove(CACHE_SCOPE, text); - throw err; - } - const dataURL = ref.current?.toDataURL(); - if (dataURL) { - _masknet_shared_base__WEBPACK_IMPORTED_MODULE_4__/* .SessionStorageCache.set */ .Hd.set(CACHE_SCOPE, text, dataURL); - } + } + constructor(context, subscriptions){ + super(context, (0,esm/* getEnumAsArray */.Yl)(types/* ChainId */.a_).map((x)=>x.value + ), subscriptions, { + isValidName: (x)=>x !== '0x' + , + isValidAddress: (x)=>(0,utils_address/* isValidAddress */.At)(x) && !(0,utils_address/* isZeroAddress */.uO)(x) + , + formatAddress: formatter/* formatEthereumAddress */.j8 }); - }, [ - options, - text, - error - ]); - return error ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, { - children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, { - color: "textPrimary", - variant: "body1", - className: classes.text, - children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(react_i18next__WEBPACK_IMPORTED_MODULE_7__/* .Trans */ .c, { - i18nKey: "backup_qrcode_error", - components: { - again: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("span", { - onClick: ()=>{ - setError(false); - }, - className: classes.info - }) - } - }) - }) - }) : image ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("img", { - src: image, - ...canvasProps - }) : /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("canvas", { - ...canvasProps, - ref: ref - }); + this.ens = null; + } } +// EXTERNAL MODULE: ../../node_modules/.pnpm/urlcat@2.0.4/node_modules/urlcat/dist/index.js +var urlcat_dist = __webpack_require__(19802); +var dist_default = /*#__PURE__*/__webpack_require__.n(urlcat_dist); +// EXTERNAL MODULE: ../web3-contracts/abis/ERC20.json +var ERC20 = __webpack_require__(4350); +;// CONCATENATED MODULE: ../web3-contracts/abis/ERC165.json +const ERC165_namespaceObject = JSON.parse('[{"constant":true,"inputs":[{"name":"interfaceID","type":"bytes4"}],"name":"supportsInterface","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"view","type":"function"}]'); +;// CONCATENATED MODULE: ../web3-contracts/abis/ERC20Bytes32.json +const ERC20Bytes32_namespaceObject = JSON.parse('[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"}]'); +// EXTERNAL MODULE: ../web3-contracts/abis/ERC721.json +var ERC721 = __webpack_require__(78322); +// EXTERNAL MODULE: ../web3-contracts/abis/ERC1155.json +var ERC1155 = __webpack_require__(6521); +;// CONCATENATED MODULE: ../web3-contracts/abis/BalanceChecker.json +const BalanceChecker_namespaceObject = JSON.parse('[{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"address[]","name":"users","type":"address[]"},{"internalType":"address[]","name":"tokens","type":"address[]"}],"name":"balances","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"address","name":"token","type":"address"}],"name":"tokenBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]'); +// EXTERNAL MODULE: ../web3-shared/evm/utils/contract.ts +var utils_contract = __webpack_require__(28114); +// EXTERNAL MODULE: ../web3-shared/evm/pipes/index.ts +var pipes = __webpack_require__(70854); +// EXTERNAL MODULE: ../web3-shared/evm/utils/token.ts +var utils_token = __webpack_require__(91761); +// EXTERNAL MODULE: ../web3-shared/evm/utils/abi.ts +var abi = __webpack_require__(77378); +// EXTERNAL MODULE: ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isNil.js +var isNil = __webpack_require__(29330); +;// CONCATENATED MODULE: ../plugins/EVM/src/types/index.ts +var JSON_RPC_ERROR_CODE; +(function(JSON_RPC_ERROR_CODE) { + JSON_RPC_ERROR_CODE[JSON_RPC_ERROR_CODE["INVALID_REQUEST"] = -32600] = "INVALID_REQUEST"; + JSON_RPC_ERROR_CODE[JSON_RPC_ERROR_CODE["METHOD_NOT_FOUND"] = 32601] = "METHOD_NOT_FOUND"; + JSON_RPC_ERROR_CODE[JSON_RPC_ERROR_CODE["INVALID_PARAMS"] = -32602] = "INVALID_PARAMS"; + JSON_RPC_ERROR_CODE[JSON_RPC_ERROR_CODE["INTERNAL_ERROR"] = -32603] = "INTERNAL_ERROR"; + JSON_RPC_ERROR_CODE[JSON_RPC_ERROR_CODE["SERVER_ERROR_RANGE_START"] = -32000] = "SERVER_ERROR_RANGE_START"; + JSON_RPC_ERROR_CODE[JSON_RPC_ERROR_CODE["SERVER_ERROR_RANGE_END"] = -32099] = "SERVER_ERROR_RANGE_END"; +})(JSON_RPC_ERROR_CODE || (JSON_RPC_ERROR_CODE = {})); -/***/ }), +;// CONCATENATED MODULE: ../plugins/EVM/src/state/Connection/error.ts -/***/ 69379: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -"use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "x": () => (/* binding */ SelectTokenChip) -/* harmony export */ }); -/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(71999); -/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(83849); -/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(46995); -/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(98354); -/* harmony import */ var _masknet_theme__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(30232); -/* harmony import */ var _mui_icons_material_ExpandMore__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(29579); -/* harmony import */ var _mui_icons_material_Error__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(53852); -/* harmony import */ var lodash_unified__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(21122); -/* harmony import */ var _locales__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(29889); -/* harmony import */ var _TokenIcon__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(67632); +// TODO: 6002: missing i18n +function getInternalError(error, response, fallback) { + { + const rpcError = error; + if (rpcError instanceof Error && rpcError.message) return rpcError; + if (rpcError && typeof rpcError.message === 'string') return new Error(rpcError.message); + if (rpcError && typeof rpcError === 'string') return new Error(rpcError); + } + { + const responseError = response?.error; + if (responseError instanceof Error) return getError(responseError, null, fallback); + if (responseError && typeof responseError.message === 'string') return getError(responseError, null, fallback); + if (responseError && typeof responseError === 'string') return new Error(responseError); + } + if (fallback) return new Error(fallback); + return new Error('Unknown Error.'); +} +function hasError(error, response) { + return !(0,isNil/* default */.Z)(error) || !(0,isNil/* default */.Z)(response?.error); +} +function getError(error, response, fallback) { + const internalError = getInternalError(error, response, fallback); + const internalErrorMessage = (()=>{ + const { code , message } = internalError; + if (message.includes(`"code":${JSON_RPC_ERROR_CODE.INTERNAL_ERROR}`)) return 'Transaction was failed due to an internal JSON-RPC server error.'; + if (message.includes('User denied message signature.')) return 'Signature canceled.'; + if (message.includes('User denied transaction signature.')) return 'Transaction was rejected!'; + if (message.includes('transaction underpriced')) return 'Transaction underpriced.'; + if (typeof code === 'number' && (code === JSON_RPC_ERROR_CODE.INTERNAL_ERROR || code <= JSON_RPC_ERROR_CODE.SERVER_ERROR_RANGE_START && code >= JSON_RPC_ERROR_CODE.SERVER_ERROR_RANGE_END)) { + return 'Transaction was failed due to an internal JSON-RPC server error.'; + } + return internalError.message; + })(); + return new Error(internalErrorMessage); +} +;// CONCATENATED MODULE: ../plugins/EVM/src/state/Connection/middleware/AddressBook.ts +class AddressBook_AddressBook { + getFrom(context) { + return context?.from; + } + getTo(context) { + if (!context) return; + switch(context.type){ + case src/* TransactionDescriptorType.TRANSFER */.vt.TRANSFER: + return context.to; + case src/* TransactionDescriptorType.INTERACTION */.vt.INTERACTION: + if (context.name && [ + 'transfer', + 'transferFrom' + ].includes(context.name)) return context.parameters?.to; + } + return; + } + async fn(context, next) { + const { AddressBook: AddressBook1 } = settings/* Web3StateSettings.value */.o.value; + await next(); + if (context.method !== types/* EthereumMethodType.ETH_SEND_TRANSACTION */.W8.ETH_SEND_TRANSACTION) return; + if (!context.config) return; + try { + const { TransactionFormatter } = settings/* Web3StateSettings.value */.o.value; + const formatContext = await TransactionFormatter?.createContext(context.chainId, context.config); + const from = this.getFrom(formatContext); + const to = this.getTo(formatContext); + if (!(0,src/* isSameAddress */.Wr)(from, to) && !(0,utils_address/* isZeroAddress */.uO)(to) && to) await AddressBook1?.addAddress(context.chainId, to); + } catch { + // to scan the context for available recipient address, allow to fail silently. + } + } +} +// EXTERNAL MODULE: ../web3-shared/evm/utils/transaction.ts +var utils_transaction = __webpack_require__(46815); +;// CONCATENATED MODULE: ../plugins/EVM/src/state/Connection/interceptors/None.ts +class NoneWallet { + async fn(context, next) { + if ((0,utils_transaction/* isRiskMethod */.Y2)(context.method)) { + context.abort(new Error('No allowed.')); + } + await next(); + } +} +;// CONCATENATED MODULE: ../plugins/EVM/src/state/Connection/interceptors/MaskWallet.ts -const useStyles = (0,_masknet_theme__WEBPACK_IMPORTED_MODULE_2__/* .makeStyles */ .ZL)()((theme)=>{ - return { - chip: { - border: 'none', - borderRadius: 8, - paddingLeft: theme.spacing(0.5), - fontSize: 12 - }, - loadingChip: { - marginRight: theme.spacing(-0.5), - fontSize: 12 - }, - icon: { - color: theme.palette.text.primary, - pointerEvents: 'none' - }, - tokenIcon: { - width: 16, - height: 16 - }, - noToken: {} - }; -}); -// todo: merge into one with SelectTokenChip -function SelectTokenChip(props) { - const t = (0,_locales__WEBPACK_IMPORTED_MODULE_3__/* .useSharedI18N */ .B)(); - const { token , error , loading =false , readonly =false , ChipProps } = props; - const classes = (0,_masknet_theme__WEBPACK_IMPORTED_MODULE_2__/* .useStylesExtends */ .Bc)(useStyles(), props); - if (loading) return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z, { - className: classnames__WEBPACK_IMPORTED_MODULE_1___default()(classes.chip, classes.loadingChip), - icon: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, { - size: 16 - }), - size: "small", - clickable: false, - variant: "outlined" - }); - if (!token) return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z, { - className: classnames__WEBPACK_IMPORTED_MODULE_1___default()(classes.chip, classes.noToken), - label: t.select_token(), - size: "small", - clickable: !readonly, - ...ChipProps - }); - if (token && error) return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z, { - className: classes.chip, - icon: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_TokenIcon__WEBPACK_IMPORTED_MODULE_4__/* .TokenIcon */ .T, { - address: token.address, - name: token.name, - logoURI: token.logoURI - }), - deleteIcon: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_icons_material_Error__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z, { - className: classes.icon - }), - label: token.symbol, - color: "default", - size: "small", - variant: "outlined", - clickable: !readonly, - // the delete icon only visible when this callback provided - onDelete: lodash_unified__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, - ...ChipProps - }); - return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z, { - className: classes.chip, - icon: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_TokenIcon__WEBPACK_IMPORTED_MODULE_4__/* .TokenIcon */ .T, { - classes: { - icon: classes.tokenIcon - }, - address: token.address, - name: token.name, - logoURI: token.logoURI - }), - deleteIcon: readonly ? undefined : /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_icons_material_ExpandMore__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .Z, { - className: classes.icon - }), - color: "default", - size: "small", - variant: "outlined", - clickable: !readonly, - label: token.symbol, - // the delete icon only visible when this callback provided - onDelete: readonly ? undefined : lodash_unified__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, - ...ChipProps - }); + +class MaskWallet { + async fn(context, next) { + const { hasNativeAPI , send , account , chainId } = settings/* SharedContextSettings.value */.J.value; + // redirect to native app + if (hasNativeAPI) { + try { + const response = await send(context.request); + context.end(new Error(response.error?.message ?? 'Unknown Error'), response.result); + } catch (error) { + context.abort(error); + } finally{ + await next(); + } + return; + } + switch(context.request.method){ + case types/* EthereumMethodType.ETH_CHAIN_ID */.W8.ETH_CHAIN_ID: + context.write((0,lib.toHex)(chainId.getCurrentValue())); + break; + case types/* EthereumMethodType.ETH_ACCOUNTS */.W8.ETH_ACCOUNTS: + context.write([ + account + ]); + break; + case types/* EthereumMethodType.ETH_SEND_TRANSACTION */.W8.ETH_SEND_TRANSACTION: + const config = context.config; + if (!config?.from || !config?.to) { + context.abort(new Error('Invalid JSON payload.')); + break; + } + break; + default: + break; + } + await next(); + } } +;// CONCATENATED MODULE: ../plugins/EVM/src/state/Connection/interceptors/WalletConnect.ts -/***/ }), -/***/ 12188: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { +class WalletConnect { + async fn(context, next) { + switch(context.request.method){ + case types/* EthereumMethodType.PERSONAL_SIGN */.W8.PERSONAL_SIGN: + context.requestArguments = { + ...context.requestArguments, + params: [ + ...context.requestArguments.params.slice(0, 2), + '' + ] + }; + break; + default: + break; + } + await next(); + switch(context.request.method){ + case types/* EthereumMethodType.ETH_CHAIN_ID */.W8.ETH_CHAIN_ID: + if (typeof context.result === 'number') { + context.result = (0,lib.toHex)(context.result); + } + break; + default: + break; + } + } +} -"use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "x": () => (/* binding */ TokenAmountPanel) -/* harmony export */ }); -/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(71999); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(86248); -/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(85139); -/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(37253); -/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(46995); -/* harmony import */ var _masknet_theme__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(30232); -/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(83849); -/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_3__); -/* harmony import */ var bignumber_js__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(42263); -/* harmony import */ var bignumber_js__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(bignumber_js__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _SelectTokenChip__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(69379); -/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(66394); -/* harmony import */ var _locales__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(29889); -/* harmony import */ var _wallet__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(35070); +;// CONCATENATED MODULE: ../plugins/EVM/src/state/Connection/interceptors/MetaMask.ts +class MetaMask { + async fn(context, next) { + // Evoke the unlock popup when metamask is locked before send transaction or sign message. + if ((0,utils_transaction/* isRiskMethod */.Y2)(context.request.method)) { + await context.connection.connect(); + } + switch(context.request.method){ + case types/* EthereumMethodType.PERSONAL_SIGN */.W8.PERSONAL_SIGN: + context.requestArguments = { + ...context.requestArguments, + params: [ + ...context.requestArguments.params.slice(0, 2), + '' + ] + }; + break; + default: + break; + } + await next(); + } +} +;// CONCATENATED MODULE: ../plugins/EVM/src/state/Connection/middleware/Interceptor.ts +class Interceptor { + async fn(context, next) { + if (context.writeable) await this.interceptors[context.providerType]?.fn(context, next); + else await next(); + } + constructor(){ + this.interceptors = { + [types/* ProviderType.None */.lP.None]: new NoneWallet(), + [types/* ProviderType.MaskWallet */.lP.MaskWallet]: new MaskWallet(), + [types/* ProviderType.MetaMask */.lP.MetaMask]: new MetaMask(), + [types/* ProviderType.WalletConnect */.lP.WalletConnect]: new WalletConnect(), + [types/* ProviderType.Coin98 */.lP.Coin98]: new MetaMask(), + [types/* ProviderType.WalletLink */.lP.WalletLink]: new MetaMask(), + [types/* ProviderType.MathWallet */.lP.MathWallet]: new MetaMask(), + [types/* ProviderType.Fortmatic */.lP.Fortmatic]: new MetaMask() + }; + } +} +// EXTERNAL MODULE: ../../node_modules/.pnpm/wallet.ts@1.0.1/node_modules/wallet.ts/dist/index.js +var wallet_ts_dist = __webpack_require__(99674); +;// CONCATENATED MODULE: ../plugins/EVM/src/state/Connection/middleware/Nonce.ts -const MIN_AMOUNT_LENGTH = 1; -const MAX_AMOUNT_LENGTH = 79; -const useStyles = (0,_masknet_theme__WEBPACK_IMPORTED_MODULE_2__/* .makeStyles */ .ZL)()((theme)=>{ - return { - root: {}, - input: { - '&::-webkit-outer-spin-button, &::-webkit-inner-spin-button': { - '-webkit-appearance': 'none', - margin: 0 - }, - '-moz-appearance': 'textfield' - }, - max: { - marginRight: theme.spacing(0.2), - borderRadius: 8, - fontSize: 12, - height: 18 - }, - token: { - whiteSpace: 'pre', - maxWidth: 300, - paddingLeft: theme.spacing(1), - fontSize: 12 - }, - balance: { - whiteSpace: 'nowrap', - textOverflow: 'ellipsis', - overflow: 'hidden', - maxWidth: '80%', - fontSize: 12, - top: theme.spacing(0.5), - position: 'absolute' - }, - inputShrinkLabel: { - transform: 'translate(17px, -3px) scale(0.75) !important' - } - }; -}); -// todo: merge into one with TokenAmountPanel -function TokenAmountPanel(props) { - const { amount , maxAmount , balance , token , onAmountChange , maxAmountShares =1 , label , disableToken =false , disableBalance =false , MaxChipProps , } = props; - const t = (0,_locales__WEBPACK_IMPORTED_MODULE_6__/* .useSharedI18N */ .B)(); - const classes = (0,_masknet_theme__WEBPACK_IMPORTED_MODULE_2__/* .useStylesExtends */ .Bc)(useStyles(), props); - // #region update amount by self - const { RE_MATCH_WHOLE_AMOUNT , RE_MATCH_FRACTION_AMOUNT } = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>({ - RE_MATCH_FRACTION_AMOUNT: new RegExp(`^\\.\\d{0,${token?.decimals}}$`), - RE_MATCH_WHOLE_AMOUNT: new RegExp(`^\\d*\\.?\\d{0,${token?.decimals}}$`) - }) - , [ - token?.decimals - ]); - const onChange = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)((ev)=>{ - const amount_ = ev.currentTarget.value.replace(/,/g, '.'); - if (RE_MATCH_FRACTION_AMOUNT.test(amount_)) onAmountChange(`0${amount_}`); - else if (amount_ === '' || RE_MATCH_WHOLE_AMOUNT.test(amount_)) onAmountChange(amount_); - }, [ - onAmountChange, - RE_MATCH_WHOLE_AMOUNT, - RE_MATCH_FRACTION_AMOUNT - ]); - // #endregion - return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_masknet_theme__WEBPACK_IMPORTED_MODULE_2__/* .MaskTextField */ .FU, { - className: classes.root, - label: label, - fullWidth: true, - required: true, - type: "text", - value: amount, - onChange: onChange, - placeholder: "0.0", - InputProps: { - inputProps: { - autoComplete: 'off', - autoCorrect: 'off', - title: 'Token Amount', - inputMode: 'decimal', - min: 0, - minLength: MIN_AMOUNT_LENGTH, - maxLength: MAX_AMOUNT_LENGTH, - pattern: '^[0-9]*[.,]?[0-9]*$', - spellCheck: false, - className: classes.input - }, - endAdornment: disableToken ? null : token ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_mui_material__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, { - className: classes.token, - sx: { - display: 'flex', - flexDirection: 'column', - justifyContent: 'center', - alignItems: 'flex-end' - }, - children: [ - !disableBalance ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_mui_material__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .Z, { - className: classes.balance, - color: "textSecondary", - variant: "body2", - component: "span", - children: [ - t.balance(), - ":", - /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_wallet__WEBPACK_IMPORTED_MODULE_7__/* .FormattedBalance */ .BV, { - value: balance, - decimals: token.decimals, - significant: 6, - formatter: _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_10__/* .formatBalance */ .az - }) - ] - }) : null, - /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_mui_material__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, { - sx: { - display: 'flex', - alignItems: 'center', - marginTop: 2 - }, - children: [ - balance !== '0' && !disableBalance ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_11__/* ["default"] */ .Z, { - classes: { - root: classnames__WEBPACK_IMPORTED_MODULE_3___default()(classes.max, MaxChipProps?.classes?.root), - ...MaxChipProps?.classes - }, - size: "small", - label: "MAX", - clickable: true, - color: "primary", - variant: "outlined", - onClick: ()=>{ - onAmountChange((0,_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_10__/* .formatBalance */ .az)(new (bignumber_js__WEBPACK_IMPORTED_MODULE_4___default())(maxAmount ?? balance).dividedBy(maxAmountShares).decimalPlaces(0, 1), token.decimals)); - }, - ...MaxChipProps - }) : null, - /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_SelectTokenChip__WEBPACK_IMPORTED_MODULE_5__/* .SelectTokenChip */ .x, { - token: token, - ...props.SelectTokenChip - }) - ] - }) - ] - }) : /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_mui_material__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, { - className: classes.token, - sx: { - display: 'flex', - flexDirection: 'column', - justifyContent: 'center', - alignItems: 'flex-end', - marginTop: 2 - }, - children: [ - !disableBalance ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .Z, { - className: classes.balance, - color: "textSecondary", - variant: "body2", - component: "span", - children: "-" - }) : null, - /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_SelectTokenChip__WEBPACK_IMPORTED_MODULE_5__/* .SelectTokenChip */ .x, { - token: token, - ...props.SelectTokenChip - }) - ] - }), - ...props.InputProps - }, - InputLabelProps: { - shrink: true, - classes: { - shrink: classes.inputShrinkLabel - } - }, - ...props.TextFieldProps - }); -} - - -/***/ }), -/***/ 67632: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -"use strict"; +class NonceManager { + lock() { + this.locked = true; + } + unlock() { + this.locked = false; + } + continue() { + if (!this.locked) this.tasks.shift()?.(); + } + async getRemoteNonce() { + const { chainId } = settings/* SharedContextSettings.value */.J.value; + return new Promise(async (resolve, reject)=>{ + const callback = (error, nonce = 0)=>{ + if (error) reject(error); + else resolve(nonce); + this.unlock(); + this.continue(); + }; + const run = async ()=>{ + try { + this.lock(); + callback(null, await this.connection.getTransactionNonce(this.address, { + chainId: chainId.getCurrentValue(), + // Only mask wallets need to use Nonce + providerType: types/* ProviderType.MaskWallet */.lP.MaskWallet + })); + } catch (error) { + callback(error instanceof Error ? error : new Error('Failed to get remote nonce.')); + } + }; + if (this.locked) this.tasks.push(run); + else run(); + }); + } + async getNonce() { + const nonce = Math.max(await this.getRemoteNonce(), this.nonce); + await this.setNonce(nonce); + return nonce; + } + async setNonce(nonce) { + return new Promise(async (resolve, reject)=>{ + const callback = (e)=>{ + if (e) reject(e); + else resolve(); + this.unlock(); + this.continue(); + }; + const run = async ()=>{ + this.lock(); + this.nonce = nonce; + callback(null); + }; + if (this.locked) this.tasks.push(run); + else run(); + }); + } + async resetNonce() { + const nonce = await this.getRemoteNonce(); + await this.setNonce(nonce); + } + constructor(address, connection){ + this.address = address; + this.connection = connection; + this.nonce = NonceManager.INITIAL_NONCE; + this.locked = false; + this.tasks = []; + } +} +NonceManager.INITIAL_NONCE = -1; +class Nonce { + getManager(address, connection) { + const address_ = wallet_ts_dist.EthereumAddress.checksumAddress(address); + if (!this.cache.has(address_)) this.cache.set(address_, new NonceManager(address_, connection)); + return this.cache.get(address_); + } + getNonce(address, connection) { + return this.getManager(address, connection).getNonce(); + } + async commitNonce(address, connection) { + const manager = this.getManager(address, connection); + return manager.setNonce(await manager.getNonce() + 1); + } + resetNonce(address, connection) { + const manager = this.getManager(address, connection); + return manager.resetNonce(); + } + async resetAllNonce() { + await Promise.all(Array.from(this.cache.values()).map((m)=>m.resetNonce() + )); + } + async fn(context, next) { + // set a nonce for Mask wallets + if (context.account && context.providerType === types/* ProviderType.MaskWallet */.lP.MaskWallet && context.method === types/* EthereumMethodType.ETH_SEND_TRANSACTION */.W8.ETH_SEND_TRANSACTION) { + context.requestArguments = { + method: context.method, + params: [ + { + ...context.config, + nonce: (0,lib.toHex)(await this.getNonce(context.account, context.connection)) + }, + ] + }; + } + await next() // send transaction + ; + if (context.method !== types/* EthereumMethodType.ETH_SEND_TRANSACTION */.W8.ETH_SEND_TRANSACTION) return; + try { + const message = context.error?.message ?? ''; + const isGeneralErrorNonce = /\bnonce|transaction\b/im.test(message) && /\b(low|high|old)\b/im.test(message); + const isAuroraErrorNonce = message.includes('ERR_INCORRECT_NONCE'); + // if a transaction hash was received then commit the nonce + if (isGeneralErrorNonce || isAuroraErrorNonce) await this.resetNonce(context.account, context.connection); + else if (!context.error && typeof context.result === 'string') await this.commitNonce(context.account, context.connection); + } catch { + // to scan the context to determine how to update the local nonce, allow to fail silently + } + } + constructor(){ + this.cache = new Map(); + // const { chainId } = SharedContextSettings.value + // // reset all nonce if the chain id of mask wallet was changed + // chainId.subscribe(() => { + // this.resetAllNonce() + // }) + } +} -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - "T": () => (/* binding */ TokenIcon) -}); +;// CONCATENATED MODULE: ../plugins/EVM/src/state/Connection/middleware/Squash.ts -// UNUSED EXPORTS: TokenIconUI -// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.0.0/node_modules/react/jsx-runtime.js -var jsx_runtime = __webpack_require__(71999); -// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.0.0/node_modules/react/index.js -var react = __webpack_require__(86248); -// EXTERNAL MODULE: ../web3-shared/evm/utils/formatter.ts -var formatter = __webpack_require__(66394); -// EXTERNAL MODULE: ../web3-shared/evm/utils/address.ts -var utils_address = __webpack_require__(2239); -// EXTERNAL MODULE: ../web3-shared/evm/constants/constants.ts + 27 modules -var constants = __webpack_require__(26223); -// EXTERNAL MODULE: ../web3-shared/evm/hooks/useChainId.ts -var useChainId = __webpack_require__(31174); -// EXTERNAL MODULE: ../web3-shared/evm/utils/chainDetailed.ts -var chainDetailed = __webpack_require__(80526); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.6.1_1376d0c029fe63cac75d7e36fe4212f4/node_modules/@mui/material/Avatar/Avatar.js + 2 modules -var Avatar = __webpack_require__(30103); -// EXTERNAL MODULE: ../theme/src/entry.ts -var entry = __webpack_require__(30232); -// EXTERNAL MODULE: ../shared/src/UI/hooks/index.ts + 1 modules -var hooks = __webpack_require__(18245); -;// CONCATENATED MODULE: ../shared/src/UI/components/TokenIcon/TokenIconSpecialIconList.json -const TokenIconSpecialIconList_namespaceObject = JSON.parse('[{"name":"MASK","address":"0x2eD9a5C8C13b93955103B9a7C167B67Ef4d568a3","logo_url":"https://dimensiondev.github.io/Mask-VI/assets/Logo/MB--Logo--Geo--ForceCircle--Blue.svg"},{"name":"MASK","address":"0x2B9E7ccDF0F4e5B24757c1E1a80e311E34Cb10c7","logo_url":"https://dimensiondev.github.io/Mask-VI/assets/Logo/MB--Logo--Geo--ForceCircle--Blue.svg"},{"name":"NEST","address":"0x04abEdA201850aC0124161F037Efd70c74ddC74C","logo_url":"https://s2.coinmarketcap.com/static/img/coins/64x64/5841.png"},{"name":"Yes KYC","address":"0x14de81C71B3F73874659082b971433514E201B27","logo_url":"https://etherscan.io/token/images/ykyctoken_32.png"},{"name":"cWBTC","address":"0xC11b1268C1A384e55C48c2391d8d480264A3A7F4","logo_url":"https://etherscan.io/token/images/compoundwrappedbtc_32.png"},{"name":"DANK","address":"0x0cB8D0B37C7487b11d57F1f33dEfA2B1d3cFccfE","logo_url":"https://etherscan.io/token/images/dank_32.png"},{"name":"DSCP","address":"0x03e3f0c25965f13DbbC58246738C183E27b26a56","logo_url":"https://etherscan.io/token/images/disciplina_28.png"},{"name":"GEE","address":"0x4F4f0Db4de903B88f2B1a2847971E231D54F8fd3","logo_url":"https://etherscan.io/token/images/geens_28.png"},{"name":"FKX","address":"0x009e864923b49263c7F10D19B7f8Ab7a9A5AAd33","logo_url":"https://etherscan.io/token/images/knoxstertoken_32.png?v=2"},{"name":"N0031","address":"0x075190c6130EA0a3A7E40802F1D77F4Ea8f38fE2","logo_url":"https://etherscan.io/token/images/nestyfi_32.png"},{"name":"NFC","address":"0xb0866289e870D2efc282406cF4123Df6E5BcB652","logo_url":"https://etherscan.io/token/images/nofaketoday_28.png"},{"name":"O3Swap","address":"0xEe9801669C6138E84bD50dEB500827b776777d28","logo_url":"https://etherscan.io/token/images/o3swaptoken_32.png"},{"name":"QTUM","address":"0x9a642d6b3368ddc662CA244bAdf32cDA716005BC","logo_url":"https://etherscan.io/token/images/qtum_28.png"},{"name":"REMI","address":"0x13cb85823f78Cff38f0B0E90D3e975b8CB3AAd64","logo_url":"https://etherscan.io/token/images/remiit_28.png"},{"name":"REDC","address":"0xB563300A3BAc79FC09B93b6F84CE0d4465A2AC27","logo_url":"https://etherscan.io/token/images/redcab_28.png"},{"name":"SBTC","address":"0xfE18be6b3Bd88A2D2A7f928d00292E7a9963CfC6","logo_url":"https://etherscan.io/token/images/Synthetixsbtc_32.png"},{"name":"TPT","address":"0xC596bD09d652827b0106292D3e378D5938df4B12","logo_url":"https://etherscan.io/token/images/009-TPT-Teleport-Token-Coin-Logo.png"},{"name":"TRL","address":"0xCed1A8529125D1bD06B54a7B01210df357D00885","logo_url":"https://etherscan.io/token/images/giraffage_28.png"},{"name":"UPX","address":"0x5f778ec4B31a506c1Dfd8b06F131E9B451a61D39","logo_url":"https://etherscan.io/token/images/udap_28.png"},{"name":"WYV","address":"0x056017c55aE7AE32d12AeF7C679dF83A85ca75Ff","logo_url":"https://etherscan.io/token/images/wyvern_28.png"},{"name":"VDOC","address":"0x82BD526bDB718C6d4DD2291Ed013A5186cAE2DCa","logo_url":"https://etherscan.io/token/images/vdoc_28.png"},{"name":"rSAI","address":"0xea8b224eDD3e342DEb514C4176c2E72Bcce6fFF9","logo_url":"https://etherscan.io/token/images/redeemabledai_32.png?v=2"},{"name":"ALICE","address":"0xAC51066d7bEC65Dc4589368da368b212745d63E8","logo_url":"https://bscscan.com/token/images/alicetoken_32.png"},{"name":"BP","address":"0xACB8f52DC63BB752a51186D1c55868ADbFfEe9C1","logo_url":"https://bscscan.com/token/images/bunnypark_32.png"},{"name":"DOGGY","address":"0x74926B3d118a63F6958922d3DC05eB9C6E6E00c6","logo_url":"https://bscscan.com/token/images/doggy_32.png"},{"name":"DCH","address":"0x14ACe3d3429408bFA8562099A253172913AD71bd","logo_url":"https://bscscan.com/token/images/dechart_32.png"},{"name":"FRANK","address":"0x129e6d84c6CAb9b0c2F37aD1D14a9fe2E59DAb09","logo_url":"https://bscscan.com/token/images/frankenstein_32.png"},{"name":"RFOX","address":"0x0a3A21356793B49154Fd3BbE91CBc2A16c0457f5","logo_url":"https://bscscan.com/token/images/redfoxlabs_32.png"},{"name":"FOR","address":"0x658A109C5900BC6d2357c87549B651670E5b0539","logo_url":"https://bscscan.com/token/images/forceprotocol_32.png"},{"name":"TPT","address":"0xECa41281c24451168a37211F0bc2b8645AF45092","logo_url":"https://bscscan.com/token/images/tokenpocket_32.png"},{"name":"UNCL","address":"0x0E8D5504bF54D9E44260f8d153EcD5412130CaBb","logo_url":"https://bscscan.com/token/images/unicrypt-uncl_32.png"},{"name":"UNCX","address":"0x09a6c44c3947B69E2B45F4D51b67E6a39ACfB506","logo_url":"https://bscscan.com/token/images/unicrypt_32.png"},{"name":"WOOP","address":"0x8b303d5BbfBbf46F1a4d9741E491e06986894e18","logo_url":"https://bscscan.com/token/images/woonkly_32.png"},{"name":"ZIL","address":"0xb86AbCb37C3A4B64f74f59301AFF131a1BEcC787","logo_url":"https://bscscan.com/token/images/zilliqa_32.png"},{"name":"PBTC","address":"0xeD28A457A5A76596ac48d87C0f577020F6Ea1c4C","logo_url":"https://bscscan.com/token/images/ptokenbtc_32.png"},{"name":"FUSD","address":"0x3c5959b568896393","logo_url":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGYAAABkCAYAAAB0F0VpAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAaGVYSWZNTQAqAAAACAAEAQYAAwAAAAEAAgAAARIAAwAAAAEAAQAAASgAAwAAAAEAAgAAh2kABAAAAAEAAAA+AAAAAAADoAEAAwAAAAEAAQAAoAIABAAAAAEAAABmoAMABAAAAAEAAABkAAAAAHl4y70AAALkaVRYdFhNTDpjb20uYWRvYmUueG1wAAAAAAA8eDp4bXBtZXRhIHhtbG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJYTVAgQ29yZSA2LjAuMCI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnRpZmY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vdGlmZi8xLjAvIgogICAgICAgICAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyI+CiAgICAgICAgIDx0aWZmOkNvbXByZXNzaW9uPjE8L3RpZmY6Q29tcHJlc3Npb24+CiAgICAgICAgIDx0aWZmOlJlc29sdXRpb25Vbml0PjI8L3RpZmY6UmVzb2x1dGlvblVuaXQ+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOlBob3RvbWV0cmljSW50ZXJwcmV0YXRpb24+MjwvdGlmZjpQaG90b21ldHJpY0ludGVycHJldGF0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+MTAyPC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT4xPC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj4xMDA8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KFaK0OAAACAxJREFUeAHtnb9v20YUxx8VJWmLopHRuYi7dGkGFd26hEGXdijgtEPGKP9AbQN1gEy2pwKxATv9B6KMGdok6FyYWbpGQ6cuddGtQCGlKNAfka1+351OoiiKOoqkyGffA+Q7HsnHd+/j9+5ISqRHVZfuQYOo34SZPpF3lWiwijraiNtsJBhu9Bz7HkPHMa1smbbhquoVXuVM6n69SnTBJ6pdh20oFQhUc5cAGjv4PKsiqGqAUTDqa3DSbXxsIwGb5iY9RNJTaAOkr7gsXcoF091fIzoFDA9lZaQHS9pInw9o5d5xWVYtH4weM1qAsV5gmsrJnwNEjwdAyx+Tlgumu7cDjwGIGrxzct5S1AQ4yu4yAS0HjEpZdFD9CJkHmSPoZHMZKa5YMHpQf4ju+vO6LGg9j0Gc3naKtLk4MN29DRi+jU+jyA6UqLuDDHCHVu6izF/yB6MH9ycw1c/f3EpqRGrbOszbsnzBdO83MYs5gpGNvA2ttj4eey4iejZ7edlZy0sRde+3AOUF9J0zKOxBPg/rH5EaU3k5u+QTMd09zLhoI7s54jUgYgY38hh3soPp7mPWNWiJd2l+HcgFTrZU5qDE4WyolK5Se9xqu7bFI8ZBmefhTJGzGBgHZR4Us35hOOnB6NkXn807sfMA4PQ/SHsZJx2Y7p4PW/g8xUk6D3SI6pit2Z/n2A/+eo7OZ/RO0nugiYuffEphLfZgqM5QGtaa3YYRD+CUIsVMzQ6Mvo8C6k6yecA7sL06MB+Muv6lrhJns8ntzR5AxqlbTZzmgyHPSpHzu7UHfNK3RBJ3SJ6VaQWpBq3Eo7mVxgM9RM67SbO02RGj7qu4FGY8mXOJlNbfTtI5Gwz1N7AjFDgpyAMbSROBeDA6WtYLMsipHXng4syoiQfjomXkumIrfG7DXwmelmkwLlqmvVRoS3zUTM/KhM/Edl77iNYvf0gN73Kh7oxT7vX245rntcXO0KYjRn11dZ6uaq4/eP0GbQNMGVAyeIRnaK3o/pNg1Fl+YT97iB471+XV2hXaQKQIldtRuyfBUE3sTGy19la0b5KWm7jA2QwbHAEzWAuvlFTniJEt3kTUjMFoYsh3MuV6/R2Zho+t9sdV/J5uvDBJbNxe/Vrr0jVqXXq/+oYmW4h0Nj6nCYEhP3m/aq3lmZePKHn4xqf4fFIt4xa25oJvdq2bCsqJwSfUblVlJx29ectqW7fRLA/UrmNNm9fqiNFfsuBlJ6V6YDAKDpPK/FLtyXjwl/QffUzf0pcUZNRU+u5RMPxgA5nCUD6n7+kn+oMe08/y4Qyz1zBiZJ7th6GYfyv5cDQLsaksDsrZgOOtcj8MGK6LkSQophNyI0cPK7XoNRrTsaqWNlCM7TLhjFKZJ+YyTBoosuEISmWLQBEKRwWKiDEmCxSBcNS5TOXB5AFFIByZszLj6LNcVj5irtAl+o4+o2v0dmYOt+g9+ob8zHqWoaDyYNgJecARBKXDfRYBJiscQVC4qz3+AzADVeGFqssikSMMyghBLY/Ha4y0LaGSBo5MKN4xu1FMKgszt4EjEwr3cvAr/zVgAl6QJElw5EJhAvzQ7hEYHT7cIEni4MiGwt6fSGU6fCRBMbaG4ciHgl4NHyVsviUToGnbdFZayXB+oC+kmR1nrzqH4RV6jCnhgc9xVrk2bwTGRAz7hBub0p1zfPon7f7zIx2fvqSg/5uw7pw+NwaHwTyTDqZz8jvd+Osx9Qb/mv4JK08CY7CZLmOZn4QqWzb/PhIMBRkr9JKHMRj9YOeeZDTyUteEt4Pw0hiMalXvUAmvF1OXm76MiwePTI3LCJjTB+GVkurCowVpbPJR9JNg1Ep5VwE4WngmJlgmooX7MQlG9WwgKmo4UngmxjMyoYJxvd6O2u5FG0i/NOEXtDem1rmGAjzgtfFetDtRxdMRox+oKSpqop2StfxqN87eaTBqq/ohCtFT57jOVq+No+XecZxd8WBc1MT5qoC2+GjhA8WDUSa4qCmARFjl4axo4Y1mg9FRE5v/wtpdfSEP8Ews0bezwfDx9CueOgsd2u2U5IHdpOdh8o7JYJRqvCDNSZ4eCGzeaTYfjL5UkBh2eVp9xnUhhfWt/tE9a0d0915g26b19m7DGA+o1zO2Y1ZMNc2PmNEu/ZuogriTxTzA5yx327b72oPRJ0IMx0l6D2ACdWEzzW72YFir+tKGmwykcTC25XHl5rxZWFRnOjC8twpHhKUTGw8ACr9+Mf6yS5IC+8E/qsW9pyzqkejyEMrkDbDoRrOW00eM0aQuVbvIMe6IlIDi3YnelYxsk7i4eMQYtS5yjCdMmSlSjJLFI8Zo0Dd5Ds3iOS9zgcI+zA6GtaxsYSp47mdrHcy+8FrFxcYUdmNYsqeysDb1JFr32viwSxat5wuGrdDfGXiCms+L50A2bS5KpvVD/mCMBfrlDfzTjoZpOmMlUpe69oUyfykODNuqniOs3mLn5296aRp7OPIDRMlOkRYUC8ZY3t1fQ/UA/2GrpklmyV+8P0HqSn8mn7a/ywFjrNIvOl3HYsM0CSkD2Im7jltcLkWWC4a7pCcHLZwZA1DVI4gjxOO0FbDpy5Tlgwn3TqW409voPKe6qkgPhrRxTgIgxaesWZ0uF4yxSk8SGA4glXKXFDDUT1Ce4euqT41ZZZbVABP2gEp1rwBJPefeLzDdBTjsc3yCMlIVjpso1QMTNVePSU00+/ivvjoE1cAyt9lIMNwIEPipE/iZSQljho2h4W3+B67PJplkPQvfAAAAAElFTkSuQmCC"},{"name":"FLOW","address":"0x1654653399040a61","logo_url":"https://swap.blocto.app/static/media/flow-logo.7d05ec26.svg"},{"name":"tUSD","address":"0xcfdd90d4a00f7b5b","logo_url":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAAlwSFlzAAAOxAAADsQBlSsOGwAAIABJREFUeJztnXl8XNWV57/3vtpLu2TLkmVLli1vGGOTAHawTSAsWQmQpjvLZ0K2SSY9oZPJ5EN38sknC52Z8Ml0mkxPlk4YsieE7pCEZSbsE8dAbDAGbLCNd8mWra2kkqpKtb337vzx6pVqs1CVqmTZ0s8Iqape3XeX3zv3nHPPPVeg7lDMY85CnusKzOPcYp4AcxzzBJjjmCfAHMc8AeY45gkwxzFPgDmOeQLMccwTYI5jngBzHI5zXYHKQQEKDY163DTgp5kqGvFRgwcvLtxoKMBEEUcnQpwg4wwwziAhhokSJpkqT5zDtlQOFwgBrOWMKpy0UE0njWyglWtZySaW4sOVc61A5gyoRRfr/wKRfn2SUZ7iMM9ylP0M0cMIg4yjY3IhkEKcv4tBConAi4PLWcwXuY6rWY4EZIVmNjM16GHifJsd/IRdDBAhjlmR+80EzkMCKJxI3s8GPscWltFAHV4AxAw9kSolcQwUpxnleU7yVf7IfoY439Sq84YAAsUW2vkMW7iWLurxUsqQR/UEhircZLd04NS0ouumUpTYQy+PsJ/v8SxDxIou51xg1hPAheQ6VvBf2MrVdOXP3UpZU7ECXZmEk3HG9QThRIwToQBHgwOcGR+jNxK03k/GMU2z4PTtlg68ThdNniqavTV01DTSWdNEs7+WKqcbv8OFx+G06pD6fi4FFYpRYnyPZ/kxuznGMLNZV5i1BHAh2UQbP+ODLKUua+CVUilVDsb1BIFYhO5QgKOjgxwY6ePY6AA9oWGiepKkYaAECIcGQoA5yXwtBAiBMgyUYeIQEpfmoM7tY0XdQlbVN9NZ00RHTRNLquqp8/iQSiCFRYhMMthS4W62czfP0MsYs5EIs5AAiiY8PM6nuJgWNES6Y1VKQ9eVyelwkMPBfp7vP8HR6DDHhwcYiIySzBxgpUBZ4woCpRSpPwvfObcn7ItF6kMh8GoOltYvYHl1E+vqWljXuJjVDYuodnlS98qXCDGS3MXT3MlTzDYdYVYRwIvGPdzKLazDgyNPvBrK5GhwgCdPHuDZvqOcTkQYGgtioiyxrlT+IBaArcTlYioahRACIQUo8Hu9NHj8rKtZxJbWFWxbvJJGj/+s9zxKgI/yG56hh9kiDWYJARRvp4tv8i4uoSXjiQeUQgjBYDTMD/f9icd69jNixDB1AwkYpsJUJhLBxMSQW/r0mpgpgSQCE6tOUljSSTkkbs1Bh7ee/7BmE+/uWI9Lc6TbYNfIrse9PM8/8H8JzAJF8ZwTwI3ky7yNL/G2rHneUCaGaXIqMsJDx/fy8/3PMo4JholQKeUvA9Md5GKQKymksMinUpLh4sbF/KeLtnF5yzK8Dpc1jYlM/QCOEeAT3M+fOMG5lAbnkACKOjwc5g4a8OcN/ulIkO2nD/Pbwy9yJDyEHk+epZRzK8AKThuaRFPw9mUXc2PHei5dsNTSEXJgYPIpHuAn7D5nrqRzRoCtLOVBPkod3qxOTJgGO3oP8cDRl9g91EMoHgVT5T3xcO4H30YuCWylU3M6aPXW8Pb2i7hp2QY6axdkXWdbCts5yju5l9g5oME5IcDHeRN3cyPVZD8VfZFRfvn6Lh49fYDeYACBwFRmSj2fmIdnM3ItFiEFHqeLi+pb+NjaK7mmbXW6Dfa1JordnOQWfkYv4Rmu74wSQPElruJO3oGWYw69PtzHt/Y8xu5AD8lk0tLqU1W0vjm7Bz4TIkPtA8tyUECtr4oPdr6ZT6zbis/pzPMbHGGId/MTDjHETOkFM0YACXyGTdzNTen53kzZ5XsDp/j6C/+H14Z6keTb4+fT4GeikLKoed28q2U1n7/0ehZ6q/O+00+IK/gXuhllJkgwYwT4OzbxHW5ON8lUCt002N57iG+9/DinwkEwjNRcL87bQS+ETCJIKZAOjW3NK7j9kmtYWd+MzLESTEw6uStFgspiRtxSX2Ibd3NTlmAMJWP87ugevv7CI5wKjYBhXpCDD9kSzDBNDN3g6d6DfOvFR3l58GTe9RLJLm5nGXUVr1vFCfBxLuVO3pEW+woIxsf56f7nuPuVpwhEw2BODP6FikzFT5mWL2Nn3zH++55H+fPpQ3nXN1PNH/gwTeSbj+VEBQmg2MpS7uamtMJnKkU4EeNXB3fyq0O7CMVjKNPMmvMvtKc/ExNtE2mzdv9QL9/c8xi7+o/lXX8xrTzIRyh+gXrqqBgB6vHwIB+lGjdgee50ZfJ4z2vcd+QFwsk4hmmQqeVfyINvI48ESnF8ZIC7XvgjrwydzOoDgWAzHdzD+yo2UBUp143kEH+fjtQByxTa3X+C7+x9muHYOKZhZNnMcwkTZBcoBZqQHBjp4+6XnuRYcBAzhwS3cRnvpqsidakAARRf4W004svSfo+ODvJPLz/BUGrOPx/t+0rBVJbPY8/QSX5+cCcjsfGszwXwG25jNY1lv3fZCXADK/gHrsl6urvHAnxl10McGDmT0vZJfzaXkS0JFAlD55GeV/nd0T3W52pCcfTi5B5uxV3mIStraV4kd/HurKjcsUSM7+59mt2D3QhjbszzpUAgwFSMJ2L8eP+z7Dh9GMh+SN5CO19gG5SxD8tIAMU93Mp6WrLefeT4K2wfPI5m2qJuXvTnIqsvTMVIIsrXdj5EbyQIGUvfEslXuI5mfGW7d9kI0ISHW7g4w95X7B06xf1H9xAKhzAznDzFDH6hVcDzAUoVXsE86/WpPlGANBW9eoR7XttBUhlZXkInGr/mQ2WrZ1kI4ELyOJ/Cw0QUTDAe5ffHXuL46GD6umKfersDTWVF/Vi/Z/uPmbGQVRyB7f4xlULGdZ7oPcgTPQcw1ER5AsEWOtnCEsoxFZRla9gm2ljHIsvLhcIwTZ7vO87Tp15Hz/DvlwKFotblpdlXM6V4v3OKVPxoTNc5HRlBt4NQS4CpFMFohD8ce5l1Da2010xYAE4kD/ExWvlvxNCnVeVpE8CF5Ke8H0eGMIkkEzzSvZfBWHhaIlwIgWGYbG3t4lMXX5XlRJmNUFgitTcS5O+feYCR+DgOWZyQteMIAJRp8krgFDtOH2aRvxaXZsdIC+rwchUdPMZhptMf0ybA9axgKfXpSgsEO84c5pn+4yk3r0pLhlKgBPidblY3tJA0psf2SkNhOXUMZVp7BUptc4oESkE4GefJ3oNctXglrVV1aGKin3/BB2jlG+jTmAqmRQCB4nNszQru0JXJD/dtJ5qIgWlOKdR6ckxQxyEtr3hu7P1sgR3fUL7aKZRp8FJ/N8+eOcqtXW+y9INU+xvxczPr+Hf2lXyHaSmBW2nn6hwX5Y7eQxwOBxDm+RPGNRuRDnFXgqSEx0/uJ6on04MPIBH8LVfANGIJp0EAxWe4MovtET3BPa/uSC3v2lfND/50oJTCTOjs7DvGrv7j1nsZfXoVK7iERSWXXzIBnAiuoSs1V1k27/N9xzgcGkScv9vlZy1MAfe9/jxJ08ibVm9na8nllkgAxQfYSEPKIyWEIG7q7Dh9mHFTn6U6+vmHLOmpm+waOMGB4TNZ1wgEb6UTMEq6R0kEkAg+y5b0a1MpekLDvDjQg5lInrfeu9mOpDK4//ALee8vo5EtLKMUq6MkAnhx0EHDhOkn4PBIP8MqjhQSO79OOed/e5pRmX+X+POG9yi1XLt+ZWt1RihZSqzu7j/BWCJ7T6EAvsy1lGJ/lGAGKi6nNZWhw6pgJJngpcBJgmmffxmhJraH60ohSihfCJG2n6d0S6zgzWKhUDiEtKJ8i/72G5StQOkG/dEQO3oP8c6Oi4HUbmUEG2nFhSRRpEVQkh/gDq5N/y0QBGJhjoWH0Q0TU5XD9p+AEBCIhXnuzNGSJIqpFI0eP6vrW7JMqMkwloiyb6iXot0NqfwA/eNj6GXxgWRDExLdIXk10Mt1S9filBPRgnX48OAgQaKoMosmQBVOrs2w/ZVSnA4H6Q0NpzusXKJfKYUmJM+eOcIrQ/nh028EgSBmJNnW2sU3r3wfbm1qzT02OsgXdvw7mixuAFUqW42uTMJ63No1nNrePh1kuoeNRILXR/oJxCIs8temr3EiuZE1/JKXKWYqKJoALVQjyd7X1hMe5szYCKZhUroD9OyI6UlieuHdwZNBCkFUTzKWiBVFyoRpEIiFkGJ2ZfNQKIQSnNEjnI4EafbVZJHr07wlRYCpo2gCLKORTIbFDJ2e8AiJ1JJlOQe/bC7fyfLCTPKl2eRyVljZT5xSMm7qDEZDWVOaQLCJdqpxEypiGiiS4oqNtGTt5Y8mE3SPBdIb+mYqV99chEBgmorx6DinwiMk8hbHFC3k7zecDEUT4BpWZr0TM5KcDA1TvMZUPhQy7wSWv8JO41IMrAUdcdaFnWKjfcoF27Qej8foDg0TM/S8qa2N2rN8uzCKIoCGxiaWZL0X05MMRkNF3bRYZHZ2bucLrLneVrgM0yRpGsQNnXEjybieSOkPUx8wwzQZ1xNE9WQq1ZyObhrpRFT2/dJ7HXPqVEly2KF1o2aCeI4EEAiWU19UeUXpAPW4qcrZqxaIR4gZyQI51qaHdEh0AcliRR0ZGKbCSIVhSSGpc3up9/iodnrwO93UuX2YSrFpUSdaEQpdi7+Om5ZvIGkaJE2DkViEmK4zHI8QSkQJJqLWVm8h0ZBoUlgOsByNf7I2lAohBEpYcQLhZIwF3qqJzxB00lRUeUUSID8F2qnwCEmjND/02WAHkQiR2lJmGiSVZWFoQuLRnHQ1tNJZ08TyuoUsqaqnxVeL1+nC73RR4/TSHx3FVIqEYaQcQVMnQLXLw03LN9Lqr8VUVkiaJiRhPU40mWAsGeNUeITu0QAnQgH2D5+mNxy0iJnKWObUtPQ9zTISwSZVJBmzHrwcrKEZa3l4au0tigDN+PPmxGB83ApanOby78QmCEukm0oRN3Rc0sEify0d1Y1sbl3BJY1tLK6qT8ceHhsb5ExklL1Dp+iNBOkeCzASGydh6pjKEuXbWlfy3as/iEdzTqkuh4P9/O3/+xUezYkU4NIcOISko6aJJl81y6obWeSv5aolK3mfuwqnpjGWSk27u/8EL/Qfpz8SYiQ+jhQCl6alXdgwPSIIq7MIxWKEE/G8zztoKKq8ogjQiA8ThZZBg6RhTFv6Z82fKJzSwdLqBjY0LWF9Uxtddc1IIXgt0Mufew9xfGyII6MDnImMEjeS2Pn9hSBloVjSQwpJTLcDpqbe6UIIDGUS1S1zKpTq6L7xsVTy0Yn61ri9LK2qZ0VdM501C9jS2sXfdF3GUCzM/uEzvDTQzauBXkbiUSu/IOUhwtnWWlqpLqqtRRGgBk9e0QPREGoa3p/MwdeEZG1jC+9MpVaLGkn2DHTzyEt7OT4WYGB8lLipW3OvkEghrKf6LB1pTRmiJANFItBSAZ0Ft2en6h3Tkxwc6eO1wGmEEKkI5lrWNrSwdXEXt294GyOxCI91v8aTJw8wHAunHUylegmVqYgkYoST8SwvIUAdHlxoU14TKIoA1skb2RXOt0VLgxSCt7ev4z+u20pHbRP3HdzFb4+8SPdYgLihI6Q1ID7pyuJaOv/vWVApfdwu17IINJxSQykrefWRYD9HRwf4U+/rXNbcwScu2srnNl7LltYu/vmlxzk2OoRTytLrJqzpMaYn7RTGaTjQ8BRBgKLMQFcBvpRFsUGxtLqBD6y6nJX1zcR1nR+9uoPDwQEMFJqUaYUqt9POlbdOiJy8PsoSyUJYRNWkJKYnebJnP492v4rP4eKG9ov40KpNuDSHHfFXETiLeK6n7eyers1rd2KNy0ud24ow8jtdvGvZxeimgW4YBVfxinHGqIzfk8YT5H5hKmWriXbYbRFCQEoaNPtq2byoE4/mRJOS1qo63PYq3nTIq6bf91DkFGAUECvOlIZbalPsXUMHh/v406mDNHnfTIPHz+c3XsclTW08cHQPh0cGGEtESZh6nlcvPY/au49yKmJ785SaUJqsK7Oz+WVuOpl0XGyZm0GYzABYgcDvdFPj9LClzVII1za0oIDe8Aj3vb6LYCKK1+G0wshLIoHA53Thd7oL9rtZRExAUQQotA2p1V+HxnQCk60Bips6P9i3nZ7QCDev2MjymgW8o+Niti1exevBPvYMdHMsOMjpSJBTkSChRIykaWAqk6RppgM4rLMbRPq3FIKhaJgnevbj1CbslyqnG4/mQgormjmSjKc2dgheH+lL+yBs2thPm004h9BwSJk+VKLB42dJdT3t1Y2saWhh44KlLK6yDrroi4zxQv8JfnHwL+wdOoVbc0wrcEYIgdfpxudwFTifAOJFxAcWRYBx4pDzvHs1O+PlNKcCIJyMcf/hF9jVf4xLFyzl8uZlrKpfxJr6Fq5oXkY4GacvMkrf+BihZIzT4SDDsQinwiOMxCOMJWJp5ShuJNFTLt0TYwHu2v1HInoc3bQ6x+tw4ZYOhLBiBmJ6EhOFV3Pi0DRc0oEU1tOsCYnP6UIKQY3TQ7XLw0JfDc3eGlr8tTR4/NS5fbT662j2VeOQGmcio7w0eJJ9g6fY1X+MfUO9jMQjWUvMJVkAWBLHocmC5xtFSVaOAEGiecO8wGs12HYGFbsNTIiJjFm2UD4xFqAnNMxj3a/R4q9jdf0iOmqbWFXfzPLaBbx5YTsep4u4niRp6kT1JAnTIGkYJJVBKB4jlIwS03WC8fE0ZQPxSNpvkK9NWk93tcsaYKXAISUNHj/u1BPukBKPdOKQGm7NgVtz4HE40YRkNBHl+NgQz545wpHRQY4E+zk00k8wPk4yRbrpDn5mXf1ON16HK++jISIYGFTEEzhIJO/QpoW+GityxhQTk2GRsDsj0xsI1krjsdEBDg6fwcCk1uWl1u2j3u1jee0C2msaWNvQSou/jhZfLXUuL06p4ap1TASm2kqa/fqN6oJN4tTfqVgCpVR6kSmcjHFkdJDusSEODJ/h6Nggp0NBQsk4I/EIMT2JSzpwaPmDUA6rRQhBtceL35lPgB6CRZVVJAHCeQpfrctaeIkaydRTVNT9s5C7kKJS77kdVjXjhs6ZcJBToRFeDfRmzPXg1pws9NXQ6PHR6q/HpTnSvvyV9c28s+PiKSmrEsFANMSvX9+FFJKxRJShaJhxPc7pyChj8VhqncEmmErrBbaDyu90YVLeNYB0H6Va4Ndc+Byu9EKYjSNFJpouigDDRFE53ejWHLT46xiMhsvqdcm1sW0zS5PSqnSO1EiYBidDw3SPBditerD1+pie5Pr2tVy3dG16LeBsA2KXdWxskG/veRxNyHTUre1mto+K0QQIu+MnbEEAjIz6lhO2UqshaHR4LR0mZ7APM0DFCBAmSQ9BlmUsOPgcLtqrG9k7eKqYoopCIU1XZHxmewOllGg5n0khcGtOiukUS+lzZ4WST8btCQOycH3LCgFet5slVfW4Hc6cJNOKIwSKKq5oR9BTHMl67XO66axtonJO12wUerJy38t0+JhqKjN/NtLOooyyiq1TpSCFpMrjY2l1Q17yCYUqWgcomgDPkZ3T1ik1Wn21+J2elASc3xZWCdjTkG4Y+JQsmDJHIDjFWFHlFkkAwX4GsjyCUgjaquppralDyErsiZmHDYFAOjWWVTWwyFeb5bFUKMaI0V/kkTNFS4AeglmDrJSi1V9Le+0CEKkz9eZJUFZk9qfmdNJV30y925cnbO9nL3qRPtmiCTDAOCHiE/OqgDq3n+W+BtyaY8rbr+ZRPJQAtym4pGlJwc/v5TmKXZUpmgAGJv/En9OvBQKPw8klC9qo91enbdJ5KVBeCAFKChZ7a3jTwvY8xTNMnP0MTlJCYZSwHCz4Kc/niBrFitqFtLmrMVOm1zzKC9tHcfWS1VQ53XmfjxIr6dzBkuIBBglzJkfbXFxVx4amJTjcE66FeSkwfUz0ocCpBH/d9ea8axSKn/JiweX6N0JJBIijeJ6etB4gEEgEV7etwmdITFHuNAlzExO5FwGnxs3LL6XVn3+QVByd/8l2ip3/YRoRQV/h0awhFkKwccFS3tzcDlJORMfMS4FpQ0hJtcPFezrX532mUOykh6ESTyIvmQAHCPASvXnvf3TNFvyaa/bn9T2PoCRcuWg5axta87yaCvgd+yg1JmsaMYGCh3gt63wbgI0Ll/CO9osQLse8FJgG7LgKoUkaPVXcuOwSvJqD3IEeJcrPebHk+0wrKPT7PMdYjujRhOSvlr+JeqfH3sYynVvMeZimycbGNi5qaM1bzlYofswLjJK/Q2iqmBYBhojxPZ7NEkuGMumqW8gNSy9CczgQQuZtXpjH5LCffikFzVW1vHfZJSz0VuftbzRRqae/9L6ddlj4vezOesbt+LkbO9azrLpxhg6nvXCQ5faVGpsWdnBpc3vB1cb7eJm99E3rftMenuMM8222Z0kBpaCrrpkb2tbid7rTjqF5KTA5MvMuSilpq2ngb7ouo8GdvytbofgqjzHd7SVleD4F/8IzxJjYqiyFoMrp5j2d61nf2IbQZHrlap4EhZG5S0EgMAXc3LGBi5va8jaAKBQPsI/jRa79F0JZBPQpxriLp/NMlCVVDXxk9WaqHZbrcp4EbwwhBMopuXbxaj606gpcUssT/wOE+RC/Lot6XaYZWnAnT3GMQBYJpBBsW7yST6zdAm5ndlj0DJJAKdBTqWOSpkHC0Av/mAYK69qZRObTr6SgzVPLNzbfRJXTXcDuV/wrfyFRJuuqjCqa5CP8puAnt625kmsXrgBHKshyhiWBEBBKRAklY5P+hJMxRuIRNCFmzHjN3qAm8GsuvrDxeurdvnSmlEw8Rzdf56ky3l/dUca2Ku7hFj7OFemK2/PXaCLK5/58Py8MdmNmnCRW0QMlUjGB1S4PS6sbphS3JxCEkzFOjE0EV1Yq3i/zeF0hBLVeP7et3syHV23C73TlDb6J4kr+FzsLeGBLr0NZCQCNeHiev6Mz46Bje5D3BU7zj88/wquBXmtzZYVJkHnuoK6mLtYFZOXhrTQBhACvx8uNHev59EXbWOitLhAJrfgCD/PPPMN0Nf9MlN1KDxDjY9yfdwS6QLC6fhG3r7+aNfUtKV23suah3YmaEOmtXFP5caVyClcq2ldktF0KgeZycX3bGj6+5koW+goP/n76+T47KefgQ4XcNNs5wSf5bd46gUtqbG5ZzifXbWVRTR1KVN4yECLjJsV+rwLIbKcUAuV2cM2iLu7YeD1t/rq8flAoAoyzjR8QK/FUkMlQIT+d4KfsZjv5Kd6dUuPt7ev46pveRa3Lg5kaH5WWCReuiWjvorbdvJrbxXXNK/kfW/+KBo+/4MOdwOAGfshwicu9b4SKOWoN4B3cywucLDjHX922iu9c9QHaqxoQmoaUMivA5EKByPiXfk8IfB4f716yjq9d8R7c0lFwvcRE8XkeZA/9FatfRT31cUxu4WepDYv52Lyok29svonLF7bj0uzl4wkSXEhEAEvSCSmp8/j46+WXcvv6t1rmXoHBVyi+wRN8n12VrVO5rYBCWEkjf+bTNBfIZK2bJoeD/fzy0C4e7XmNSDxmCcqMWlXUVKwgMm18KSTKIVno9nPbqrfw3uWX0OipKvg9heJ/s4tP8fuKt3xGCACKdmo5xheRBYSOiSIYG+e3R17kX/duZxwdaaisNCrnGwmynmgBaJINDW18dsPb2LBgCR4tf2cvWO38Pa/yfn5FcgbaPEMEAIsEdezi9oKSwMaLA93cuesRDkWHIZ5I+womSpm9RCg0oNKp4RCSWzsv5YuXvRNHgaTSNuwn/z/zhxkZfJhRAlhYRh2/58Osp7XAvGcN9Ugswo9e28EjJ/YxHItgmkY6RWuhufJcI9edm/oPt9PFusbFfLDrMq5ZsnrSXMUmim/wJF/jCSZPfVlezDgBwPIWPsRH2Ux7vuabyscfM5Ls7DvGwyf2srPvOIHxEEJKlJHt0TuXBMj05CkFQlo2rSYEXfXNXNXSxc2dG1la04BSFM53iCKBwed5MKXwzazie04IAFb+3Xt4H7dxGYKzm35D0TC7+o/zyIm9vBw4RTA+Tio/S8FEiZUmRG497RxCSIHL4aDNX89bW7q4bula1jS04NYck4r8ISLcwI94qYKm3mQ4ZwQAywZ9F138G7fh4eziUQF9kVEODJ/hyd6DPHfmKH2xEBgmmGriuDqV+73yNK3woKfu55A4HA66/I1ct3Qtb1m0nBV1Cwsu5uTW7QD9bOUHFXPyTAXnlAA2VtHIvdzKZtoLWglgBZtKIYjpSU6EAjzZs58HjrxIXyKSylKpEOaEjpCZIcx+XQyyHTcTr00U2Nm/TMWm5g7e27mRzYs6afRWpc8ommx/pIniDh7mu+wsKqdfJTArCADgRvIFruIrXIsT7SwmkiX27c4NJ+M8c/owDx9/hVeHegmZSZISjGQSUzdwSGkpj0qlc/UXytCZjsEXIms6sr2ThlJoLieaFDgSJov8tbyldQXvWbaedY2Ls04GeaOB30k3/5WH2clJZnq+L4RZQwALioX4uI8PsYVlZydCzpxqKsXpSJA9A90cCvZzfCzAmegYIaETSySIJePEEkmMVGp7WSDDpqmsc4kFApfTicvlwuty40KyQPPQUdPI4qoG1jW2sr6pjVqXd9I6ZbdKMUiEH/AX7uQJzFkw8DZmGQEmsIUlPMzHqcUzZZewbSYGYmECsQiD4yHrdzTEQDTEeDJO2EiinBq5G1aUqfCh4ZUOGr1VNLj9NHmraPD4WeCrptlXgysVI1CMi9pE8SCv8n5+WeSpvjODWUsAUHhxso0OfsEHacSXl6U07xuppzA9/6eWFnRlkjR0DGWim6aV1jYHVgJoK9GjU2o4NQfSNu/ExDSBeuOlYjvF9K94ma/xGMcJzgJvRWHMYgLYUDiQ3MI6Ps0mtrF8UrPxrKVkJHPMNx8ttthrUaUlcbb+jRLnJzzPz3gxtWlj9oj7QjgPCJAJk0tYxGfZxlaWsTwVdnYuVw0Vijg6u+jhAfag1CYNAAABCElEQVTxc3YzSoLZPvA2zjMCTEBgsIVOvsy1bKCVOjw4KX6OLgaZpmSIOKPE+AV7uJs/pfbnnx+DnonzlgCZcCHx4uBm1vFJNnEFS7GHS5tmyIPCMiElglFi/Bt7+TF/4TUGGMdMnc5x/g28jQuCABOwmlKDmxZqaKOGTupZwQJWsZAOGmihOktaTHxTMU6SAON0M8JRhjnKAIcYoocgvYzRRziVHOv8HfBcXGAEmAxmyiiQuJB4cOBKSQcTRQyDOAYGRuo6S9W80FFUtvDzGxPn9CUwSZzVKp/GeX7nIeZ3789xzBNgjmOeAHMc8wSY45gnwBzHPAHmOOYJMMcxT4A5jnkCzHH8f1BFL1d3IEP5AAAEcGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSfvu78nIGlkPSdXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQnPz4KPHg6eG1wbWV0YSB4bWxuczp4PSdhZG9iZTpuczptZXRhLyc+CjxyZGY6UkRGIHhtbG5zOnJkZj0naHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyc+CgogPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9JycKICB4bWxuczpBdHRyaWI9J2h0dHA6Ly9ucy5hdHRyaWJ1dGlvbi5jb20vYWRzLzEuMC8nPgogIDxBdHRyaWI6QWRzPgogICA8cmRmOlNlcT4KICAgIDxyZGY6bGkgcmRmOnBhcnNlVHlwZT0nUmVzb3VyY2UnPgogICAgIDxBdHRyaWI6Q3JlYXRlZD4yMDIwLTExLTE5PC9BdHRyaWI6Q3JlYXRlZD4KICAgICA8QXR0cmliOkV4dElkPmRmMjI3YzkyLTY2MmQtNGI5Ny05N2QwLWFiNmQyYThmYjcwZTwvQXR0cmliOkV4dElkPgogICAgIDxBdHRyaWI6RmJJZD41MjUyNjU5MTQxNzk1ODA8L0F0dHJpYjpGYklkPgogICAgIDxBdHRyaWI6VG91Y2hUeXBlPjI8L0F0dHJpYjpUb3VjaFR5cGU+CiAgICA8L3JkZjpsaT4KICAgPC9yZGY6U2VxPgogIDwvQXR0cmliOkFkcz4KIDwvcmRmOkRlc2NyaXB0aW9uPgoKIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PScnCiAgeG1sbnM6ZGM9J2h0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvJz4KICA8ZGM6dGl0bGU+CiAgIDxyZGY6QWx0PgogICAgPHJkZjpsaSB4bWw6bGFuZz0neC1kZWZhdWx0Jz7mnKrlkb3lkI0g55qE6KSH5pysPC9yZGY6bGk+CiAgIDwvcmRmOkFsdD4KICA8L2RjOnRpdGxlPgogPC9yZGY6RGVzY3JpcHRpb24+CgogPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9JycKICB4bWxuczpwZGY9J2h0dHA6Ly9ucy5hZG9iZS5jb20vcGRmLzEuMy8nPgogIDxwZGY6QXV0aG9yPkhzdWFuIExlZTwvcGRmOkF1dGhvcj4KIDwvcmRmOkRlc2NyaXB0aW9uPgoKIDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PScnCiAgeG1sbnM6eG1wPSdodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvJz4KICA8eG1wOkNyZWF0b3JUb29sPkNhbnZhPC94bXA6Q3JlYXRvclRvb2w+CiA8L3JkZjpEZXNjcmlwdGlvbj4KPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KPD94cGFja2V0IGVuZD0ncic/PolbVtwAAAAASUVORK5CYII="},{"name":"AVAX","address":"0xb31f66aa3c1e785363f0875a1b74e27b85fd66c7","logo_url":"https://raw.githubusercontent.com/sushiswap/icons/master/network/avalanche.jpg\'"}]'); -;// CONCATENATED MODULE: ../shared/src/UI/components/TokenIcon/constants.ts -const NO_IMAGE_COLOR = [ - '#ea7262', - '#f3c76b', - '#62c1ea', - '#627eea', - '#a662ea' -]; -/* harmony default export */ const TokenIcon_constants = (NO_IMAGE_COLOR); -;// CONCATENATED MODULE: ../shared/src/UI/components/TokenIcon/index.tsx +/** + * Squash multiple RPC requests into a single one. + */ class Squash { + /** + * If it returns a cache id, existence means the request can be cached. + * @param requestArguments + * @returns + */ createRequestID(requestArguments, overrides) { + // The -1 is not a valid chain id, only used for distinguishing with other explicit chain id. + const chainId = overrides?.chainId ?? -1; + const { method , params } = requestArguments; + switch(method){ + case types/* EthereumMethodType.ETH_GET_CODE */.W8.ETH_GET_CODE: + { + const [address, tag = 'latest'] = params; + return (0,lib.sha3)([ + chainId, + method, + address, + tag + ].join()); + } + case types/* EthereumMethodType.ETH_GET_BLOCK_BY_NUMBER */.W8.ETH_GET_BLOCK_BY_NUMBER: + { + const [number, full] = params; + return (0,lib.sha3)([ + chainId, + method, + number, + full + ].join()); + } + case types/* EthereumMethodType.ETH_BLOCK_NUMBER */.W8.ETH_BLOCK_NUMBER: + { + return (0,lib.sha3)([ + chainId, + method + ].join()); + } + case types/* EthereumMethodType.ETH_GET_BALANCE */.W8.ETH_GET_BALANCE: + case types/* EthereumMethodType.ETH_GET_TRANSACTION_COUNT */.W8.ETH_GET_TRANSACTION_COUNT: + const [account, tag = 'latest'] = params; + return (0,lib.sha3)([ + chainId, + method, + account, + tag + ].join()); + case types/* EthereumMethodType.ETH_BLOCK_NUMBER */.W8.ETH_BLOCK_NUMBER: + return (0,lib.sha3)([ + chainId, + method + ].join()); + case types/* EthereumMethodType.ETH_CALL */.W8.ETH_CALL: + case types/* EthereumMethodType.ETH_ESTIMATE_GAS */.W8.ETH_ESTIMATE_GAS: + { + const [config, tag = 'latest'] = params; + return (0,lib.sha3)([ + chainId, + method, + JSON.stringify(config), + tag + ].join()); + } + case types/* EthereumMethodType.ETH_GET_TRANSACTION_RECEIPT */.W8.ETH_GET_TRANSACTION_RECEIPT: + case types/* EthereumMethodType.ETH_GET_TRANSACTION_BY_HASH */.W8.ETH_GET_TRANSACTION_BY_HASH: + const [hash] = params; + return (0,lib.sha3)([ + chainId, + method, + hash + ].join()); + default: + return; + } + } + async fn(context, next) { + const id = this.createRequestID(context.request, context.requestOptions); + // unable to cache the request + if (!id) { + await next(); + return; + } + // squash into the cached request + if (this.cache.has(id)) { + try { + context.write(await this.cache.get(id)); + } catch (error) { + context.abort(error); + } finally{ + await next(); + } + return; + } + // cache a request + const [promise, resolve, reject] = (0,esm/* defer */.PQ)(); + this.cache.set(id, promise); + await next(); + // keep cache for 1s + setTimeout(()=>{ + this.cache.delete(id); + }, 1000); + if (context.error) reject(context.error); + else resolve(context.result); + } + constructor(){ + this.cache = new Map(); + } +} +;// CONCATENATED MODULE: ../plugins/EVM/src/state/Connection/utils.ts +function getReceiptStatus(receipt) { + if (!receipt) return src/* TransactionStatusType.NOT_DEPEND */.g8.NOT_DEPEND; + const status = receipt.status; + if (receipt.status === false || [ + '0', + '0x', + '0x0' + ].includes(status)) return src/* TransactionStatusType.FAILED */.g8.FAILED; + if (receipt.status === true || [ + '1', + '0x1' + ].includes(status)) return src/* TransactionStatusType.SUCCEED */.g8.SUCCEED; + return src/* TransactionStatusType.NOT_DEPEND */.g8.NOT_DEPEND; +} +const assetCache = Object.create(null); +const lazyVoid = Promise.resolve(); +const BASE64_PREFIX = 'data:application/json;base64,'; +const HTTP_PREFIX = 'http'; +const CORS_PROXY = 'https://cors.r2d2.to'; +async function getERC721TokenAssetFromChain(tokenURI) { + if (!tokenURI) return; + if (assetCache[tokenURI]) return assetCache[tokenURI]; + let promise = lazyVoid; + try { + // for some NFT tokens return JSON in base64 encoded + if (tokenURI.startsWith(BASE64_PREFIX)) { + promise = Promise.resolve(JSON.parse(atob(tokenURI.replace(BASE64_PREFIX, '')))); + } else { + // for some NFT tokens return JSON + promise = Promise.resolve(JSON.parse(tokenURI)); + } + } catch (error) { + void 0; + } + if (promise === lazyVoid) { + try { + // for some NFT tokens return an URL refers to a JSON file + promise = globalThis.r2d2Fetch(tokenURI.startsWith(HTTP_PREFIX) ? `${CORS_PROXY}/?${tokenURI}` : tokenURI).then(async (r)=>{ + const json = await r.json(); + return { + ...json, + mediaUrl: json.image || json.animation_url, + imageURL: json.image || json.animation_url + }; + }, noop); + assetCache[tokenURI] = await promise; + return assetCache[tokenURI]; + } catch (err) { + return; + } + } + return; +} +;// CONCATENATED MODULE: ../plugins/EVM/src/state/Connection/middleware/RecentTransaction.ts -function getFallbackIcons(address, baseURIs) { - const checkSummedAddress = (0,formatter/* formatEthereumAddress */.j8)(address); - if ((0,utils_address/* isSameAddress */.Wr)((0,constants/* getTokenConstants */.aV)().NATIVE_TOKEN_ADDRESS, checkSummedAddress)) { - return baseURIs.map((x)=>`${x}/info/logo.png` - ); - } - const specialIcon = TokenIconSpecialIconList_namespaceObject.find((0,utils_address/* currySameAddress */.DC)(address)); - if (specialIcon) return [ - specialIcon.logo_url - ]; - // load from remote - return baseURIs.map((x)=>`${x}/assets/${checkSummedAddress}/logo.png` - ); -} -const useStyles = (0,entry/* makeStyles */.ZL)()((theme)=>({ - icon: { - backgroundColor: theme.palette.common.white, - margin: 0 +class RecentTransaction { + async fn(context, next) { + const { Transaction , TransactionWatcher , BalanceNotifier , BlockNumberNotifier } = settings/* Web3StateSettings.value */.o.value; + const isSquashed = typeof context.result !== 'undefined'; + await next(); + try { + switch(context.method){ + case types/* EthereumMethodType.ETH_SEND_TRANSACTION */.W8.ETH_SEND_TRANSACTION: + if (!context.config || typeof context.result !== 'string') return; + await Transaction?.addTransaction?.(context.chainId, context.account, context.result, context.config); + await TransactionWatcher?.watchTransaction(context.chainId, context.result, context.config); + break; + case types/* EthereumMethodType.ETH_GET_TRANSACTION_RECEIPT */.W8.ETH_GET_TRANSACTION_RECEIPT: + if (isSquashed) return; + const receipt = context.result; + const status = getReceiptStatus(receipt); + if (!receipt?.transactionHash || status === src/* TransactionStatusType.NOT_DEPEND */.g8.NOT_DEPEND) return; + // update built-in notifier + BalanceNotifier?.emitter.emit('update', { + chainId: context.chainId, + account: receipt.from + }); + // it could be a contract address, but it doesn't matter + BalanceNotifier?.emitter.emit('update', { + chainId: context.chainId, + account: receipt.to + }); + BlockNumberNotifier?.emitter.emit('update', context.chainId); + break; + case types/* EthereumMethodType.MASK_REPLACE_TRANSACTION */.W8.MASK_REPLACE_TRANSACTION: + if (!context.config || typeof context.result !== 'string') return; + const [hash] = context.request.params; + await Transaction?.replaceTransaction?.(context.chainId, context.account, hash, context.result, context.config); + break; + } + } catch { + // to record tx in the database, allow to fail silently } - }) -); -function TokenIcon(props) { - const currentChainId = (0,useChainId/* useChainId */.xx)(); - const { address , logoURI , name , chainId =currentChainId , AvatarProps , classes } = props; - let _logoURI = logoURI; - if (!logoURI && (0,utils_address/* isSameAddress */.Wr)((0,constants/* getTokenConstants */.aV)().NATIVE_TOKEN_ADDRESS, (0,formatter/* formatEthereumAddress */.j8)(address))) { - const nativeToken = (0,chainDetailed/* getChainDetailed */.$G)(chainId); - _logoURI = nativeToken?.nativeCurrency.logoURI; - } - const { TOKEN_ASSET_BASE_URI } = (0,constants/* useTokenAssetBaseURLConstants */.hy)(chainId); - const fallbackLogos = getFallbackIcons(address, TOKEN_ASSET_BASE_URI ?? []); - const images = _logoURI ? Array.isArray(_logoURI) ? [ - ..._logoURI, - ...fallbackLogos - ] : [ - _logoURI, - ...fallbackLogos - ] : fallbackLogos; - const { value: trustedLogoURI , loading } = (0,hooks/* useImageFailOver */.j)(images, ''); - return /*#__PURE__*/ (0,jsx_runtime.jsx)(TokenIconUI, { - logoURL: loading ? undefined : trustedLogoURI, - AvatarProps: AvatarProps, - classes: classes, - name: name - }); + } } -const TokenIconUI = /*#__PURE__*/ (0,react.memo)((props)=>{ - const { logoURL , AvatarProps , name } = props; - // add background color to no-img token icon - const defaultBackgroundColorNumber = name?.split('')?.reduce((total, cur)=>total + Number(cur?.charCodeAt(0)) - , 0); - const defaultBackgroundColor = defaultBackgroundColorNumber ? TokenIcon_constants?.[defaultBackgroundColorNumber % 5] : undefined; - const classes = (0,entry/* useStylesExtends */.Bc)(useStyles(), props); - return /*#__PURE__*/ (0,jsx_runtime.jsx)(Avatar/* default */.Z, { - className: classes.icon, - src: logoURL, - style: { - backgroundColor: logoURL ? undefined : defaultBackgroundColor - }, - ...AvatarProps, - children: name?.substr(0, 1).toUpperCase() - }); -}); - -/***/ }), +// EXTERNAL MODULE: ../../node_modules/.pnpm/bignumber.js@9.0.2/node_modules/bignumber.js/bignumber.js +var bignumber = __webpack_require__(42263); +var bignumber_default = /*#__PURE__*/__webpack_require__.n(bignumber); +;// CONCATENATED MODULE: ../plugins/EVM/src/state/Connection/translators/Base.ts -/***/ 86898: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -"use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "o": () => (/* binding */ WalletIcon) -/* harmony export */ }); -/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(71999); -/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(83849); -/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _masknet_theme__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(30232); -/* harmony import */ var _ImageIcon__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(70552); -const useStyles = (0,_masknet_theme__WEBPACK_IMPORTED_MODULE_2__/* .makeStyles */ .ZL)()((theme, props)=>({ - root: { - position: 'relative', - display: 'flex', - height: props.size, - width: props.size - }, - mainIcon: { - display: 'block', - width: '100%', - height: '100%' - }, - badgeIcon: { - position: 'absolute', - right: -2, - bottom: -2 - }, - networkIcon: {}, - providerIcon: { - border: props?.isBorderColorNotDefault ? `1px solid ${theme.palette.background.paper}` : `1px solid ${theme.palette.background.default}`, - borderRadius: '50%' +class Base { + async encode(context) { + const config = context.config; + if (!config || isReadOnlyMethod(context.method)) return; + // #region polyfill transaction config + try { + // add gas margin + if (config.gas) { + config.gas = (0,lib.toHex)(bignumber_default().max((0,lib.toHex)((0,payload/* addGasMargin */.bu)(config.gas).toFixed()), 21000).toFixed()); + } + // add gas price + const hub = await settings/* Web3StateSettings.value.Hub */.o.value.Hub?.getHub?.({ + chainId: context.chainId + }); + const options = await hub?.getGasOptions?.(context.chainId); + const { [src/* GasOptionType.SLOW */.Qd.SLOW]: slowOption , [src/* GasOptionType.NORMAL */.Qd.NORMAL]: normalOption } = options ?? {}; + if (resolver/* chainResolver.isSupport */.VU.isSupport(context.chainId, 'EIP1559')) { + delete config.gasPrice; + if (slowOption?.suggestedMaxFeePerGas && normalOption && (0,src/* isLessThan */.FI)(config.maxPriorityFeePerGas ? (0,formatter/* formatWeiToGwei */.f1)(config.maxPriorityFeePerGas) : 0, slowOption.suggestedMaxPriorityFeePerGas)) { + config.maxFeePerGas = (0,lib.toHex)((0,formatter/* formatGweiToWei */.nU)(normalOption.suggestedMaxFeePerGas).toFixed(0)); + config.maxPriorityFeePerGas = (0,lib.toHex)((0,formatter/* formatGweiToWei */.nU)(normalOption.suggestedMaxPriorityFeePerGas).toFixed(0)); + } + } else { + delete config.maxFeePerGas; + delete config.maxPriorityFeePerGas; + if (slowOption && normalOption && (0,src/* isLessThan */.FI)(config.gasPrice ?? 0, slowOption.suggestedMaxFeePerGas)) { + config.gasPrice = (0,lib.toHex)((0,formatter/* formatGweiToWei */.nU)(normalOption.suggestedMaxFeePerGas).toFixed(0)); + } + } + } catch (err) { + console.error(err); } - }) -); -const WalletIcon = (props)=>{ - const { size =24 , badgeSize =14 , inverse =false , networkIcon , providerIcon } = props; - const classes = (0,_masknet_theme__WEBPACK_IMPORTED_MODULE_2__/* .useStylesExtends */ .Bc)(useStyles({ - size: badgeSize > size ? badgeSize : size, - isBorderColorNotDefault: props.isBorderColorNotDefault - }), props); - // #region icon names - const names = [ - classnames__WEBPACK_IMPORTED_MODULE_1___default()(classes.mainIcon, classes.networkIcon), - classnames__WEBPACK_IMPORTED_MODULE_1___default()(classes.badgeIcon, classes.providerIcon), - ]; - if (inverse) names.reverse(); + context.config = config; // #endregion - return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", { - className: classes.root, - style: { - height: size, - width: size - }, - children: [ - networkIcon ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_ImageIcon__WEBPACK_IMPORTED_MODULE_3__/* .ImageIcon */ .X, { - classes: { - icon: names[0] - }, - size: size, - icon: networkIcon - }) : null, - providerIcon ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_ImageIcon__WEBPACK_IMPORTED_MODULE_3__/* .ImageIcon */ .X, { - classes: { - icon: names[1] - }, - size: badgeSize, - icon: providerIcon - }) : null - ] - }); -}; + } + async decode(context) {} +} +;// CONCATENATED MODULE: ../plugins/EVM/src/state/Connection/translators/Polygon.ts -/***/ }), -/***/ 18245: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -"use strict"; +class Polygon extends Base { + async encode(context) { + await super.encode(context); + if (!context.config) return; + // the current version of metamask doesn't support polygon with EIP1559 + if (context.providerType !== types/* ProviderType.MetaMask */.lP.MetaMask) return; + if (context.method !== types/* EthereumMethodType.ETH_SEND_TRANSACTION */.W8.ETH_SEND_TRANSACTION) return; + const config = { + ...context.config, + // keep the legacy gasPrice + ...isReadOnlyMethod(context.method) ? {} : { + gasPrice: context.config.gasPrice ?? await context.connection.getGasPrice() + } + }; + delete config.maxFeePerGas; + delete config.maxPriorityFeePerGas; + context.config = config; + } +} -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - "j": () => (/* reexport */ useImageFailOver) -}); +;// CONCATENATED MODULE: ../plugins/EVM/src/state/Connection/middleware/Translator.ts -// EXTERNAL MODULE: ../../node_modules/.pnpm/react-use@17.3.2_react-dom@18.0.0+react@18.0.0/node_modules/react-use/esm/useAsync.js -var useAsync = __webpack_require__(73570); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@dimensiondev+kit@0.0.0-20220228054820-f2378be/node_modules/@dimensiondev/kit/esm/index.js + 1 modules -var esm = __webpack_require__(28807); -;// CONCATENATED MODULE: ../shared/src/UI/hooks/useImageFailOver.ts -const cache = new Map(); /** - * Request images from different sources and get the image's url of the loaded - * @param urls the url of different image sources - * @param suffix the image file path suffix - */ function useImageFailOver(urls, suffix) { - return (0,useAsync/* default */.Z)(async ()=>{ - const cacheKey = `${urls.join()}_${suffix}`; - if (cache.has(cacheKey)) return cache.get(cacheKey); - try { - const imgs = urls.map((v)=>v + suffix - ); - const img = await (0,esm/* findAvailableImageURL */.ky)(imgs); - const url = urls[imgs.indexOf(img)]; - cache.set(cacheKey, url); - return url; - } catch { - return ''; - } - }, [ - urls.join(), - suffix - ]); + * JSON RPC transactor for EVM chains. + */ class Translator { + async fn(context, next) { + const translator = this.translators[context.chainId] ?? this.base; + if (translator.encode) await translator.encode(context); + await next(); + if (translator.decode) await translator.decode(context); + } + constructor(){ + this.base = new Base(); + this.translators = { + [types/* ChainId.Mumbai */.a_.Mumbai]: new Polygon() + }; + } } -;// CONCATENATED MODULE: ../shared/src/UI/hooks/index.ts +;// CONCATENATED MODULE: ../plugins/EVM/src/state/Connection/middleware/TransactionWatcher.ts +class TransactionWatcher { + async fn(context, next) { + await next(); + if (context.method === types/* EthereumMethodType.ETH_SEND_TRANSACTION */.W8.ETH_SEND_TRANSACTION && context.error) { + settings/* Web3StateSettings.value.TransactionWatcher */.o.value.TransactionWatcher?.notifyError(context.error); + } + } +} -/***/ }), +;// CONCATENATED MODULE: ../plugins/EVM/src/state/Connection/composer.ts -/***/ 40915: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -"use strict"; -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - "bP": () => (/* reexport */ BaseSharedUIProvider), - "vU": () => (/* reexport */ sharedUIComponentOverwrite), - "Xr": () => (/* reexport */ sharedUINetworkIdentifier), - "uD": () => (/* reexport */ useBaseUIRuntime) -}); -// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.0.0/node_modules/react/jsx-runtime.js -var jsx_runtime = __webpack_require__(71999); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@dimensiondev+holoflows-kit@0.9.0-20210902104757-7c3d0d0_webextension-polyfill@0.9.0/node_modules/@dimensiondev/holoflows-kit/umd/index.cjs -var umd = __webpack_require__(85646); -// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.0.0/node_modules/react/index.js -var react = __webpack_require__(86248); -// EXTERNAL MODULE: ../shared-base-ui/src/index.ts -var src = __webpack_require__(53242); -;// CONCATENATED MODULE: ../shared/src/contexts/base/BaseSharedUIProvider.tsx -const sharedUINetworkIdentifier = new umd.ValueRef('unknown'); -const sharedUIComponentOverwrite = new umd.ValueRef({}); -const BaseUIContext = /*#__PURE__*/ (0,react.createContext)({ - networkIdentifier: sharedUINetworkIdentifier.value, - componentOverwrite: sharedUIComponentOverwrite.value -}); -const BaseSharedUIProvider = ({ children })=>{ - const snsId = (0,src/* useValueRef */.E)(sharedUINetworkIdentifier); - const overwrite = (0,src/* useValueRef */.E)(sharedUIComponentOverwrite); - const contextValue = (0,react.useMemo)(()=>{ - const value = { - networkIdentifier: snsId, - componentOverwrite: overwrite + + +class Composer { + compose() { + return (context, next)=>{ + let index = -1; + const dispatch1 = (i)=>{ + if (i <= index) return Promise.reject(new Error('next() called multiple times')); + index = i; + let fn; + if (i >= this.listOfMiddleware.length) fn = next; + else fn = this.listOfMiddleware[i].fn.bind(this.listOfMiddleware[i]); + if (!fn) return Promise.resolve(); + try { + return Promise.resolve(fn(context, dispatch1.bind(null, i + 1))); + } catch (err) { + return Promise.reject(err); + } + }; + return dispatch1(0); }; - return value; - }, [ - snsId, - overwrite - ]); - return /*#__PURE__*/ (0,jsx_runtime.jsx)(BaseUIContext.Provider, { - value: contextValue, - children: children - }); -}; -const useBaseUIRuntime = ()=>{ - return (0,react.useContext)(BaseUIContext); -}; + } + use(middleware) { + this.listOfMiddleware.push(middleware); + } + async dispatch(context, next) { + await this.compose()(context, next); + } + constructor(){ + this.listOfMiddleware = []; + } +} +let pid = 0; +class RequestContext { + get writeable() { + return this._writeable; + } + get account() { + return ((0,payload/* getPayloadFrom */.Ri)(this.request) ?? this._options?.account) ?? this._account; + } + get chainId() { + return ((0,payload/* getPayloadChainId */.si)(this.request) ?? this._options?.chainId) ?? this._chainId; + } + get providerType() { + return this.requestOptions?.providerType ?? this._providerType; + } + get method() { + return this.request.method; + } + get config() { + return (0,payload/* getPayloadConfig */.is)(this.request); + } + set config(config) { + if (!this.config || !config) return; + const method = this._requestArguments.method; + switch(method){ + case types/* EthereumMethodType.MASK_REPLACE_TRANSACTION */.W8.MASK_REPLACE_TRANSACTION: + this._requestArguments = { + method: this.method, + params: [ + this._requestArguments.params[0], + config + ] + }; + break; + case types/* EthereumMethodType.ETH_SEND_TRANSACTION */.W8.ETH_SEND_TRANSACTION: + this._requestArguments = { + method: this.method, + params: [ + config, + 'latest' + ] + }; + break; + default: + break; + } + } + get connection() { + return this._connection; + } + get requestId() { + return this.id; + } + get requestOptions() { + return this._options; + } + get requestArguments() { + return this._requestArguments; + } + set requestArguments(requestArguments) { + this._requestArguments = requestArguments; + } + get request() { + return { + id: this.id, + jsonrpc: '2.0', + params: [], + ...this.requestArguments + }; + } + get response() { + if (this._writeable) return; + return { + id: this.id, + jsonrpc: '2.0', + result: this._result + }; + } + get error() { + if (this._writeable) return null; + if (hasError(this._error, this.response)) return getError(this._error, this.response, 'Failed to send request.'); + return null; + } + set error(error) { + this._error = error; + } + get result() { + return this._result; + } + set result(result) { + this._result = result; + } + write(result) { + this.end(null, result); + } + abort(error, fallback = 'Failed to send request.') { + this.end(error || new Error(fallback)); + } + end(error = null, result) { + if (!this._writeable) return; + this._writeable = false; + this.error = error; + this.result = result; + } + toJSON() { + return {}; + } + constructor(_connection, _requestArguments, _options){ + this._connection = _connection; + this._requestArguments = _requestArguments; + this._options = _options; + this.id = pid; + this._writeable = true; + this._error = null; + this._account = settings/* Web3StateSettings.value.Provider */.o.value.Provider?.account?.getCurrentValue() ?? ''; + this._chainId = settings/* Web3StateSettings.value.Provider */.o.value.Provider?.chainId?.getCurrentValue() ?? types/* ChainId.Mainnet */.a_.Mainnet; + this._providerType = settings/* Web3StateSettings.value.Provider */.o.value.Provider?.providerType?.getCurrentValue() ?? types/* ProviderType.MaskWallet */.lP.MaskWallet; + // increase pid + pid += 1; + this.id = pid; + // mask wallet settings + if (this.providerType === types/* ProviderType.MaskWallet */.lP.MaskWallet) { + const { account , chainId } = settings/* SharedContextSettings.value */.J.value; + this._account = account.getCurrentValue(); + this._chainId = chainId.getCurrentValue(); + } + } +} +const composer = new Composer(); +composer.use(new Squash()); +composer.use(new Nonce()); +composer.use(new Translator()); +composer.use(new Interceptor()); +composer.use(new RecentTransaction()); +composer.use(new TransactionWatcher()); +composer.use(new AddressBook_AddressBook()); +function dispatch(context, next) { + return composer.dispatch(context, next); +} +function createContext(connection, requestArguments, options) { + return new RequestContext(connection, requestArguments, options); +} -;// CONCATENATED MODULE: ../shared/src/contexts/base/index.ts +;// CONCATENATED MODULE: ../plugins/EVM/src/state/Connection/connection.ts -/***/ }), -/***/ 83938: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -"use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "F": () => (/* reexport safe */ _InjectedDialog__WEBPACK_IMPORTED_MODULE_0__.F) -/* harmony export */ }); -/* harmony import */ var _InjectedDialog__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(7849); -/***/ }), -/***/ 70070: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -"use strict"; -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - "QQ": () => (/* binding */ EvmSharedUIProvider), - "yQ": () => (/* reexport */ usePickToken) -}); -// UNUSED EXPORTS: TokenPickerProvider -// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.0.0/node_modules/react/jsx-runtime.js -var jsx_runtime = __webpack_require__(71999); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@dimensiondev+kit@0.0.0-20220228054820-f2378be/node_modules/@dimensiondev/kit/esm/index.js + 1 modules -var esm = __webpack_require__(28807); -// EXTERNAL MODULE: ../shared-base/src/index.ts + 1 modules -var src = __webpack_require__(78144); -// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.0.0/node_modules/react/index.js -var react = __webpack_require__(86248); -// EXTERNAL MODULE: ../shared/src/index.ts -var shared_src = __webpack_require__(2666); -// EXTERNAL MODULE: ../theme/src/entry.ts -var entry = __webpack_require__(30232); -// EXTERNAL MODULE: ../web3-shared/evm/constants/constants.ts + 27 modules -var constants = __webpack_require__(26223); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.6.1_1376d0c029fe63cac75d7e36fe4212f4/node_modules/@mui/material/useMediaQuery/useMediaQuery.js -var useMediaQuery = __webpack_require__(93854); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.6.1_1376d0c029fe63cac75d7e36fe4212f4/node_modules/@mui/material/DialogContent/DialogContent.js + 1 modules -var DialogContent = __webpack_require__(33347); -// EXTERNAL MODULE: ../shared/src/contexts/base/index.ts + 1 modules -var base = __webpack_require__(40915); -// EXTERNAL MODULE: ../shared/src/constants.tsx -var src_constants = __webpack_require__(44459); -// EXTERNAL MODULE: ../shared/src/contexts/components/index.ts -var components = __webpack_require__(83938); -;// CONCATENATED MODULE: ../shared/src/contexts/evm/TokenPicker/useRowSize.ts -function useRowSize() { - const [rowSize, setRowSize] = (0,react.useState)(54); - (0,react.useEffect)(()=>{ + +const EMPTY_STRING = ()=>Promise.resolve('') +; +const ZERO = ()=>Promise.resolve(0) +; +function isReadOnlyMethod(method) { + return [ + types/* EthereumMethodType.ETH_GET_CODE */.W8.ETH_GET_CODE, + types/* EthereumMethodType.ETH_GAS_PRICE */.W8.ETH_GAS_PRICE, + types/* EthereumMethodType.ETH_BLOCK_NUMBER */.W8.ETH_BLOCK_NUMBER, + types/* EthereumMethodType.ETH_GET_BALANCE */.W8.ETH_GET_BALANCE, + types/* EthereumMethodType.ETH_GET_BLOCK_BY_NUMBER */.W8.ETH_GET_BLOCK_BY_NUMBER, + types/* EthereumMethodType.ETH_GET_BLOCK_BY_HASH */.W8.ETH_GET_BLOCK_BY_HASH, + types/* EthereumMethodType.ETH_GET_TRANSACTION_BY_HASH */.W8.ETH_GET_TRANSACTION_BY_HASH, + types/* EthereumMethodType.ETH_GET_TRANSACTION_RECEIPT */.W8.ETH_GET_TRANSACTION_RECEIPT, + types/* EthereumMethodType.ETH_GET_TRANSACTION_COUNT */.W8.ETH_GET_TRANSACTION_COUNT, + types/* EthereumMethodType.ETH_GET_FILTER_CHANGES */.W8.ETH_GET_FILTER_CHANGES, + types/* EthereumMethodType.ETH_NEW_PENDING_TRANSACTION_FILTER */.W8.ETH_NEW_PENDING_TRANSACTION_FILTER, + types/* EthereumMethodType.ETH_ESTIMATE_GAS */.W8.ETH_ESTIMATE_GAS, + types/* EthereumMethodType.ETH_CALL */.W8.ETH_CALL, + types/* EthereumMethodType.ETH_GET_LOGS */.W8.ETH_GET_LOGS, + ].includes(method); +} +function isNativeTokenAddress(chainId, address) { + if (!address) return false; + return (0,src/* isSameAddress */.Wr)(address, (0,constants/* getTokenConstants */.aV)(chainId).NATIVE_TOKEN_ADDRESS); +} +async function fetchJSON(input, init, options) { + const fetch_ = options?.fetch ?? globalThis.fetch; + const response = await fetch_(input, init); + if (!response.ok) throw new Error('Failed to fetch.'); + return response.json(); +} +class Connection { + // Hijack RPC requests and process them with koa like middleware + get hijackedRequest() { + return (requestArguments, initial)=>{ + return new Promise(async (resolve, reject)=>{ + const options = this.getOptions(initial); + const context = createContext(this, requestArguments, options); + try { + await dispatch(context, async ()=>{ + if (!context.writeable) return; + try { + switch(context.method){ + case types/* EthereumMethodType.MASK_LOGIN */.W8.MASK_LOGIN: + context.write(await settings/* Web3StateSettings.value.Provider */.o.value.Provider?.connect(options.chainId, options.providerType)); + break; + case types/* EthereumMethodType.MASK_LOGOUT */.W8.MASK_LOGOUT: + context.write(await settings/* Web3StateSettings.value.Provider */.o.value.Provider?.disconnect(options.providerType)); + break; + default: + const web3Provider = await Providers[isReadOnlyMethod(context.method) ? types/* ProviderType.MaskWallet */.lP.MaskWallet : options.providerType].createWeb3Provider({ + account: options.account, + chainId: options.chainId + }); + // send request and set result in the context + context.write(await web3Provider.request(context.requestArguments)); + } + } catch (error) { + context.abort(error); + } + }); + } catch (error) { + context.abort(error); + } finally{ + if (context.error) reject(context.error); + else resolve(context.result); + } + }); + }; + } + getOptions(initial, overrides) { + return { + account: this.account, + chainId: this.chainId, + providerType: this.providerType, + ...initial, + overrides: { + from: this.account, + chainId: this.chainId, + ...initial?.overrides, + ...overrides?.overrides + } + }; + } + getWeb3(initial) { + const web3 = createWeb3(createWeb3Provider((requestArguments)=>this.hijackedRequest(requestArguments, this.getOptions(initial)) + )); + return Promise.resolve(web3); + } + getWeb3Provider(initial) { + const web3Provider = createWeb3Provider((requestArguments)=>this.hijackedRequest(requestArguments, this.getOptions(initial)) + ); + return Promise.resolve(web3Provider); + } + async connect(initial) { + return this.hijackedRequest({ + method: types/* EthereumMethodType.MASK_LOGIN */.W8.MASK_LOGIN, + params: [] + }, this.getOptions(initial)); + } + async disconnect(initial) { + await this.hijackedRequest({ + method: types/* EthereumMethodType.MASK_LOGOUT */.W8.MASK_LOGOUT, + params: [] + }, this.getOptions(initial)); + } + async transferFungibleToken(address, recipient, amount, memo, initial) { + const options = this.getOptions(initial); + // Native + if (!address || isNativeTokenAddress(options.chainId, address)) { + const tx = { + from: options.account, + to: recipient, + value: (0,lib.toHex)(amount), + data: memo ? (0,lib.toHex)(memo) : undefined + }; + return this.sendTransaction({ + ...tx, + gas: await this.estimateTransaction(tx, 50000, options) + }, options); + } + // ERC20 + const contract = await this.getERC20Contract(address, options); + const tx = contract?.methods.transfer(recipient, (0,lib.toHex)(amount)); + return (0,utils_contract/* sendTransaction */.T7)(contract, tx, options.overrides); + } + async transferNonFungibleToken(address, recipient, tokenId, amount, schema, initial) { + const options = this.getOptions(initial); + const actualSchema = schema ?? await this.getTokenSchema(address, options); + // ERC1155 + if (actualSchema === types/* SchemaType.ERC1155 */.XQ.ERC1155) { + const contract = await this.getERC1155Contract(address, options); + const tx = contract?.methods.safeTransferFrom(options.account, recipient, tokenId, amount ?? '', '0x'); + return (0,utils_contract/* sendTransaction */.T7)(contract, tx, options.overrides); + } + // ERC721 + const contract = await this.getERC721Contract(address, options); + const tx = contract?.methods.transferFrom(options.account, recipient, tokenId); + return (0,utils_contract/* sendTransaction */.T7)(contract, tx, options.overrides); + } + async getGasPrice(initial) { + return this.hijackedRequest({ + method: types/* EthereumMethodType.ETH_GAS_PRICE */.W8.ETH_GAS_PRICE + }, this.getOptions(initial)); + } + async getTokenSchema(address, initial) { + const options = this.getOptions(initial); + const ERC165_INTERFACE_ID = '0x01ffc9a7'; + const ERC721_ENUMERABLE_INTERFACE_ID = '0x780e9d63'; + const ERC1155_ENUMERABLE_INTERFACE_ID = '0xd9b67a26'; + const erc165Contract = await this.getWeb3Contract(address, ERC165_namespaceObject, options); + const isERC165 = await erc165Contract?.methods.supportsInterface(ERC165_INTERFACE_ID).call({ + from: options.account + }); + const isERC721 = await erc165Contract?.methods.supportsInterface(ERC721_ENUMERABLE_INTERFACE_ID).call({ + from: options.account + }); + if (isERC165 && isERC721) return types/* SchemaType.ERC721 */.XQ.ERC721; + const isERC1155 = await erc165Contract?.methods.supportsInterface(ERC1155_ENUMERABLE_INTERFACE_ID).call({ + from: options.account + }); + if (isERC165 && isERC1155) return types/* SchemaType.ERC1155 */.XQ.ERC1155; + const isERC20 = await this.getCode(address, options) !== '0x'; + if (isERC20) return types/* SchemaType.ERC20 */.XQ.ERC20; + return; + } + async getNonFungibleToken(address, tokenId, schema, initial) { + const options = this.getOptions(initial); + const actualSchema = schema ?? await this.getTokenSchema(address, options); + const allSettled = await Promise.allSettled([ + this.getNonFungibleTokenMetadata(address, tokenId, schema, options), + this.getNonFungibleTokenContract(address, schema, options), + ]); + const [metadata, contract] = allSettled.map((x)=>x.status === 'fulfilled' ? x.value : undefined + ); + let ownerId; + if (actualSchema !== types/* SchemaType.ERC1155 */.XQ.ERC1155) { + const contract = await this.getERC721Contract(address, options); + try { + ownerId = await contract?.methods.ownerOf(tokenId).call(); + } catch {} + } + return (0,src/* createNonFungibleToken */.RV)(options.chainId, address, actualSchema ?? types/* SchemaType.ERC721 */.XQ.ERC721, tokenId, ownerId, metadata, contract); + } + async getNonFungibleTokenOwnership(address, tokenId, owner, schema, initial) { + const options = this.getOptions(initial); + const actualSchema = schema ?? await this.getTokenSchema(address, options); + // ERC1155 + if (actualSchema === types/* SchemaType.ERC1155 */.XQ.ERC1155) { + const contract = await this.getERC1155Contract(address, options); + // the owner has at least 1 token + return ((0,lib.toNumber)(await contract?.methods.balanceOf(owner, tokenId).call() ?? 0) > 0) ?? false; + } + // ERC721 + const contract = await this.getERC721Contract(address, options); + return (0,src/* isSameAddress */.Wr)(await contract?.methods.ownerOf(tokenId).call(), owner); + } + async getNonFungibleTokenMetadata(address, tokenId, schema, initial) { + const processURI = (uri)=>{ + // e.g, + // address: 0x495f947276749ce646f68ac8c248420045cb7b5e + // token id: 33445046430196205871873533938903624085962860434195770982901962545689408831489 + if (uri.startsWith('https://api.opensea.io/') && tokenId) return uri.replace('0x{id}', tokenId); + // add cors header + if (!uri.startsWith('ipfs://')) return dist_default()('https://cors.r2d2.to/?:url', { + url: uri + }); + return uri; + }; + const options = this.getOptions(initial); + const actualSchema = schema ?? await this.getTokenSchema(address, options); + // ERC1155 + if (actualSchema === types/* SchemaType.ERC1155 */.XQ.ERC1155) { + const contract = await this.getERC1155Contract(address, options); + const uri = await contract?.methods.uri(tokenId ?? '').call(); + if (!uri) throw new Error('Failed to read metadata uri.'); + const response = await fetchJSON(processURI(uri), undefined, { + fetch: this.context?.fetch + }); + return (0,src/* createNonFungibleTokenMetadata */.BD)(options.chainId, response.name, '', response.description, undefined, (0,pipes/* resolveIPFSLinkFromURL */.Yx)(response.image), (0,pipes/* resolveIPFSLinkFromURL */.Yx)(response.image)); + } + // ERC721 + const contract = await this.getERC721Contract(address, options); + const uri1 = await contract?.methods.tokenURI(tokenId ?? '').call(); + if (!uri1) throw new Error('Failed to read metadata uri.'); + const response = await fetchJSON(processURI(uri1), undefined, { + fetch: this.context?.fetch + }); + return (0,src/* createNonFungibleTokenMetadata */.BD)(options.chainId, response.name, '', response.description, undefined, (0,pipes/* resolveIPFSLinkFromURL */.Yx)(response.image), (0,pipes/* resolveIPFSLinkFromURL */.Yx)(response.image)); + } + async getNonFungibleTokenContract(address, schema, initial) { + const options = this.getOptions(initial); + const actualSchema = schema ?? await this.getTokenSchema(address, options); + // ERC1155 + if (actualSchema === types/* SchemaType.ERC1155 */.XQ.ERC1155) { + const contractERC721 = await this.getERC721Contract(address, options); + const results = await Promise.allSettled([ + contractERC721?.methods.name().call() ?? EMPTY_STRING, + contractERC721?.methods.symbol().call() ?? EMPTY_STRING, + ]); + const [name, symbol] = results.map((result)=>result.status === 'fulfilled' ? result.value : '' + ); + return (0,src/* createNonFungibleTokenContract */.Xi)(options.chainId, types/* SchemaType.ERC1155 */.XQ.ERC1155, address, name ?? 'Unknown Token', symbol ?? 'UNKNOWN'); + } + // ERC721 + const contract = await this.getERC721Contract(address, options); + const results = await Promise.allSettled([ + contract?.methods.name().call() ?? EMPTY_STRING, + contract?.methods.symbol().call() ?? EMPTY_STRING, + ]); + const [name, symbol] = results.map((result)=>result.status === 'fulfilled' ? result.value : '' + ); + return (0,src/* createNonFungibleTokenContract */.Xi)(options.chainId, types/* SchemaType.ERC721 */.XQ.ERC721, address, name ?? 'Unknown Token', symbol ?? 'UNKNOWN'); + } + async getNonFungibleTokenCollection(address, schema, initial) { + const options = this.getOptions(initial); + const actualSchema = schema ?? await this.getTokenSchema(address, options); + // ERC1155 + if (actualSchema === types/* SchemaType.ERC1155 */.XQ.ERC1155) { + throw new Error('Not implemented'); + } + // ERC721 + const contract = await this.getERC721Contract(address, options); + const results = await Promise.allSettled([ + contract?.methods.name().call() ?? EMPTY_STRING + ]); + const [name] = results.map((result)=>result.status === 'fulfilled' ? result.value : '' + ); + return (0,src/* createNonFungibleTokenCollection */.GN)(options.chainId, address, name ?? 'Unknown Token', ''); + } + async switchChain(chainId, initial) { + const options = this.getOptions(initial); + await Providers[options.providerType].switchChain(chainId); + } + async getNativeTokenBalance(initial) { + const options = this.getOptions(initial); + if (!(0,utils_address/* isValidAddress */.At)(options.account)) return '0'; + return this.getBalance(options.account, options); + } + async getFungibleTokenBalance(address, initial) { + const options = this.getOptions(initial); + // Native + if (!address || isNativeTokenAddress(options.chainId, address)) return this.getNativeTokenBalance(options); + // ERC20 + const contract = await this.getERC20Contract(address, options); + return contract?.methods.balanceOf(options.account).call() ?? '0'; + } + async getNonFungibleTokenBalance(address, tokenId, schema, initial) { + const options = this.getOptions(initial); + const actualSchema = schema ?? await this.getTokenSchema(address, options); + // ERC1155 + if (actualSchema === types/* SchemaType.ERC1155 */.XQ.ERC1155) { + const contract = await this.getERC1155Contract(address, options); + return contract?.methods?.balanceOf(options.account, tokenId ?? '').call() ?? '0'; + } + // ERC721 + const contract = await this.getERC721Contract(address, options); + return contract?.methods.balanceOf(options.account).call() ?? '0'; + } + async getFungibleTokensBalance(listOfAddress, initial) { + if (!listOfAddress.length) return {}; + const options = this.getOptions(initial); + const { NATIVE_TOKEN_ADDRESS ='' } = (0,constants/* getTokenConstants */.aV)(options.chainId); + const { BALANCE_CHECKER_ADDRESS } = (0,constants/* getEthereumConstants */.Wt)(options.chainId); + const entities = []; + if (listOfAddress.some((0,src/* currySameAddress */.DC)(NATIVE_TOKEN_ADDRESS))) { + entities.push([ + NATIVE_TOKEN_ADDRESS, + await this.getBalance(options.account, options) + ]); + } + const listOfNonNativeAddress = listOfAddress.filter((x)=>!(0,src/* isSameAddress */.Wr)(NATIVE_TOKEN_ADDRESS, x) + ); + if (listOfNonNativeAddress.length) { + const contract = await this.getWeb3Contract(BALANCE_CHECKER_ADDRESS ?? '', BalanceChecker_namespaceObject, options); + const balances = await contract?.methods.balances([ + options.account + ], listOfNonNativeAddress).call({ + // cannot check the sender's balance in the same contract + from: undefined, + chainId: (0,lib.numberToHex)(options.account) + }); + listOfNonNativeAddress.forEach((x, i)=>{ + entities.push([ + x, + balances?.[i] ?? '0' + ]); + }); + } + return Object.fromEntries(entities); + } + async getNonFungibleTokensBalance(listOfAddress, initial) { + if (!listOfAddress.length) return {}; + const options = this.getOptions(initial); + const { BALANCE_CHECKER_ADDRESS } = (0,constants/* getEthereumConstants */.Wt)(options.chainId); + const contract = await this.getWeb3Contract(BALANCE_CHECKER_ADDRESS ?? '', BalanceChecker_namespaceObject, options); + const result = await contract?.methods.balances([ + options.account + ], listOfAddress).call({ + // cannot check the sender's balance in the same contract + from: undefined, + chainId: (0,lib.numberToHex)(options.chainId) + }); + if (result?.length !== listOfAddress.length) return {}; + return Object.fromEntries(listOfAddress.map((x, i)=>[ + x, + result[i] + ] + )); + } + getNativeToken(initial) { + const options = this.getOptions(initial); + const token = (0,utils_token/* createNativeToken */.$c)(options.chainId); + if (!token) throw new Error('Failed to create native token.'); + return Promise.resolve(token); + } + async getFungibleToken(address, initial) { + const options = this.getOptions(initial); + // Native + if (!address || isNativeTokenAddress(options.chainId, address)) return this.getNativeToken(options); + // ERC20 + const contract = await this.getERC20Contract(address, options); + const bytes32Contract = await this.getWeb3Contract(address, ERC20Bytes32_namespaceObject, options); + const results = await Promise.allSettled([ + contract?.methods.name().call() ?? EMPTY_STRING, + bytes32Contract?.methods.name().call() ?? EMPTY_STRING, + contract?.methods.symbol().call() ?? EMPTY_STRING, + bytes32Contract?.methods.symbol().call() ?? EMPTY_STRING, + contract?.methods.decimals().call() ?? ZERO, + ]); + const [name, nameBytes32, symbol, symbolBytes32, decimals] = results.map((result)=>result.status === 'fulfilled' ? result.value : '' + ); + return (0,utils_token/* createERC20Token */.wY)(options.chainId, address, (0,abi/* parseStringOrBytes32 */.e)(name, nameBytes32, 'Unknown Token'), (0,abi/* parseStringOrBytes32 */.e)(symbol, symbolBytes32, 'UNKNOWN'), typeof decimals === 'string' ? Number.parseInt(decimals ? decimals : '0', 10) : decimals); + } + async getWeb3Contract(address, ABI, initial) { + const options = this.getOptions(initial); + const web3 = await this.getWeb3(options); + return (0,utils_contract/* createContract */.OP)(web3, address, ABI); + } + async getERC20Contract(address, initial) { + const options = this.getOptions(initial); + return this.getWeb3Contract(address, ERC20, options); + } + async getERC721Contract(address, initial) { + const options = this.getOptions(initial); + return this.getWeb3Contract(address, ERC721, options); + } + async getERC1155Contract(address, initial) { + const options = this.getOptions(initial); + return this.getWeb3Contract(address, ERC1155, options); + } + async getAccount(initial) { + const options = this.getOptions(initial); + const accounts = await this.hijackedRequest({ + method: types/* EthereumMethodType.ETH_ACCOUNTS */.W8.ETH_ACCOUNTS + }, options); + return (0,head/* default */.Z)(accounts) ?? ''; + } + async getChainId(initial) { + const options = this.getOptions(initial); + const chainId = await this.hijackedRequest({ + method: types/* EthereumMethodType.ETH_CHAIN_ID */.W8.ETH_CHAIN_ID + }, options); + return Number.parseInt(chainId, 16); + } + getBlock(noOrId, initial) { + const options = this.getOptions(initial); + return this.hijackedRequest({ + method: types/* EthereumMethodType.ETH_GET_BLOCK_BY_NUMBER */.W8.ETH_GET_BLOCK_BY_NUMBER, + params: [ + typeof noOrId === 'number' ? (0,lib.toHex)(noOrId) : noOrId, + false + ] + }, options); + } + getBlockNumber(initial) { + const options = this.getOptions(initial); + return this.hijackedRequest({ + method: types/* EthereumMethodType.ETH_BLOCK_NUMBER */.W8.ETH_BLOCK_NUMBER + }, options); + } + async getBlockTimestamp(initial) { + const options = this.getOptions(initial); + const blockNumber = await this.getBlockNumber(options); + const block = await this.getBlock(blockNumber); + return Number.parseInt(block.timestamp, 16); + } + getBalance(address, initial) { + const options = this.getOptions(initial); + return this.hijackedRequest({ + method: types/* EthereumMethodType.ETH_GET_BALANCE */.W8.ETH_GET_BALANCE, + params: [ + address, + 'latest' + ] + }, options); + } + getCode(address, initial) { + const options = this.getOptions(initial); + return this.hijackedRequest({ + method: types/* EthereumMethodType.ETH_GET_CODE */.W8.ETH_GET_CODE, + params: [ + address, + 'latest' + ] + }, options); + } + async getTransaction(hash, initial) { + const options = this.getOptions(initial); + return this.hijackedRequest({ + method: types/* EthereumMethodType.ETH_GET_TRANSACTION_BY_HASH */.W8.ETH_GET_TRANSACTION_BY_HASH, + params: [ + hash + ] + }, options); + } + async estimateTransaction(transaction, fallback = 21000, initial) { try { - const fontSize = Number.parseFloat(getComputedStyle(document.documentElement).fontSize); - setRowSize(fontSize * 4); + const options = this.getOptions(initial); + return this.hijackedRequest({ + method: types/* EthereumMethodType.ETH_ESTIMATE_GAS */.W8.ETH_ESTIMATE_GAS, + params: [ + { + from: options.account, + ...transaction + }, + ] + }, options); } catch { - setRowSize(60); + return (0,lib.toHex)(fallback); } - }, []); - return rowSize; + } + getTransactionReceipt(hash, initial) { + const options = this.getOptions(initial); + return this.hijackedRequest({ + method: types/* EthereumMethodType.ETH_GET_TRANSACTION_RECEIPT */.W8.ETH_GET_TRANSACTION_RECEIPT, + params: [ + hash + ] + }, options); + } + async getTransactionStatus(id, initial) { + const options = this.getOptions(initial); + return getReceiptStatus(await this.getTransactionReceipt(id, options)); + } + async getTransactionNonce(address, initial) { + const options = this.getOptions(initial); + const count = await this.hijackedRequest({ + method: types/* EthereumMethodType.ETH_GET_TRANSACTION_COUNT */.W8.ETH_GET_TRANSACTION_COUNT, + params: [ + address, + 'latest' + ] + }, options); + return Number.parseInt(count, 16) || 0; + } + signMessage(dataToSign, signType, initial) { + const options = this.getOptions(initial); + if (!options.account) throw new Error('Unknown account.'); + switch(signType){ + case 'personalSign': + return this.hijackedRequest({ + method: types/* EthereumMethodType.PERSONAL_SIGN */.W8.PERSONAL_SIGN, + params: [ + dataToSign, + options.account, + '' + ].filter((x)=>typeof x !== 'undefined' + ) + }, options); + case 'typedDataSign': + return this.hijackedRequest({ + method: types/* EthereumMethodType.ETH_SIGN_TYPED_DATA */.W8.ETH_SIGN_TYPED_DATA, + params: [ + options.account, + dataToSign + ] + }, options); + default: + throw new Error(`Unknown sign type: ${signType}.`); + } + } + async verifyMessage(dataToVerify, signature, signType, initial) { + const options = this.getOptions(initial); + const web3 = await this.getWeb3(options); + const dataToSign = await web3.eth.personal.ecRecover(dataToVerify, signature); + return dataToSign === dataToVerify; + } + async signTransaction(transaction, initial) { + const options = this.getOptions(initial); + const signed = await this.hijackedRequest({ + method: types/* EthereumMethodType.ETH_SIGN_TRANSACTION */.W8.ETH_SIGN_TRANSACTION, + params: [ + transaction + ] + }, options); + return signed.rawTransaction ?? ''; + } + signTransactions(transactions, initial) { + return Promise.all(transactions.map((x)=>this.signTransaction(x, initial) + )); + } + callTransaction(transaction, initial) { + const options = this.getOptions(initial); + return this.hijackedRequest({ + method: types/* EthereumMethodType.ETH_CALL */.W8.ETH_CALL, + params: [ + (0,utils_contract/* encodeTransaction */.SC)({ + ...transaction, + ...options.overrides + }), + 'latest', + ] + }, options); + } + async sendTransaction(transaction, initial) { + const options = this.getOptions(initial); + // send a transaction which will add into the internal transaction list and start to watch it for confirmation + const hash = await this.hijackedRequest({ + method: types/* EthereumMethodType.ETH_SEND_TRANSACTION */.W8.ETH_SEND_TRANSACTION, + params: [ + (0,utils_contract/* encodeTransaction */.SC)({ + ...transaction, + ...options.overrides + }), + ] + }, options); + return new Promise((resolve, reject)=>{ + const { Transaction , TransactionWatcher } = settings/* Web3StateSettings.value */.o.value; + if (!Transaction || !TransactionWatcher) reject(new Error('No context found.')); + const onProgress = async (id, status, transaction)=>{ + if (status === src/* TransactionStatusType.NOT_DEPEND */.g8.NOT_DEPEND) return; + const transactions = await (0,shared_base_src/* getSubscriptionCurrentValue */.SF)(()=>Transaction?.transactions + ); + const currentTransaction = transactions?.find((x)=>{ + const hashes = Object.keys(x.candidates); + return hashes.includes(hash) && hashes.includes(id); + }); + if (currentTransaction) resolve(currentTransaction.indexId); + }; + TransactionWatcher?.emitter.on('progress', onProgress); + }); + } + sendSignedTransaction(signature, initial) { + const options = this.getOptions(initial); + return this.hijackedRequest({ + method: types/* EthereumMethodType.ETH_SEND_RAW_TRANSACTION */.W8.ETH_SEND_RAW_TRANSACTION, + params: [ + signature + ] + }, options); + } + requestTransaction(hash, transaction, initial) { + const options = this.getOptions(initial); + return this.hijackedRequest({ + method: types/* EthereumMethodType.MASK_REPLACE_TRANSACTION */.W8.MASK_REPLACE_TRANSACTION, + params: [ + hash, + transaction + ] + }, options); + } + cancelTransaction(hash, transaction, initial) { + const options = this.getOptions(initial); + return this.hijackedRequest({ + method: types/* EthereumMethodType.MASK_REPLACE_TRANSACTION */.W8.MASK_REPLACE_TRANSACTION, + params: [ + hash, + { + ...transaction, + to: transaction.from, + data: '0x0', + value: '0x0' + }, + ] + }, options); + } + constructor(chainId, account, providerType, context){ + this.chainId = chainId; + this.account = account; + this.providerType = providerType; + this.context = context; + } +} +/** + * Build connection with provider. + * @param providerType + * @returns + */ function createConnection(context, options) { + const { chainId =types/* ChainId.Mainnet */.a_.Mainnet , account ='' , providerType =types/* ProviderType.MaskWallet */.lP.MaskWallet } = options ?? {}; + return new Connection(chainId, account, providerType, context); } -;// CONCATENATED MODULE: ../shared/src/contexts/evm/TokenPicker/SelectTokenDialog.tsx +;// CONCATENATED MODULE: ../plugins/EVM/src/state/Connection.ts +class Connection_Connection extends entry_web3/* ConnectionState */.em { + constructor(context, subscription){ + super(context, createConnection, subscription); + } +} +;// CONCATENATED MODULE: ../plugins/EVM/src/state/Provider.ts -// see https://github.com/import-js/eslint-plugin-import/issues/2288 -// eslint-disable-next-line import/no-deprecated +class Provider extends entry_web3/* ProviderState */.Aw { + setupSubscriptions() { + this.providerType = (0,shared_base_src/* mapSubscription */.S3)(this.storage.providerType.subscription, (provider)=>provider + ); + this.chainId = (0,shared_base_src/* mapSubscription */.S3)((0,shared_base_src/* mergeSubscription */.EB)(this.providerType, this.storage.account.subscription, this.context.chainId), ([providerType, account, chainId])=>{ + if (providerType === types/* ProviderType.MaskWallet */.lP.MaskWallet) return chainId; + return account.chainId; + }); + this.account = (0,shared_base_src/* mapSubscription */.S3)((0,shared_base_src/* mergeSubscription */.EB)(this.providerType, this.storage.account.subscription, this.context.account), ([providerType, account, maskAccount])=>{ + if (providerType === types/* ProviderType.MaskWallet */.lP.MaskWallet) return maskAccount; + return account.account; + }); + this.networkType = (0,shared_base_src/* mapSubscription */.S3)((0,shared_base_src/* mergeSubscription */.EB)(this.providerType, this.storage.account.subscription, this.context.chainId), ([providerType, account, chainId])=>{ + if (providerType === types/* ProviderType.MaskWallet */.lP.MaskWallet) return this.options.getNetworkTypeFromChainId(chainId); + return this.options.getNetworkTypeFromChainId(account.chainId); + }); + } + constructor(context){ + super(context, Providers, { + isSameAddress: src/* isSameAddress */.Wr, + isValidAddress: utils_address/* isValidAddress */.At, + isValidChainId: utils_address/* isValidChainId */.JW, + getDefaultChainId: ()=>types/* ChainId.Mainnet */.a_.Mainnet + , + getDefaultNetworkType: ()=>types/* NetworkType.Ethereum */.td.Ethereum + , + getDefaultProviderType: (site)=>(0,esm/* getEnumAsArray */.Yl)(shared_base_src/* ExtensionSite */.v_).some(({ value })=>value === site + ) ? types/* ProviderType.MaskWallet */.lP.MaskWallet : types/* ProviderType.None */.lP.None + , + getNetworkTypeFromChainId: (chainId)=>resolver/* chainResolver.chainNetworkType */.VU.chainNetworkType(chainId) ?? types/* NetworkType.Ethereum */.td.Ethereum + }); + } +} -const useStyles = (0,entry/* makeStyles */.ZL)()((theme, { compact , disablePaddingTop })=>({ - content: { - ...compact ? { - minWidth: 552 - } : {}, - padding: theme.spacing(3), - paddingTop: disablePaddingTop ? 0 : theme.spacing(2.8) - }, - list: { - scrollbarWidth: 'none', - '&::-webkit-scrollbar': { - display: 'none' - } - }, - placeholder: { - textAlign: 'center', - height: 288, - paddingTop: theme.spacing(14), - boxSizing: 'border-box' - }, - search: { - backgroundColor: 'transparent !important', - border: `solid 1px ${entry/* MaskColorVar.twitterBorderLine */.ZN.twitterBorderLine}` - } - }) -); -const SelectTokenDialog = ({ open , chainId , disableSearchBar , disableNativeToken , tokens , blacklist =src/* EMPTY_LIST */.rP , selectedTokens =src/* EMPTY_LIST */.rP , onSelect , onClose , title , })=>{ - const t = (0,shared_src/* useSharedI18N */.B_)(); - const isDashboard = location.href.includes('dashboard.html'); - const { networkIdentifier } = (0,base/* useBaseUIRuntime */.uD)(); - const compact = networkIdentifier === src_constants/* MINDS_ID */.fN; - const { classes } = useStyles({ - compact, - disablePaddingTop: isDashboard - }); - const { NATIVE_TOKEN_ADDRESS } = (0,constants/* useTokenConstants */.kd)(chainId); - // eslint-disable-next-line import/no-deprecated - const isMdScreen = (0,useMediaQuery/* default */.Z)((theme)=>theme.breakpoints.down('md') - ); - const rowSize = useRowSize(); - return /*#__PURE__*/ (0,jsx_runtime.jsx)(components/* InjectedDialog */.F, { - titleBarIconStyle: isDashboard ? 'close' : 'back', - open: open, - onClose: onClose, - title: title ?? t.select_token(), - children: /*#__PURE__*/ (0,jsx_runtime.jsx)(DialogContent/* default */.Z, { - classes: { - root: classes.content - }, - children: /*#__PURE__*/ (0,jsx_runtime.jsx)(shared_src/* ERC20TokenList */.T3, { - classes: { - list: classes.list, - placeholder: classes.placeholder - }, - onSelect: onSelect, - tokens: tokens ?? [], - blacklist: disableNativeToken && NATIVE_TOKEN_ADDRESS ? [ - NATIVE_TOKEN_ADDRESS, - ...blacklist - ] : blacklist, - targetChainId: chainId, - disableSearch: disableSearchBar, - selectedTokens: selectedTokens, - FixedSizeListProps: { - itemSize: rowSize, - height: isMdScreen ? 300 : 503 - }, - SearchTextFieldProps: { - InputProps: { - classes: { - root: classes.search - } - } - } - }) - }) - }); -}; +;// CONCATENATED MODULE: ../plugins/EVM/src/state/Wallet.ts -;// CONCATENATED MODULE: ../shared/src/contexts/evm/TokenPicker/index.tsx +class Wallet extends entry_web3/* WalletState */.RM { + constructor(context){ + super(context); + } +} +// EXTERNAL MODULE: ../web3-shared/evm/constants/primitives.ts +var primitives = __webpack_require__(36596); +// EXTERNAL MODULE: ../web3-shared/evm/constants/descriptors.ts + 1 modules +var descriptors = __webpack_require__(13898); +// EXTERNAL MODULE: ../web3-shared/evm/utils/domain.ts +var domain = __webpack_require__(54682); +;// CONCATENATED MODULE: ../plugins/EVM/src/state/Others.ts +class Others extends entry_web3/* OthersState */.CS { + constructor(context){ + super(context, { + defaultAddress: primitives/* ZERO_ADDRESS */.r, + defaultBlockDelay: 15, + chainDescriptors: descriptors/* CHAIN_DESCRIPTORS */.Q_, + networkDescriptors: descriptors/* NETWORK_DESCRIPTORS */.qQ, + providerDescriptors: descriptors/* PROVIDER_DESCRIPTORS */.zM + }); + this.isValidDomain = domain/* isValidDomain */.h; + this.isValidAddress = utils_address/* isValidAddress */.At; + this.isSameAddress = src/* isSameAddress */.Wr; + this.getMaskTokenAddress = utils_address/* getMaskTokenAddress */.vY; + this.formatAddress = formatter/* formatEthereumAddress */.j8; + this.formatTokenId = formatter/* formatTokenId */.Xy; + this.formatDomainName = formatter/* formatDomainName */.bc; + } +} -const TokenPickerContext = /*#__PURE__*/ (0,react.createContext)(null); -let id = 0; -const TokenPickerProvider = ({ children })=>{ - const [tasks, setTasks] = (0,react.useState)(src/* EMPTY_LIST */.rP); - const removeTask = (0,react.useCallback)((task)=>{ - setTasks((list)=>list.filter((t)=>t !== task - ) - ); - }, []); - const contextValue = (0,react.useMemo)(()=>{ - return { - pickToken: (options)=>{ - const [promise, resolve, reject] = (0,esm/* defer */.PQ)(); - id += 1; - const newTask = { - id, - promise, - resolve, - reject, - pickerOptions: options - }; - setTasks((list)=>[ - ...list, - newTask - ] - ); - return promise; - } - }; - }, []); - return /*#__PURE__*/ (0,jsx_runtime.jsxs)(TokenPickerContext.Provider, { - value: contextValue, - children: [ - children, - tasks.map((task)=>/*#__PURE__*/ (0,jsx_runtime.jsx)(SelectTokenDialog, { - open: true, - ...task.pickerOptions, - onSelect: (token)=>{ - task.resolve(token); - removeTask(task); - }, - onClose: ()=>{ - task.resolve(null); - removeTask(task); - } - }, task.id) - ) - ] - }); -}; -const usePickToken = ()=>{ - return (0,react.useContext)(TokenPickerContext).pickToken; -}; +;// CONCATENATED MODULE: ../plugins/EVM/src/state/Settings.ts -;// CONCATENATED MODULE: ../shared/src/contexts/evm/index.tsx +class Settings extends entry_web3/* SettingsState */.$c { + constructor(context){ + super(context); + } +} +// EXTERNAL MODULE: ../../node_modules/.pnpm/web3-eth-abi@1.7.3/node_modules/web3-eth-abi/lib/index.js +var web3_eth_abi_lib = __webpack_require__(9177); +// EXTERNAL MODULE: ../web3-contracts/abis/BulkCheckout.json +var BulkCheckout = __webpack_require__(29389); +// EXTERNAL MODULE: ../web3-contracts/abis/ITO2.json +var ITO2 = __webpack_require__(47744); +;// CONCATENATED MODULE: ../web3-contracts/abis/NftHappyRedPacket.json +const NftHappyRedPacket_namespaceObject = JSON.parse('[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"id","type":"bytes32"},{"indexed":true,"internalType":"address","name":"claimer","type":"address"},{"indexed":false,"internalType":"uint256","name":"claimed_token_id","type":"uint256"},{"indexed":false,"internalType":"address","name":"token_address","type":"address"}],"name":"ClaimSuccess","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"total_tokens","type":"uint256"},{"indexed":true,"internalType":"bytes32","name":"id","type":"bytes32"},{"indexed":false,"internalType":"string","name":"name","type":"string"},{"indexed":false,"internalType":"string","name":"message","type":"string"},{"indexed":true,"internalType":"address","name":"creator","type":"address"},{"indexed":false,"internalType":"uint256","name":"creation_time","type":"uint256"},{"indexed":false,"internalType":"address","name":"token_address","type":"address"},{"indexed":false,"internalType":"uint256","name":"packet_number","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"duration","type":"uint256"},{"indexed":false,"internalType":"uint256[]","name":"token_ids","type":"uint256[]"}],"name":"CreationSuccess","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"id","type":"bytes32"},{"indexed":true,"internalType":"address","name":"token_address","type":"address"},{"indexed":false,"internalType":"uint16","name":"remaining_balance","type":"uint16"},{"indexed":false,"internalType":"uint256[]","name":"remaining_token_ids","type":"uint256[]"},{"indexed":false,"internalType":"uint256","name":"bit_status","type":"uint256"}],"name":"RefundSuccess","type":"event"},{"inputs":[{"internalType":"bytes32","name":"pkt_id","type":"bytes32"}],"name":"check_availability","outputs":[{"internalType":"address","name":"token_address","type":"address"},{"internalType":"uint16","name":"balance","type":"uint16"},{"internalType":"uint256","name":"total_pkts","type":"uint256"},{"internalType":"bool","name":"expired","type":"bool"},{"internalType":"uint256","name":"claimed_id","type":"uint256"},{"internalType":"uint256","name":"bit_status","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"check_claimed_id","outputs":[{"internalType":"uint256","name":"claimed_token_id","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"check_erc721_remain_ids","outputs":[{"internalType":"uint256","name":"bit_status","type":"uint256"},{"internalType":"uint256[]","name":"erc721_token_ids","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"erc721_token_id_list","type":"uint256[]"},{"internalType":"address","name":"token_addr","type":"address"}],"name":"check_ownership","outputs":[{"internalType":"bool","name":"is_your_token","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"pkt_id","type":"bytes32"},{"internalType":"bytes","name":"signedMsg","type":"bytes"},{"internalType":"address payable","name":"recipient","type":"address"}],"name":"claim","outputs":[{"internalType":"uint256","name":"claimed","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_public_key","type":"address"},{"internalType":"uint64","name":"_duration","type":"uint64"},{"internalType":"bytes32","name":"_seed","type":"bytes32"},{"internalType":"string","name":"_message","type":"string"},{"internalType":"string","name":"_name","type":"string"},{"internalType":"address","name":"_token_addr","type":"address"},{"internalType":"uint256[]","name":"_erc721_token_ids","type":"uint256[]"}],"name":"create_red_packet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"refund","outputs":[],"stateMutability":"nonpayable","type":"function"}]'); +// EXTERNAL MODULE: ../web3-contracts/abis/HappyRedPacketV4.json +var HappyRedPacketV4 = __webpack_require__(5261); +// EXTERNAL MODULE: ../web3-contracts/abis/RouterV2.json +var RouterV2 = __webpack_require__(50092); +// EXTERNAL MODULE: ../web3-contracts/abis/SwapRouter.json +var SwapRouter = __webpack_require__(75517); +// EXTERNAL MODULE: ../web3-contracts/abis/MaskBox.json +var MaskBox = __webpack_require__(7744); +;// CONCATENATED MODULE: ../plugins/EVM/src/state/TransactionFormatter/abi.ts +// built-in abis -const EvmSharedUIProvider = ({ children })=>{ - return /*#__PURE__*/ (0,jsx_runtime.jsx)(TokenPickerProvider, { - children: children - }); -}; -/***/ }), -/***/ 26204: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -"use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "i": () => (/* binding */ useSnackbarCallback) -/* harmony export */ }); -/* harmony import */ var _masknet_theme__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(30232); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(86248); -/* harmony import */ var _locales__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(29889); -function useSnackbarCallback(opts, deps, onSuccess, onError, key, successText) { - const t = (0,_locales__WEBPACK_IMPORTED_MODULE_2__/* .useSharedI18N */ .B)(); - const { showSnackbar } = (0,_masknet_theme__WEBPACK_IMPORTED_MODULE_0__/* .useCustomSnackbar */ .Ii)(); - const executor = typeof opts === 'function' ? opts : opts.executor; - if (typeof opts === 'object') { - [deps, onSuccess, onError, key, successText] = [ - opts.deps, - opts.onSuccess, - opts.onError, - opts.key, - opts.successText, - ]; +class ABI { + read(signature) { + if (!signature) return; + return this.abis.get(signature); } - return (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)((...args)=>executor(...args).then((res)=>{ - showSnackbar(successText ?? t.snackbar_done(), { - key, - variant: 'success', - preventDuplicate: true - }); - onSuccess?.(res); - return res; - }, (error)=>{ - showSnackbar(`Error: ${error.message || error}`, { - key, - preventDuplicate: true, - variant: 'error' - }); - onError?.(error); - throw error; - }) - , [ - ...deps, - showSnackbar, - executor, - onError, - onSuccess, - key, - successText - ]); + construct(abi1) { + abi1.forEach((x)=>{ + if (x.type !== 'function') return; + if (x.stateMutability === 'pure' || x.stateMutability === 'view') return; + const { name , inputs =[] } = x; + if (!name) return; + try { + const signature = this.coder.encodeFunctionSignature(`${x.name}(${inputs.map((y)=>y.type + ).join(',')})`); + if (this.abis.has(signature)) console.warn(`The signature of ${`${x.name}(${inputs.map((y)=>y.type + ).join(',')})`} already exists.`); + this.abis.set(signature, { + name, + parameters: inputs.map((y)=>({ + name: y.name, + type: y.type + }) + ) ?? [] + }); + } catch (error) { + console.log('Failed to encode function signature from below ABI:'); + console.log(x); + } + }); + } + constructor(){ + this.coder = web3_eth_abi_lib; + this.abis = new Map(); + this.construct(BulkCheckout) // donate gitcoin grants + ; + this.construct(ITO2); + this.construct(NftHappyRedPacket_namespaceObject); + this.construct(HappyRedPacketV4); + this.construct(MaskBox); + this.construct(ERC20); + this.construct(RouterV2) // uniswap V2 like + ; + this.construct(SwapRouter) // uniswap V3 like + ; + } +} +const abi_abi = new ABI(); +function readABI(signature) { + return abi_abi.read(signature); } +;// CONCATENATED MODULE: ../plugins/EVM/src/state/TransactionFormatter/utils.ts -/***/ }), +function getTokenAmountDescription(amount = '0', token, negative) { + const symbol = negative ? '- ' : ''; + const value = (0,src/* scale10 */.SI)(1, 9 + (token?.decimals ?? 18)).isGreaterThanOrEqualTo(amount) ? (0,src/* formatBalance */.az)(amount, token?.decimals ?? 0, 4) : 'infinite'; + return `${symbol}${value} ${token?.symbol?.trim()}`; +} -/***/ 29889: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { +;// CONCATENATED MODULE: ../plugins/EVM/src/state/TransactionFormatter/descriptors/TransferToken.ts -"use strict"; -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - "B": () => (/* reexport */ useSharedI18N) -}); +class TransferTokenDescriptor { + async compute(context) { + const connection = await settings/* Web3StateSettings.value.Connection */.o.value.Connection?.getConnection?.({ + chainId: context.chainId + }); + return { + chainId: context.chainId, + title: 'Transfer', + description: `Send token -${getTokenAmountDescription(context.value, await connection?.getNativeToken({ + chainId: context.chainId + }))}` + }; + } +} -// UNUSED EXPORTS: SharedTrans +;// CONCATENATED MODULE: ../plugins/EVM/src/state/TransactionFormatter/descriptors/ContractDeployment.ts -// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.0.0/node_modules/react/index.js -var react = __webpack_require__(86248); -// EXTERNAL MODULE: ../../node_modules/.pnpm/react-i18next@11.16.5_react-dom@18.0.0+react@18.0.0/node_modules/react-i18next/dist/es/Trans.js -var Trans = __webpack_require__(31008); -// EXTERNAL MODULE: ../../node_modules/.pnpm/react-i18next@11.16.5_react-dom@18.0.0+react@18.0.0/node_modules/react-i18next/dist/es/useTranslation.js -var useTranslation = __webpack_require__(43966); -;// CONCATENATED MODULE: ../shared/src/locales/i18n_generated.js -/* eslint-disable */ +class ContractDeploymentDescriptor { + async compute(context) { + const connection = await settings/* Web3StateSettings.value.Connection */.o.value.Connection?.getConnection?.({ + chainId: context.chainId + }); + return { + chainId: context.chainId, + title: 'Contract Deployment', + description: `Contract Deployment ${getTokenAmountDescription(context.value, await connection?.getNativeToken({ + chainId: context.chainId + }), true)}` + }; + } +} -const bind = (i18nKey) => (props) => (0,react.createElement)(Trans/* Trans */.c, { i18nKey, ns: "shared", ...props }) -function useSharedI18N() { - const { t } = (0,useTranslation/* useTranslation */.$)("shared") - return (0,react.useMemo)( - function proxyBasedHooks() { - return new Proxy({ __proto__: null }, { - get(target, key) { - if (target[key]) - return target[key]; - return (target[key] = t.bind(null, key)); - }, - }); -}, - [t], - ) +;// CONCATENATED MODULE: ../plugins/EVM/src/state/TransactionFormatter/descriptors/Cancel.ts +class CancelDescriptor { + compute(context) { + return Promise.resolve({ + chainId: context.chainId, + title: 'Cancel Transaction' + }); + } } -const SharedTrans = function proxyBasedTrans() { - return new Proxy({ __proto__: null }, { - get(target, key) { - if (target[key]) - return target[key]; - return (target[key] = bind(key)); - }, - }); -}() -;// CONCATENATED MODULE: ../shared/src/locales/index.ts -// This file is auto generated. DO NOT EDIT -// Run `npx gulp sync-languages` to regenerate. -// Default fallback language in a family of languages are chosen by the alphabet order -// To overwrite this, please overwrite packages/scripts/src/locale-kit-next/index.ts +;// CONCATENATED MODULE: ../plugins/EVM/src/state/TransactionFormatter/descriptors/Base.ts -/***/ }), -/***/ 35070: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { +class BaseTransactionDescriptor { + async compute(context) { + const connection = await settings/* Web3StateSettings.value.Connection */.o.value.Connection?.getConnection?.({ + chainId: context.chainId + }); + const { NATIVE_TOKEN_ADDRESS } = (0,constants/* getTokenConstants */.aV)(context.chainId); + const nativeToken = await connection?.getFungibleToken(NATIVE_TOKEN_ADDRESS); + return { + chainId: context.chainId, + title: context.name ?? 'Contract Interaction', + description: context.value ? getTokenAmountDescription(context.value, nativeToken, true) : '-' + }; + } +} -"use strict"; +;// CONCATENATED MODULE: ../plugins/EVM/src/state/TransactionFormatter/descriptors/ITO.ts -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - "Kv": () => (/* reexport */ FormattedAddress), - "BV": () => (/* reexport */ FormattedBalance), - "bO": () => (/* reexport */ FormattedCurrency) -}); -// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.0.0/node_modules/react/jsx-runtime.js -var jsx_runtime = __webpack_require__(71999); -// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.0.0/node_modules/react/index.js -var react = __webpack_require__(86248); -// EXTERNAL MODULE: ../web3-shared/base/src/index.ts + 7 modules -var src = __webpack_require__(89260); -// EXTERNAL MODULE: ../theme/src/entry.ts -var entry = __webpack_require__(30232); -;// CONCATENATED MODULE: ../shared/src/wallet/FormattedBalance.tsx +class ITODescriptor { + async compute(context) { + const { ITO2_CONTRACT_ADDRESS } = (0,constants/* getITOConstants */.af)(context.chainId); + if (!(0,src/* isSameAddress */.Wr)(context.to, ITO2_CONTRACT_ADDRESS)) return; + const connection = await settings/* Web3StateSettings.value.Connection */.o.value.Connection?.getConnection?.({ + chainId: context.chainId, + account: context.from + }); + const token = await connection?.getFungibleToken(context.parameters?._token_addr ?? ''); + const amount = (0,src/* formatBalance */.az)(context.parameters?._total_tokens, token?.decimals); + return { + chainId: context.chainId, + title: 'Create ITO Packet', + description: token && amount ? shared_base_src/* i18NextInstance.t */.BV.t('plugin_ito_transaction_dialog_summary', { + amount, + symbol: token.symbol + }) : shared_base_src/* i18NextInstance.t */.BV.t('plugin_ito_transaction_dialog_summary_with_no_token') + }; + } +} + +;// CONCATENATED MODULE: ../plugins/EVM/src/state/TransactionFormatter/descriptors/RedPacket.ts + -const useStyles = (0,entry/* makeStyles */.ZL)()((theme)=>({ - balance: { - marginRight: theme.spacing(0.5) + +class RedPacketDescriptor { + // TODO: 6002: avoid using i18n text in a service. delegate it to ui. + async compute(context) { + if (!context.name) return; + if (context.name !== 'create_red_packet') return; + const { HAPPY_RED_PACKET_ADDRESS_V4 } = (0,constants/* getRedPacketConstants */.GV)(context.chainId); + const { RED_PACKET_NFT_ADDRESS } = (0,constants/* getNftRedPacketConstants */.pS)(context.chainId); + if ((0,src/* isSameAddress */.Wr)(context.to, HAPPY_RED_PACKET_ADDRESS_V4)) { + const connection = await settings/* Web3StateSettings.value.Connection */.o.value.Connection?.getConnection?.({ + chainId: context.chainId, + account: context.from + }); + const token = await connection?.getFungibleToken(context.parameters?._token_addr ?? ''); + const amount = (0,src/* formatBalance */.az)(context.parameters?._total_tokens, token?.decimals); + return { + chainId: context.chainId, + title: 'Create Lucky Drop', + description: shared_base_src/* i18NextInstance.t */.BV.t('plugin_red_packet_create_with_token', { + amount, + symbol: token?.symbol + }) + }; + } else if ((0,src/* isSameAddress */.Wr)(context.to, RED_PACKET_NFT_ADDRESS)) { + return { + chainId: context.chainId, + title: 'Create NFT Lucky Drop', + description: shared_base_src/* i18NextInstance.t */.BV.t('plugin_nft_red_packet_create') + }; } - }) -); -const FormattedBalance = (props)=>{ - const { value: value1 , decimals , significant , symbol , minimumBalance , formatter =(value)=>value - } = props; - let formatted = formatter(value1 ?? '0', decimals, significant); - if (minimumBalance && value1 && !(0,src/* isZero */.Fr)(formatted) && (0,src/* isLessThan */.FI)(value1, minimumBalance)) { - formatted = '<' + formatter(minimumBalance, decimals, significant); + return; } - const classes = (0,entry/* useStylesExtends */.Bc)(useStyles(), props); - if (symbol) return /*#__PURE__*/ (0,jsx_runtime.jsxs)(react.Fragment, { - children: [ - /*#__PURE__*/ (0,jsx_runtime.jsx)("span", { - className: classes.balance, - children: String(formatted) - }), - /*#__PURE__*/ (0,jsx_runtime.jsx)("span", { - className: classes?.symbol, - children: symbol - }) - ] - }); - return /*#__PURE__*/ (0,jsx_runtime.jsx)(react.Fragment, { - children: String(formatted) - }); -}; +} -// EXTERNAL MODULE: ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/identity.js -var identity = __webpack_require__(35272); -;// CONCATENATED MODULE: ../shared/src/wallet/FormattedAddress.tsx +;// CONCATENATED MODULE: ../plugins/EVM/src/state/TransactionFormatter/descriptors/ERC20.ts +class ERC20Descriptor { + async compute(context) { + if (!context.name) return; + const connection = await settings/* Web3StateSettings.value.Connection */.o.value.Connection?.getConnection?.({ + chainId: context.chainId + }); + switch(context.name){ + case 'approve': + return { + chainId: context.chainId, + title: 'Approve', + description: `Approve spend ${getTokenAmountDescription(context.parameters?.value, await connection?.getFungibleToken(context.to ?? '', { + chainId: context.chainId + }))}` + }; + case 'transfer': + case 'transferFrom': + return { + chainId: context.chainId, + title: 'Transfer Token', + description: `Transfer token ${getTokenAmountDescription(context.parameters?.value, await connection?.getFungibleToken(context.to ?? '', { + chainId: context.chainId + }), true)}` + }; + default: + return; + } + } +} -const FormattedAddress = ({ address , size , formatter =identity/* default */.Z })=>{ - if (!address) return null; - return /*#__PURE__*/ (0,jsx_runtime.jsx)(react.Fragment, { - children: formatter(address, size) - }); -}; +// EXTERNAL MODULE: ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/last.js +var last = __webpack_require__(7683); +;// CONCATENATED MODULE: ../plugins/EVM/src/state/TransactionFormatter/descriptors/Swap.ts -;// CONCATENATED MODULE: ../shared/src/wallet/FormattedCurrency.tsx -const FormattedCurrency = ({ value: value1 , sign: sign1 , symbol: symbol1 , formatter =(value, sign, symbol)=>`${sign} ${value} ${symbol?.toUpperCase()}`.trim() - , })=>{ - return /*#__PURE__*/ (0,jsx_runtime.jsx)(react.Fragment, { - children: formatter(value1, sign1, symbol1) - }); -}; +class SwapDescriptor { + async compute(context) { + if (!context.name) return; + const connection = await settings/* Web3StateSettings.value.Connection */.o.value.Connection?.getConnection?.({ + chainId: context.chainId + }); + const nativeToken = await connection?.getNativeToken({ + chainId: context.chainId + }); + switch(context.name){ + case 'swapExactETHForTokens': + const outputToken = await connection?.getFungibleToken((0,last/* default */.Z)(context.parameters.path) ?? ''); + const inputAmount = (0,src/* formatBalance */.az)(context.value, nativeToken?.decimals, 2); + const outputAmount = (0,src/* formatBalance */.az)(context.parameters.amountOutMin, outputToken?.decimals, 2); + return { + chainId: context.chainId, + title: 'Swap Token', + description: `Swap ${inputAmount} ${nativeToken?.symbol ?? ''} for ${outputAmount} ${outputToken?.symbol ?? ''}` + }; + case 'swapExactTokensForETH': + const inToken = await connection?.getFungibleToken((0,head/* default */.Z)(context.parameters.path) ?? ''); + const inAmount = (0,src/* formatBalance */.az)(context.parameters.amountIn, inToken?.decimals, 2); + const outAmount = (0,src/* formatBalance */.az)(context.parameters.amountOutMin, nativeToken?.decimals, 2); + return { + chainId: context.chainId, + title: 'Swap Token', + description: `Swap ${inAmount} ${inToken?.symbol ?? ''} for ${outAmount} ${nativeToken?.symbol ?? ''}` + }; + case 'swapExactTokensForTokens': + const tokenIn = await connection?.getFungibleToken((0,head/* default */.Z)(context.parameters.path) ?? ''); + const tokenOut = await connection?.getFungibleToken((0,last/* default */.Z)(context.parameters.path) ?? ''); + const amountIn = (0,src/* formatBalance */.az)(context.parameters.amountIn, tokenIn?.decimals, 2); + const amountOut = (0,src/* formatBalance */.az)(context.parameters.amountOutMin, tokenOut?.decimals, 2); + return { + chainId: context.chainId, + title: 'SwapToken', + description: `Swap ${amountIn} ${tokenIn?.symbol ?? ''} for ${amountOut} ${tokenOut?.symbol ?? ''}` + }; + case 'multicall': + return { + chainId: context.chainId, + title: 'SwapToken', + description: 'Swap with UniSwap V3' + }; + default: + return; + } + } +} -;// CONCATENATED MODULE: ../shared/src/wallet/index.ts +;// CONCATENATED MODULE: ../plugins/EVM/src/state/TransactionFormatter.ts -/***/ }), -/***/ 22581: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { +// built-in descriptors -"use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "K": () => (/* binding */ MaskDialogTitle) -/* harmony export */ }); -/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(71999); -/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(32831); -/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(17282); -/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(589); -/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(37253); -/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(85139); -/* harmony import */ var _mui_icons_material__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(11451); -/* harmony import */ var _mui_icons_material__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(8166); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(86248); -const Title = (0,_mui_material__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .ZP)(_mui_material__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z)(({ theme })=>({ - display: 'flex', - alignItems: 'center', - padding: `${theme.spacing(1)} ${theme.spacing(3)}` - }) -); -const MaskDialogTitle = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.memo)((props)=>{ - const { children , onBack , onClose } = props; - const backButton = onBack ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z, { - size: "large", - onClick: onBack, - edge: "start", - color: "inherit", - sx: { - marginRight: '8px' - }, - children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_icons_material__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z, {}) - }) : null; - const closeButton = onClose ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z, { - size: "large", - onClick: onClose, - edge: "end", - color: "inherit", - children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_icons_material__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, {}) - }) : null; - return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(Title, { - children: [ - backButton, - /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z, { - component: "span", - variant: "h6", - children: children - }), - /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, { - sx: { - flex: 1 - } - }), - closeButton - ] - }); -}); -/***/ }), -/***/ 4744: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { +class TransactionFormatter extends entry_web3/* TransactionFormatterState */.e { + async createContext(chainId, transaction) { + const from = transaction.from ?? ''; + const value = transaction.value ?? '0x0'; + const data = (0,utils_transaction/* getData */.Yu)(transaction); + const to = (0,utils_transaction/* getTo */.Fy)(transaction); + const signature = (0,utils_transaction/* getFunctionSignature */.rl)(transaction); + const parameters = (0,utils_transaction/* getFunctionParameters */.qI)(transaction); + const context = { + chainId, + from, + to, + value + }; + if (data) { + // contract interaction + const abi = readABI(signature); + if (abi) { + try { + return { + ...context, + type: src/* TransactionDescriptorType.INTERACTION */.vt.INTERACTION, + name: abi.name, + parameters: this.coder.decodeParameters(abi.parameters, parameters ?? '') + }; + } catch { + // do nothing + } + } + // contract deployment + if ((0,utils_address/* isZeroAddress */.uO)(to)) { + return { + ...context, + type: src/* TransactionDescriptorType.DEPLOYMENT */.vt.DEPLOYMENT, + code: data + }; + } + } + if (to) { + let code = ''; + try { + code = await this.connection.getCode(to); + } catch { + code = ''; + } + // cancel tx + if ((0,src/* isSameAddress */.Wr)(from, to) && (0,src/* isZero */.Fr)(value)) { + return { + ...context, + type: src/* TransactionDescriptorType.CANCEL */.vt.CANCEL + }; + } + // send ether + if ((0,utils_address/* isEmptyHex */.w2)(code)) { + return { + ...context, + type: src/* TransactionDescriptorType.TRANSFER */.vt.TRANSFER + }; + } else { + return { + ...context, + type: src/* TransactionDescriptorType.INTERACTION */.vt.INTERACTION + }; + } + } + throw new Error('Failed to format transaction.'); + } + async createDescriptor(chainId, transaction, context) { + for (const descriptor of this.descriptors[context.type]){ + const computed = await descriptor.compute(context); + if (computed) return { + ...computed, + chainId, + type: context.type, + _tx: transaction + }; + } + throw new Error('Failed to computed transaction descriptor.'); + } + constructor(context){ + super(context); + this.coder = web3_eth_abi_lib; + this.connection = createConnection(); + this.descriptors = { + [src/* TransactionDescriptorType.TRANSFER */.vt.TRANSFER]: [ + new TransferTokenDescriptor() + ], + [src/* TransactionDescriptorType.INTERACTION */.vt.INTERACTION]: [ + new ITODescriptor(), + new RedPacketDescriptor(), + new ERC20Descriptor(), + new SwapDescriptor(), + new BaseTransactionDescriptor(), + ], + [src/* TransactionDescriptorType.DEPLOYMENT */.vt.DEPLOYMENT]: [ + new ContractDeploymentDescriptor() + ], + [src/* TransactionDescriptorType.RETRY */.vt.RETRY]: [], + [src/* TransactionDescriptorType.CANCEL */.vt.CANCEL]: [ + new CancelDescriptor() + ] + }; + } +} -"use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "b": () => (/* binding */ MaskLoadingButton) -/* harmony export */ }); -/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(71999); -/* harmony import */ var _mui_lab_LoadingButton__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(61098); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(86248); -/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(98354); +;// CONCATENATED MODULE: ../plugins/EVM/src/state/TransactionWatcher/checkers/AccountChecker.ts -const MaskLoadingButton = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.forwardRef)((props, ref)=>{ - const { onClick , children , soloLoading , variant , ...rest } = props; - // Solo loading doesn't apply when there is a left/right icon. - const isSoloLoading = soloLoading && !props.startIcon && !props.endIcon && !props.loadingPosition; - const [loading, setLoading] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false); - const handleClick = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(async (event)=>{ - setLoading(true); - try { - await onClick(event); - setLoading(false); - } catch (error) { - setLoading(false); - if (typeof error === 'string') { - throw new Error(error); - } - } - }, [ - onClick - ]); - return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_lab_LoadingButton__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z, { - loadingPosition: rest.startIcon ? 'start' : rest.endIcon ? 'end' : undefined, - loading: loading, - loadingIndicator: isSoloLoading ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, { - color: "primary", - size: 16 - }) : undefined, - ...rest, - onClick: handleClick, - variant: isSoloLoading && loading ? 'text' : variant, - component: "button", - ref: ref, - children: children - }); -})); +class TTL { + get(key) { + if (!this.cache[key]) return; + const { value , at , ttl } = this.cache[key]; + return Date.now() - at < ttl ? value : undefined; + } + set(key, value, ttl = Number.MAX_SAFE_INTEGER) { + this.cache[key] = { + at: Date.now(), + ttl, + value + }; + } + constructor(){ + this.cache = {}; + } +} +/** + * Fetch latest tx list of the the given account. It creates a signature for each transaction. + * Treat two transactions the same with the identical transaction hash or signature. + */ class AccountChecker { + getExplorerTransactionId(transaction) { + if (!transaction) return ''; + const { from , to , input , value } = transaction; + return (0,lib.sha3)([ + from, + to, + input || '0x0', + (0,lib.toHex)(value || '0x0') || '0x0' + ].join('_')) ?? ''; + } + getTransactionId(transaction) { + const { from , to , data ='0x0' , value ='0x0' } = transaction; + if (!from || !to) return ''; + return (0,lib.sha3)([ + from, + to, + data, + value + ].join('_')) ?? ''; + } + async fetchLatestTransactions(chainId, account) { + const key = `${chainId}_${account.toLowerCase}`; + const hit = this.ttl.get(key); + if (hit) return hit; + const { API_KEYS =[] , EXPLORER_API ='' } = (0,constants/* getExplorerConstants */.i1)(chainId); + const transactions = await web3_providers_src/* Explorer.getLatestTransactions */.bC.getLatestTransactions(account, EXPLORER_API, { + offset: AccountChecker.CHECK_LATEST_TRANSACTION_SIZE, + apikey: (0,head/* default */.Z)(API_KEYS) + }); + this.ttl.set(key, transactions, 15 * 1000); + return transactions; + } + async getStatus(chainId, id, transaction) { + const account = transaction.from; + if (!account) throw new Error('Cannot found account.'); + const latestTransactions = await this.fetchLatestTransactions(chainId, account); + const txId = this.getTransactionId(transaction); + const tx = latestTransactions.find((x)=>x.hash === id || this.getExplorerTransactionId(x) === txId + ); + if (!tx) return src/* TransactionStatusType.NOT_DEPEND */.g8.NOT_DEPEND; + // '1' for successful transactions and '0' for failed transactions. + return tx.status === '1' ? src/* TransactionStatusType.SUCCEED */.g8.SUCCEED : src/* TransactionStatusType.FAILED */.g8.FAILED; + } + constructor(){ + this.ttl = new TTL(); + } +} +AccountChecker.CHECK_LATEST_TRANSACTION_SIZE = 5; -/***/ }), +;// CONCATENATED MODULE: ../plugins/EVM/src/state/TransactionWatcher/checkers/ReceiptChecker.ts -/***/ 68897: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -"use strict"; +class ReceiptChecker { + async getStatus(chainId, id, transaction) { + const connection = await settings/* Web3StateSettings.value.Connection */.o.value.Connection?.getConnection?.({ + chainId + }); + const receipt = await connection?.getTransactionReceipt(id); + return getReceiptStatus(receipt ?? null); + } +} -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - "x": () => (/* reexport */ SearchableList) -}); +;// CONCATENATED MODULE: ../plugins/EVM/src/state/TransactionWatcher/checker.ts -// UNUSED EXPORTS: MaskSearchableItemInList -// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.0.0/node_modules/react/jsx-runtime.js -var jsx_runtime = __webpack_require__(71999); -// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.0.0/node_modules/react/index.js -var react = __webpack_require__(86248); -// EXTERNAL MODULE: ../../node_modules/.pnpm/react-window@1.8.6_react-dom@18.0.0+react@18.0.0/node_modules/react-window/dist/index.esm.js -var index_esm = __webpack_require__(39080); -// EXTERNAL MODULE: ../../node_modules/.pnpm/fuse.js@6.5.3/node_modules/fuse.js/dist/fuse.esm.js -var fuse_esm = __webpack_require__(46149); -// EXTERNAL MODULE: ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/uniqBy.js -var uniqBy = __webpack_require__(18443); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.6.1_1376d0c029fe63cac75d7e36fe4212f4/node_modules/@mui/material/Box/Box.js -var Box = __webpack_require__(85139); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.6.1_1376d0c029fe63cac75d7e36fe4212f4/node_modules/@mui/material/InputAdornment/InputAdornment.js + 1 modules -var InputAdornment = __webpack_require__(69911); -// EXTERNAL MODULE: ../theme/src/UIHelper/makeStyles.ts -var makeStyles = __webpack_require__(21561); -;// CONCATENATED MODULE: ../theme/src/Components/SearchableList/MaskSearchableItemInList.tsx +const TransactionCheckers = [ + new AccountChecker(), + new ReceiptChecker() +]; +;// CONCATENATED MODULE: ../plugins/EVM/src/state/TransactionWatcher.ts -const MaskSearchableItemInList = ({ children , data , index , style })=>/*#__PURE__*/ (0,jsx_runtime.jsx)("div", { - style: style, - children: /*#__PURE__*/ react.createElement(children, { - data: data.dataSet[index], - index: index, - onSelect: data.onSelect - }) - }) -; -// EXTERNAL MODULE: ../theme/src/Components/TextField/index.tsx -var TextField = __webpack_require__(27381); -// EXTERNAL MODULE: ../icons/general/Search.tsx -var Search = __webpack_require__(38524); -;// CONCATENATED MODULE: ../theme/src/Components/SearchableList/SearchableList.tsx +class TransactionWatcher_TransactionWatcher extends entry_web3/* TransactionWatcherState */.$2 { + async watchTransaction(chainId, id, transaction) { + await super.watchTransaction(chainId, id, transaction); + this.emitter.emit('progress', id, src/* TransactionStatusType.NOT_DEPEND */.g8.NOT_DEPEND, transaction); + } + async notifyTransaction(chainId, id, transaction, status) { + const { Transaction } = settings/* Web3StateSettings.value */.o.value; + // update record status in transaction state + if (status !== src/* TransactionStatusType.NOT_DEPEND */.g8.NOT_DEPEND && Transaction?.updateTransaction && transaction.from) await Transaction.updateTransaction(chainId, transaction.from, id, status); + // only tracked records will get notified + (0,shared_base_src/* getSubscriptionCurrentValue */.SF)(()=>Transaction?.transactions + ).then((transactions)=>{ + if (transactions?.some((x)=>Object.keys(x.candidates).includes(id) + )) this.emitter.emit('progress', id, status, transaction); + }); + } + constructor(context, subscriptions){ + super(context, (0,esm/* getEnumAsArray */.Yl)(types/* ChainId */.a_).map((x)=>x.value + ), TransactionCheckers, subscriptions, { + defaultBlockDelay: 15, + getTransactionCreator: (tx)=>tx.from ?? '' + }); + } +} +;// CONCATENATED MODULE: ../plugins/EVM/src/state/IdentityService.ts -/** - * This component is used to provide a searchable list in Mask design. - * - * @example - * interface IListDate { name: string } - * const ListItem = ({ name }: IListDate) =>
{ name }
- * const onSelect = () => {} - * - * return ( - * - * onSelect={onSelect} - * data={ListData} - * searchKey={['name']} - * itemRender={ListItem} - * /> - * ) - */ function SearchableList({ itemKey , data , placeholder , onSelect , onSearch , disableSearch , searchKey , itemRender , FixedSizeListProps ={} , SearchFieldProps }) { - const [keyword, setKeyword] = (0,react.useState)(''); - const { classes } = useStyles(); - const { height , itemSize , ...rest } = FixedSizeListProps; - const { InputProps , ...textFieldPropsRest } = SearchFieldProps ?? {}; - // #region fuse - const fuse = (0,react.useMemo)(()=>new fuse_esm/* default */.Z(data, { - shouldSort: true, - threshold: 0.45, - minMatchCharLength: 1, - keys: searchKey ?? data.length > 0 ? Object.keys(data[0]) : [] - }) - , [ - data, - searchKey - ]); - // #endregion - // #region create searched data - const readyToRenderData = (0,react.useMemo)(()=>{ - if (!keyword || onSearch) return data; - const filtered = [ - ...fuse.search(keyword).map((x)=>x.item - ) - ]; - return itemKey ? (0,uniqBy/* default */.Z)(filtered, (x)=>x[itemKey] - ) : filtered; - }, [ - keyword, - fuse, - data - ]); - // #endregion - const handleSearch = (word)=>{ - setKeyword(word); - onSearch?.(word); - }; - return /*#__PURE__*/ (0,jsx_runtime.jsxs)("div", { - className: classes.container, - children: [ - !disableSearch && /*#__PURE__*/ (0,jsx_runtime.jsx)(Box/* default */.Z, { - pt: 0.5, - children: /*#__PURE__*/ (0,jsx_runtime.jsx)(TextField/* MaskTextField */.F, { - placeholder: "Search", - autoFocus: true, - fullWidth: true, - InputProps: { - startAdornment: /*#__PURE__*/ (0,jsx_runtime.jsx)(InputAdornment/* default */.Z, { - position: "start", - children: /*#__PURE__*/ (0,jsx_runtime.jsx)(Search/* SearchIcon */.W, {}) - }), - ...InputProps - }, - onChange: (e)=>handleSearch(e.currentTarget.value) - , - ...textFieldPropsRest - }) - }), - placeholder, - !placeholder && /*#__PURE__*/ (0,jsx_runtime.jsx)("div", { - className: classes.list, - children: /*#__PURE__*/ (0,jsx_runtime.jsx)(index_esm/* FixedSizeList */.t7, { - width: "100%", - height: height ?? 300, - overscanCount: 25, - itemSize: itemSize ?? 100, - itemData: { - dataSet: readyToRenderData, - onSelect: onSelect - }, - itemCount: readyToRenderData.length, - ...rest, - children: (props)=>/*#__PURE__*/ (0,jsx_runtime.jsx)(MaskSearchableItemInList, { - ...props, - children: itemRender - }) - }) - }) - ] - }); + + +const ENS_RE = /\S{1,256}\.(eth|kred|xyz|luxe)\b/; +const ADDRESS_FULL = /0x\w{40,}/; +// xxx.cheers.bio xxx.rss3.bio +const RSS3_URL_RE = /https?:\/\/(?[\w.]+)\.(rss3|cheers)\.bio/; +const RSS3_RNS_RE = /(?[\w.]+)\.rss3/; +function isValidSocialAddress(address) { + return address && (0,utils_address/* isValidAddress */.At)(address) && !(0,utils_address/* isZeroAddress */.uO)(address); +} +function getEthereumName(twitterId, nickname, bio) { + const [matched] = (nickname.match(ENS_RE) ?? bio.match(ENS_RE)) ?? []; + if (matched) return matched; + return twitterId && !twitterId.endsWith('.eth') ? `${twitterId}.eth` : twitterId; +} +function getRSS3Id(nickname, profileURL, bio) { + const matched = nickname.match(RSS3_RNS_RE) || profileURL.match(RSS3_URL_RE) || bio.match(RSS3_URL_RE) || bio.match(RSS3_RNS_RE); + return matched?.groups?.name ?? ''; +} +function getAddress(text) { + const [matched] = text.match(ADDRESS_FULL) ?? []; + if (matched && (0,utils_address/* isValidAddress */.At)(matched)) return matched; + return ''; +} +class IdentityService extends entry_web3/* IdentityServiceState */.OC { + async getFromRemote(identity) { + const { identifier , bio ='' , nickname ='' , homepage ='' } = identity; + const address = getAddress(bio); + const ethereumName = getEthereumName(identifier?.userId ?? '', nickname, bio); + const RSS3Id = getRSS3Id(nickname, homepage, bio); + const web3 = new (web3_lib_default())(createWeb3Provider(async (requestArguments)=>{ + return (await this.context.send((0,payload/* createPayload */.Z4)(0, requestArguments.method, requestArguments.params))).result; + })); + const allSettled = await Promise.allSettled([ + web3.eth.ens.getAddress(ethereumName), + web3_providers_src/* RSS3.getNameInfo */.S5.getNameInfo(RSS3Id).then((x)=>x?.address ?? '' + ), + web3_providers_src/* KeyValue.createJSON_Storage */.cl.createJSON_Storage(`com.maskbook.user_${(0,shared_base_src/* getSiteType */.sv)()}`).get(identifier?.userId ?? '$unknown').then((x)=>x?.[src/* NetworkPluginID.PLUGIN_EVM */.FF.PLUGIN_EVM].address ?? '' + ), + ]); + const getSettledAddress = (result)=>{ + return result.status === 'fulfilled' ? result.value : ''; + }; + const addressENS = getSettledAddress(allSettled[0]); + const addressRSS3 = getSettledAddress(allSettled[1]); + const addressKV = getSettledAddress(allSettled[2]); + return [ + isValidSocialAddress(address) ? { + networkSupporterPluginID: src/* NetworkPluginID.PLUGIN_EVM */.FF.PLUGIN_EVM, + type: src/* SocialAddressType.ADDRESS */.bN.ADDRESS, + label: address, + address + } : null, + isValidSocialAddress(addressENS) ? { + networkSupporterPluginID: src/* NetworkPluginID.PLUGIN_EVM */.FF.PLUGIN_EVM, + type: src/* SocialAddressType.ENS */.bN.ENS, + label: ethereumName, + address: addressENS + } : null, + isValidSocialAddress(addressRSS3) ? { + networkSupporterPluginID: src/* NetworkPluginID.PLUGIN_EVM */.FF.PLUGIN_EVM, + type: src/* SocialAddressType.RSS3 */.bN.RSS3, + label: `${RSS3Id}.rss3`, + address: addressRSS3 + } : null, + isValidSocialAddress(addressKV) ? { + networkSupporterPluginID: src/* NetworkPluginID.PLUGIN_EVM */.FF.PLUGIN_EVM, + type: src/* SocialAddressType.KV */.bN.KV, + label: addressKV, + address: addressKV + } : null, + ].filter(Boolean); + } + constructor(context){ + super(); + this.context = context; + } } -const useStyles = (0,makeStyles/* makeStyles */.Z)()((theme)=>({ - container: {}, - list: { - marginTop: theme.spacing(1.5), - '& > div::-webkit-scrollbar': { - width: '7px' - }, - '& > div::-webkit-scrollbar-track': { - boxShadow: 'inset 0 0 6px rgba(0,0,0,0.00)', - webkitBoxShadow: 'inset 0 0 6px rgba(0,0,0,0.00)' - }, - '& > div::-webkit-scrollbar-thumb': { - borderRadius: '4px', - backgroundColor: theme.palette.background.default - } - } - }) -); -;// CONCATENATED MODULE: ../theme/src/Components/SearchableList/index.ts +;// CONCATENATED MODULE: ../plugins/EVM/src/state/BalanceNotifier.ts + +class BalanceNotifier extends entry_web3/* BalanceNotifierState */.oD { + constructor(){ + super(); + } +} + +;// CONCATENATED MODULE: ../plugins/EVM/src/state/BlockNumberNotifier.ts + +class BlockNumberNotifier extends entry_web3/* BlockNumberNotifierState */.BS { + constructor(){ + super(); + } +} + +;// CONCATENATED MODULE: ../plugins/EVM/src/state/index.ts + + + + + + + + + + + + +function createWeb3State(context) { + const Provider_ = new Provider(context); + const Settings_ = new Settings(context); + const Transaction_ = new Transaction(context, { + chainId: Provider_.chainId, + account: Provider_.account + }); + return { + Settings: Settings_, + Provider: Provider_, + BalanceNotifier: new BalanceNotifier(), + BlockNumberNotifier: new BlockNumberNotifier(), + AddressBook: new AddressBook(context, { + chainId: Provider_.chainId + }), + Hub: new Hub_Hub(context, { + chainId: Provider_.chainId, + account: Provider_.account, + currencyType: Settings_.currencyType + }), + IdentityService: new IdentityService(context), + NameService: new NameService(context, { + chainId: Provider_.chainId + }), + RiskWarning: new RiskWarning(context, { + account: Provider_.account + }), + Token: new Token(context, { + account: Provider_.account + }), + Transaction: Transaction_, + TransactionFormatter: new TransactionFormatter(context), + TransactionWatcher: new TransactionWatcher_TransactionWatcher(context, { + chainId: Provider_.chainId, + transactions: Transaction_.transactions + }), + Connection: new Connection_Connection(context, { + chainId: Provider_.chainId, + account: Provider_.account, + providerType: Provider_.providerType + }), + Wallet: new Wallet(context), + Others: new Others(context) + }; +} + + + /***/ }), -/***/ 27381: +/***/ 87245: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "F": () => (/* binding */ MaskTextField) -/* harmony export */ }); -/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(71999); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(86248); -/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(55917); -/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(85139); -/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(37253); -/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(7284); -/* harmony import */ var _UIHelper_makeStyles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(21561); -/* harmony import */ var _CSSVariables_vars__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6009); +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "u": () => (/* binding */ base) +}); +// EXTERNAL MODULE: ../plugin-infra/src/entry.ts +var entry = __webpack_require__(70226); +;// CONCATENATED MODULE: ../plugins/FileService/src/locales/en-US.json +const en_US_namespaceObject = JSON.parse('{"__display_name":"File Service","__description":"Upload and share files on top of Arweave network. Store data, permanently.","__composition_entry":"📃 File Service","on_insert":"Use the file","uploading_preparing":"Preparing","uploading_estimating_time":"Estimating time…","uploading_in_minute_remaining":"{{seconds}}s remaining","uploading_remaining":"{{minutes}}m {{seconds}}s remaining","uploading_on_cancel":"Uploading… Please do not close this page.","recent_files":"Recent files","show_more":"Show More","file_key":"File Key:","unencrypted":"This file is not encrypted","signing_failed":"Service unavailable. Wait a few minutes and try again.","on_encrypt_it":"Make It Encrypted","use_cdn":"Use Meson CDN","legal_text":"By using this plugin, you agree to the terms and the privacy policy.","legal_terms_link":"https://legal.mask.io/arweave/file-service/plugin-terms.html","legal_policy_link":"https://legal.mask.io/arweave/file-service/privacy-policy-uploader.html","drop_indicator":"Drop to upload","drop_hint_1":"Size limit: {{limit}}.","drop_hint_2":"The file will be uploaded immediately and cannot be canceled.","drop_here":"Drop a file here to upload","error_101":"The input is not a single file.","error_102":"The file is too large; limit is {{limit}}.","on_change_file":"Change File","__plugin_name":"File Service","__plugin_description":"Decentralized file storage, permanently. Upload and share files to your Mask friends on top of Arweave Network.","provider_arweave":"Arweave","provider_ipfs":"IPFS","provider_swarm":"Swarm"}'); +;// CONCATENATED MODULE: ../plugins/FileService/src/locales/ja-JP.json +const ja_JP_namespaceObject = JSON.parse('{"__display_name":"プラグイン: ファイルサービス","__description":"ファイルをArweaveネットワーク上にアップロードと共有します。データーを永久に保存します。","__composition_entry":"📃ファイルサービス","on_insert":"ファイルを使用する","uploading_preparing":"準備中","uploading_estimating_time":"転送時間を計算中...","uploading_in_minute_remaining":"残り: {{seconds}} 秒","uploading_remaining":"残り: {{minutes}} 分 {{seconds}} 秒","uploading_on_cancel":"アップロードしています…今このページを閉じないでください。","recent_files":"最近のファイル","show_more":"更に","file_key":"ファイルキー:","unencrypted":"このファイルは暗号化されていません。","signing_failed":"サービスが使用できません。今しばらくお待ちください。","on_encrypt_it":"暗号化しましょう","use_cdn":"Mesonを使用して加速する","legal_text":"このプラグインを使用することで利用規約並びにプライバシーポリシーに同意したこととなります。","legal_terms_link":"https://legal.mask.io/arweave/file-service/plugin-terms.html","legal_policy_link":"https://legal.mask.io/arweave/file-service/privacy-policy-uploader.html","drop_indicator":"ファイルをドラッグ&ドロップしてアップロード!","drop_hint_1":"ファイル容量の超過:{{limit}}","drop_hint_2":"このファイルはすぐにアップロードされ、取り消すことはできません。","drop_here":"ファイルをここにドラッグ&ドロップ","error_101":"一つのファイルだけにしてください!","error_102":"ファイルが大きすぎます!最大容量は {{limit}} です。","on_change_file":"ファイルの変更"}'); +;// CONCATENATED MODULE: ../plugins/FileService/src/locales/ko-KR.json +const ko_KR_namespaceObject = JSON.parse('{"on_insert":"파일 사용","uploading_preparing":"준비 중","uploading_estimating_time":"남은 시간 계산 중","uploading_in_minute_remaining":"남은 시간 {{seconds}}s","uploading_remaining":"남은 시간 {{minutes}}m {{seconds}}s","uploading_on_cancel":"업로딩 중, 이 페이지를 닫지 마세요.","recent_files":"최근 파일","show_more":"더보기","file_key":"파일 키","unencrypted":"암호화되지 않는 파일입니다.","signing_failed":"사용 안 되는 서비스입니다. 잠시 후 다시 시도하세요.","on_encrypt_it":"암호화하기","use_cdn":"Meson CDN를 이용하기","legal_text":"이 플러그인을 이용하면 이용약관개인정보처리방침을 동의함으로 간주합니다","drop_indicator":"파일을 끌어들여 업로드하기","drop_hint_1":"크기 제한: {{limit}}.","drop_hint_2":"이 파일 즉시 업로드되겠습니다. 취소가 불가능합니다.","drop_here":"여기서 파일을 끌어들여 업로드하기","error_101":"단일 파일만 가능합니다.","error_102":"이 파일은 너무 큽니다. 크기 제한: {{limit}}.","on_change_file":"다른 파일로 바꾸기"}'); +;// CONCATENATED MODULE: ../plugins/FileService/src/locales/qya-AA.json +const qya_AA_namespaceObject = JSON.parse('{"__display_name":"crwdns10743:0crwdne10743:0","__description":"crwdns10745:0crwdne10745:0","__composition_entry":"crwdns10747:0crwdne10747:0","on_insert":"crwdns10697:0crwdne10697:0","uploading_preparing":"crwdns10699:0crwdne10699:0","uploading_estimating_time":"crwdns10701:0crwdne10701:0","uploading_in_minute_remaining":"crwdns10703:0{{seconds}}crwdne10703:0","uploading_remaining":"crwdns10705:0{{minutes}}crwdnd10705:0{{seconds}}crwdne10705:0","uploading_on_cancel":"crwdns10707:0crwdne10707:0","recent_files":"crwdns10709:0crwdne10709:0","show_more":"crwdns10711:0crwdne10711:0","file_key":"crwdns10713:0crwdne10713:0","unencrypted":"crwdns10715:0crwdne10715:0","signing_failed":"crwdns10717:0crwdne10717:0","on_encrypt_it":"crwdns10719:0crwdne10719:0","use_cdn":"crwdns10721:0crwdne10721:0","legal_text":"crwdns10723:0crwdne10723:0","legal_terms_link":"crwdns10725:0crwdne10725:0","legal_policy_link":"crwdns10727:0crwdne10727:0","drop_indicator":"crwdns10729:0crwdne10729:0","drop_hint_1":"crwdns10731:0{{limit}}crwdne10731:0","drop_hint_2":"crwdns10733:0crwdne10733:0","drop_here":"crwdns10735:0crwdne10735:0","error_101":"crwdns10737:0crwdne10737:0","error_102":"crwdns10739:0{{limit}}crwdne10739:0","on_change_file":"crwdns10741:0crwdne10741:0","__plugin_name":"crwdns16290:0crwdne16290:0","__plugin_description":"crwdns16292:0crwdne16292:0","provider_arweave":"crwdns14526:0crwdne14526:0","provider_ipfs":"crwdns14528:0crwdne14528:0","provider_swarm":"crwdns14530:0crwdne14530:0"}'); +;// CONCATENATED MODULE: ../plugins/FileService/src/locales/zh-CN.json +const zh_CN_namespaceObject = JSON.parse('{"__display_name":"插件:文件服务","__description":"上传和分享文件至 Arweave 网络,永久性地存储数据。","__composition_entry":"📃 文件服务","on_insert":"使用该文件","uploading_preparing":"准备中","uploading_estimating_time":"预计时间…","uploading_in_minute_remaining":"剩余 {{seconds}} 秒","uploading_remaining":"剩余 {{minutes}} 分钟 {{seconds}} 秒","uploading_on_cancel":"上传中…请不要关闭此页面。","recent_files":"最近使用的文件","show_more":"显示更多","file_key":"文件密钥:","unencrypted":"此文件未加密","signing_failed":"服务暂不可用。请等待几分钟后重试。","on_encrypt_it":"进行加密","use_cdn":"使用Meson CDN","legal_text":"使用此插件,均表明您同意 使用条款隐私政策。","legal_terms_link":"拖放文件以上传","legal_policy_link":"大小限制: {{limit}}","drop_indicator":"将文件拖放到此处来上传。","drop_hint_1":"大小限制: {{limit}}","drop_hint_2":"文件将立即上传,无法取消。","drop_here":"将文件拖放到此处来上传。","error_101":"此输入不是单个文件。","error_102":"文件太大,限制为 {{limit}}。","on_change_file":"更改文件","provider_arweave":"Arweave","provider_ipfs":"IPFS","provider_swarm":"Swarm"}'); +;// CONCATENATED MODULE: ../plugins/FileService/src/locales/zh-TW.json +const zh_TW_namespaceObject = JSON.parse('{"__display_name":"插件:檔案服務","__composition_entry":"📃 檔案服務","on_insert":"使用這個檔案","uploading_preparing":"準備中","uploading_estimating_time":"預估時間…","uploading_in_minute_remaining":"剩下 {{seconds}} 秒","uploading_remaining":"剩下 {{minutes}} 分 {{seconds}} 秒","uploading_on_cancel":"上傳中… 請勿關閉這個頁面。","recent_files":"最近的檔案","show_more":"顯示更多","file_key":"檔案金鑰:","unencrypted":"這個檔案未加密","signing_failed":"服務無法使用。 請稍等幾分鐘,然後重試。","on_encrypt_it":"加密它","use_cdn":"使用 Meson CDN","legal_text":"使用此插件表示您同意使用者條約隱私權政策。","drop_indicator":"拖入檔案以上傳","drop_hint_1":"檔案大小限制:{{limit}}。","drop_hint_2":"檔案將立即被上傳而且無法取消。","drop_here":"在這裡拖入一個檔案以上傳","error_101":"輸入的檔案不是單一檔案","error_102":"檔案太大; 檔案大小限制是 {{limit}}。","on_change_file":"更改檔案"}'); +;// CONCATENATED MODULE: ../plugins/FileService/src/locales/languages.ts +// This file is auto generated. DO NOT EDIT +// Run `npx gulp sync-languages` to regenerate. +// Default fallback language in a family of languages are chosen by the alphabet order +// To overwrite this, please overwrite packages/scripts/src/locale-kit-next/index.ts -const useStyles = (0,_UIHelper_makeStyles__WEBPACK_IMPORTED_MODULE_2__/* .makeStyles */ .Z)()((theme)=>({ - label: { - fontSize: 12, - lineHeight: '16px', - fontWeight: 'bolder' - }, - required: { - fontSize: 12, - lineHeight: '16px', - fontWeight: 'bolder', - color: (0,_CSSVariables_vars__WEBPACK_IMPORTED_MODULE_3__/* .getMaskColor */ .n)(theme).redMain, - paddingLeft: theme.spacing(0.5) - }, - field: { - width: '100%', - [`& > .${_mui_material__WEBPACK_IMPORTED_MODULE_4__/* ["default"].root */ .Z.root}`]: { - marginTop: theme.spacing(0.8), - paddingLeft: theme.spacing(0.5), - borderLeft: 'solid 2px', - borderRadius: '2px', - fontSize: 12, - lineHeight: '16px' - } + + + +const languages = { + en: en_US_namespaceObject, + ja: ja_JP_namespaceObject, + ko: ko_KR_namespaceObject, + qy: qya_AA_namespaceObject, + 'zh-CN': zh_CN_namespaceObject, + zh: zh_TW_namespaceObject +}; +// @ts-ignore +if (false) {} + +// EXTERNAL MODULE: ../plugins/FileService/src/constants.ts +var constants = __webpack_require__(94529); +;// CONCATENATED MODULE: ../plugins/FileService/src/base.ts + + + +const base = { + ID: entry/* PluginId.FileService */.je.FileService, + name: { + fallback: 'File Service', + i18nKey: '__display_name' + }, + description: { + fallback: 'Upload and share files on top of Arweave network. Store data, permanently.', + i18nKey: '__description' + }, + publisher: { + name: { + fallback: 'Mask Network' }, - input: { - padding: theme.spacing(1), - background: theme.palette.mode === 'dark' ? '#2B2E4C' : '#F6F6F8', - fontSize: 13, - lineHeight: '16px', - borderRadius: 6, - [`&.${_mui_material__WEBPACK_IMPORTED_MODULE_4__/* ["default"].error */ .Z.error}`]: { - boxShadow: `0 0 0 ${theme.spacing(0.5)} ${_CSSVariables_vars__WEBPACK_IMPORTED_MODULE_3__/* .MaskColorVar.redMain.alpha */ .Z.redMain.alpha(0.2)}`, - border: `1px solid ${_CSSVariables_vars__WEBPACK_IMPORTED_MODULE_3__/* .MaskColorVar.redMain.alpha */ .Z.redMain.alpha(0.8)}` - } + link: 'https://mask.io' + }, + enableRequirement: { + architecture: { + app: true, + web: true }, - inputDisabled: { - opacity: 0.5, - color: 'rgba(255, 255, 255, 0.4)' + networks: { + type: 'opt-out', + networks: {} }, - inputFocused: { - background: _CSSVariables_vars__WEBPACK_IMPORTED_MODULE_3__/* .MaskColorVar.primaryBackground */ .Z.primaryBackground, - boxShadow: `0 0 0 2px ${theme.palette.mode === 'dark' ? '#4F5378' : 'rgba(28, 104, 243, 0.2)'}` - } - }) -); -const MaskTextField = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.forwardRef)((props, ref)=>{ - const { label , sx , required =false , ...rest } = props; - const inputProps = props.InputProps ?? {}; - const { classes } = useStyles(); - return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_mui_material__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z, { - sx: sx, - children: [ - label && typeof label === 'string' && /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_mui_material__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, { - sx: { - mb: 1 - }, - variant: "body2", - className: classes.label, - children: [ - label, - required && /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, { - className: classes.required, - component: "span", - children: "*" - }) - ] - }), - label && typeof label !== 'string' && label, - /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z, { - ref: ref, - ...rest, - classes: { - root: classes.field - }, - variant: "standard", - required: required, - InputProps: { - disableUnderline: true, - className: classes.input, - classes: { - disabled: classes.inputDisabled, - focused: classes.inputFocused, - ...inputProps.classes - }, - ...inputProps - } - }) - ] - }); -}); + target: 'stable' + }, + i18n: languages, + contribution: { + metadataKeys: new Set([ + constants/* META_KEY_1 */.ki, + constants/* META_KEY_2 */.lw + ]) + } +}; /***/ }), -/***/ 39688: +/***/ 94529: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "AZ": () => (/* binding */ DisableShadowRootContext), -/* harmony export */ "EP": () => (/* binding */ StyleSheetsContext), -/* harmony export */ "gt": () => (/* binding */ PreventEventPropagationListContext) +/* harmony export */ "Gm": () => (/* binding */ signing), +/* harmony export */ "Tb": () => (/* binding */ MAX_FILE_SIZE), +/* harmony export */ "_$": () => (/* binding */ landing), +/* harmony export */ "er": () => (/* binding */ FileRouter), +/* harmony export */ "ki": () => (/* binding */ META_KEY_1), +/* harmony export */ "lw": () => (/* binding */ META_KEY_2), +/* harmony export */ "oC": () => (/* binding */ mesonPrefix) /* harmony export */ }); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(86248); - -/** @internal */ const StyleSheetsContext = (0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)(null); -/** @internal */ const PreventEventPropagationListContext = (0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)([]); -/** This context does not join any ShadowRoot related feature. */ const DisableShadowRootContext = (0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)(false); +const META_KEY_1 = 'com.maskbook.fileservice:1'; +const META_KEY_2 = 'com.maskbook.fileservice:2'; +const MAX_FILE_SIZE = 0xa00000 // = 10 MiB +; +const landing = 'https://files.r2d2.to/partner/arweave/landing-page.html'; +const signing = 'https://service.r2d2.to/arweave-remote-signing'; +const mesonPrefix = 'https://coldcdn.com/api/cdn/9m5pde'; +var FileRouter; +(function(FileRouter) { + FileRouter["upload"] = '/upload'; + FileRouter["uploading"] = '/uploading'; + FileRouter["uploaded"] = '/uploaded'; +})(FileRouter || (FileRouter = {})); /***/ }), -/***/ 10481: +/***/ 8634: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "q": () => (/* binding */ ShadowRootStyleProvider) +/* harmony export */ "z": () => (/* binding */ Provider) /* harmony export */ }); -/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(71999); -/* harmony import */ var _emotion_cache__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20227); -/* harmony import */ var _emotion_react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(83321); -/* harmony import */ var tss_react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(13442); -/* harmony import */ var _ShadowRootStyleSheet__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(60549); -/* harmony import */ var _Contexts__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(39688); +var Provider; +(function(Provider) { + Provider["arweave"] = "arweave"; + Provider["ipfs"] = "ipfs"; + Provider["swarm"] = "swarm"; +})(Provider || (Provider = {})); +/***/ }), +/***/ 57670: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { +"use strict"; +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "u": () => (/* binding */ base) +}); -/** - * @internal - * This component provide the modified version of tss-react and emotion context, - * therefore styles within this component can render correctly in ShadowRoot. - * - * This component is used to render inside a bare ShadowRoot. - * If you need a nested ShadowRoot render, use ShadowRootIsolation. - */ function ShadowRootStyleProvider(props) { - const { shadow , children } = props; - const [mui, tss, sheets] = getShadowRootEmotionCache(shadow); - return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Contexts__WEBPACK_IMPORTED_MODULE_4__/* .StyleSheetsContext.Provider */ .EP.Provider, { - value: sheets, - children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_emotion_react__WEBPACK_IMPORTED_MODULE_5__.C, { - value: mui, - children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(tss_react__WEBPACK_IMPORTED_MODULE_2__/* .TssCacheProvider */ .LW, { - value: tss, - children: children - }) - }) - }); -} -const styleSheetMap = new WeakMap(); -function getShadowRootEmotionCache(shadow) { - if (styleSheetMap.has(shadow)) return styleSheetMap.get(shadow); - // emotion doesn't allow numbers appears in the key - const instanceID = Math.random().toString(36).slice(2).replace(/\d/g, 'x').slice(0, 4); - const keyA = 'mui-' + instanceID; - const keyB = 'tss-' + instanceID; - const muiEmotionCache = (0,_emotion_cache__WEBPACK_IMPORTED_MODULE_1__["default"])({ - key: keyA - }); - const muiStyleSheet = new _ShadowRootStyleSheet__WEBPACK_IMPORTED_MODULE_3__/* .StyleSheet */ .m({ - key: keyA, - container: shadow - }); - muiEmotionCache.sheet = muiStyleSheet; - const tssEmotionCache = (0,_emotion_cache__WEBPACK_IMPORTED_MODULE_1__["default"])({ - key: keyB - }); - const tssStyleSheet = new _ShadowRootStyleSheet__WEBPACK_IMPORTED_MODULE_3__/* .StyleSheet */ .m({ - key: keyB, - container: shadow - }); - tssEmotionCache.sheet = tssStyleSheet; - styleSheetMap.set(shadow, [ - muiEmotionCache, - tssEmotionCache, - [ - muiStyleSheet, - tssStyleSheet - ] - ]); - return styleSheetMap.get(shadow); -} +// EXTERNAL MODULE: ../web3-shared/flow/index.ts + 14 modules +var flow = __webpack_require__(85081); +;// CONCATENATED MODULE: ../plugins/Flow/src/locales/en-US.json +const en_US_namespaceObject = JSON.parse('{"button_log_in":"Log In","button_log_out":"Log Out","button_sign_up":"Sign Up","card_state_text_no_profile":"No Profile"}'); +;// CONCATENATED MODULE: ../plugins/Flow/src/locales/ja-JP.json +const ja_JP_namespaceObject = {}; +;// CONCATENATED MODULE: ../plugins/Flow/src/locales/ko-KR.json +const ko_KR_namespaceObject = JSON.parse('{"button_log_in":"로그인","button_log_out":"로그아웃","button_sign_up":"가입하기","card_state_text_no_profile":"프로필 없음"}'); +;// CONCATENATED MODULE: ../plugins/Flow/src/locales/qya-AA.json +const qya_AA_namespaceObject = JSON.parse('{"button_log_in":"crwdns9789:0crwdne9789:0","button_log_out":"crwdns9791:0crwdne9791:0","button_sign_up":"crwdns9793:0crwdne9793:0","card_state_text_no_profile":"crwdns9795:0crwdne9795:0"}'); +;// CONCATENATED MODULE: ../plugins/Flow/src/locales/zh-CN.json +const zh_CN_namespaceObject = JSON.parse('{"button_log_in":"登录","button_log_out":"注销","button_sign_up":"注册","card_state_text_no_profile":"暂无个人资料"}'); +;// CONCATENATED MODULE: ../plugins/Flow/src/locales/zh-TW.json +const zh_TW_namespaceObject = JSON.parse('{"button_log_in":"登入","button_log_out":"登出","button_sign_up":"註冊","card_state_text_no_profile":"無文件"}'); +;// CONCATENATED MODULE: ../plugins/Flow/src/locales/languages.ts +// This file is auto generated. DO NOT EDIT +// Run `npx gulp sync-languages` to regenerate. +// Default fallback language in a family of languages are chosen by the alphabet order +// To overwrite this, please overwrite packages/scripts/src/locale-kit-next/index.ts -/***/ }), -/***/ 89545: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "BorderRadius": () => (/* binding */ BorderRadius), -/* harmony export */ "Breakpoints": () => (/* binding */ Breakpoints), -/* harmony export */ "DefaultVariants": () => (/* binding */ DefaultVariants), -/* harmony export */ "Font": () => (/* binding */ Font), -/* harmony export */ "NoAutoTextTransform": () => (/* binding */ NoAutoTextTransform), -/* harmony export */ "Shadows": () => (/* binding */ Shadows) -/* harmony export */ }); -const Font = { - // cspell:ignore Jheng - typography: { - // TODO: lang=JP? offer different font list for different lang target? - // Firefox doesn't support "system-ui" so we need fallback - fontFamily: `PingFang SC, system-ui, Segoe UI, Roboto, Ubuntu, Helvetica Neue, Helvetica, Arial, - PingFang TC, Hiragino Sans TC, Source Han Sans TC, Noto Sans CJK TC, Microsoft JhengHei UI, Microsoft JhengHei, sans-serif;` - } + + +const languages = { + en: en_US_namespaceObject, + ja: ja_JP_namespaceObject, + ko: ko_KR_namespaceObject, + qy: qya_AA_namespaceObject, + 'zh-CN': zh_CN_namespaceObject, + zh: zh_TW_namespaceObject }; -/** - * ? lg changed to 1440, other values untouched (default value) - */ const Breakpoints = { - breakpoints: { - values: { - xs: 0, - sm: 600, - md: 960, - lg: 1440, - xl: 1920 - } - } +// @ts-ignore +if (false) {} + +// EXTERNAL MODULE: ../plugins/Flow/src/constants.ts +var constants = __webpack_require__(13193); +;// CONCATENATED MODULE: ../plugins/Flow/src/base.ts + + + +const base = { + ID: constants/* PLUGIN_ID */.Uu, + name: { + fallback: constants/* PLUGIN_NAME */.EW + }, + description: { + fallback: constants/* PLUGIN_DESCRIPTION */.PP + }, + publisher: { + name: { + fallback: 'Mask Network' + }, + link: 'https://mask.io/' + }, + enableRequirement: { + architecture: { + app: true, + web: true + }, + networks: { + type: 'opt-out', + networks: {} + }, + target: 'stable' + }, + i18n: languages, + declareWeb3Networks: flow/* NETWORK_DESCRIPTORS */.qQ, + declareWeb3Providers: flow/* PROVIDER_DESCRIPTORS */.zM }; -/** - * ? Paper shadow should follow Mask UI - */ const Shadows = { - components: { - MuiPaper: { - styleOverrides: {}, - variants: [ - { - props: { - variant: 'outlined' - }, - style: { - boxShadow: '0px 8px 20px rgba(0, 0, 0, 0.04)' - } - }, - ] - } - } + + +/***/ }), + +/***/ 13193: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "EW": () => (/* binding */ PLUGIN_NAME), +/* harmony export */ "PP": () => (/* binding */ PLUGIN_DESCRIPTION), +/* harmony export */ "Uu": () => (/* binding */ PLUGIN_ID) +/* harmony export */ }); +/* harmony import */ var _masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(67938); + +const PLUGIN_ID = _masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .NetworkPluginID.PLUGIN_FLOW */ .FF.PLUGIN_FLOW; +const PLUGIN_NAME = 'Flow Chain'; +const PLUGIN_DESCRIPTION = ''; + + +/***/ }), + +/***/ 53110: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; + +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "u": () => (/* binding */ base) +}); + +// EXTERNAL MODULE: ../plugins/GoPlusSecurity/src/constants.ts +var constants = __webpack_require__(67606); +;// CONCATENATED MODULE: ../plugins/GoPlusSecurity/src/locales/en-US.json +const en_US_namespaceObject = JSON.parse('{"__plugin_name":"Check Security","powered_by_go_plus":"Powered by Go+","high_risk":"High Risk","low_risk":"Low Risk","medium_risk":"Medium Risk","search":"Search","search_input_placeholder":"Please enter token contract address.","token_info":"Token info","more_details":"More Details","security_detection":"Security Detection","risky_factors":"{{quantity}} Risky factors","attention_factors":"{{quantity}} Attention factors","risky_factor":"{{quantity}} Risky factor","attention_factor":"{{quantity}} Attention factor","security_info_code_not_verify_title":"Contract source code not verified","security_info_code_not_verify_message":"This token contract has not been verified. We cannot check the contract code for details. Unsourced token contracts are likely to have malicious functions to defraud users of their assets","security_info_functions_that_can_suspend_trading_title":"Functions that can suspend trading","security_info_functions_that_can_suspend_trading_message":"If a suspendable code is included, the token maybe neither be bought nor sold (honeypot risk). ","token_info_token_name":"Token Name","token_info_token_contract_address":"Token Contract Address","token_info_contract_creator":"Contract Creator","token_info_contract_owner":"Contract Owner","token_info_total_supply":"Total Supply","default_placeholder":"Note: Scams detections might not be 100% guaranteed.","not_found_tip_title":"Results not found now. it might be chain network error, on-chain data abnormal or the token address is not covered now. please check as followings:","not_found_tip_network_error":"1. Make sure network is working;","not_found_tip_network_chain_correct":"2. Mask sure the chain network or token address is correct;","not_found_tip_network_address_not_cover":"3. Token address is not covered now, it might take more than 60s to get contract information again. Please try it later.","risk_safe_description":"This token has no risky or attention factors.","risk_contract_source_code_verified_title":"Contract source code verified","risk_contract_source_code_verified_body":"This token contract is open source. You can check the contract code for details. Unsourced token contracts are likely to have malicious functions to defraud their users of their assets.","risk_contract_source_code_not_verified_title":"Contract source code not verified","risk_contract_source_code_not_verified_body":"This token contract has not been verified. We cannot check the contract code for details. Unsourced token contracts are likely to have malicious functions to defraud users of their assets.","risk_proxy_contract_title":"Proxy contract","risk_proxy_contract_body":"This contract is an Admin Upgradeability Proxy. The proxy contract means the contract owner can modify the function of the token and could possibly effect the price.There is possibly a way for the team to Rug or Scam. Please confirm the details with the project team before buying.","risk_no_proxy_title":"No proxy","risk_no_proxy_body":"There is no proxy in the contract. The proxy contract means contract owner can modify the function of the token and possibly effect the price.","risk_mint_function_title":"Mint function","risk_mint_function_body":"The contract may contain additional issuance functions, which could maybe generate a large number of tokens, resulting in significant fluctuations in token prices. It is recommended to confirm with the project team whether it complies with the token issuance instructions.","risk_no_mint_function_title":"No mint function","risk_no_mint_function_body":"Mint function is transparent or non-existent. Hidden mint functions may increase the amount of tokens in circulation and effect the price of the token.","risk_can_take_back_ownership_title":"Functions with retrievable ownership","risk_can_take_back_ownership_body":"If this function exists, it is possible for the project owner to regain ownership even after relinquishing it","risk_no_can_take_back_ownership_title":"No function found that retrieves ownership","risk_no_can_take_back_ownership_body":"If this function exists, it is possible for the project owner to regain ownership even after relinquishing it","risk_owner_change_balance_title":"Owner can change balance","risk_owner_change_balance_body":"The contract owner has the authority to modify the balance of tokens at other addresses, which may result in a loss of assets.","risk_owner_can_not_change_balance_title":"Owner can\'t change balance","risk_owner_can_not_change_balance_body":"The contract owner is not found to have the authority to modify the balance of tokens at other addresses.","risk_buy_tax_title":"Buy Tax: {{rate}}","risk_buy_tax_body":"Above 10% may be considered a high tax rate. More than 50% tax rate means may not be tradable.","risk_sell_tax_title":"Sell Tax: {{rate}}","risk_sell_tax_body":"Above 10% may be considered a high tax rate. More than 50% tax rate means may not be tradable.","risk_is_honeypot_title":"May the token is a honeypot.","risk_is_honeypot_body":"This token contract has a code that states that it cannot be sold. Maybe this is a honeypot.","risk_is_not_honeypot_title":"This does not appear to be a honeypot.","risk_is_not_honeypot_body":"We are not aware of any code that prevents the sale of tokens.","risk_transfer_pausable_title":"Functions that can suspend trading","risk_transfer_pausable_body":"If a suspendable code is included, the token maybe neither be bought nor sold (honeypot risk).","risk_no_code_transfer_pausable_title":"No codes found to suspend trading.","risk_no_code_transfer_pausable_body":"If a suspendable code is included, the token maybe neither be bought nor sold (honeypot risk).","risk_is_anti_whale_title":" Anti_whale(Limited number of transactions)","risk_is_anti_whale_body":"The number of token transactions is limited. The number of scam token transactions may be limited (honeypot risk).","risk_is_no_anti_whale_title":"No anti_whale(Unlimited number of transactions)","risk_is_no_anti_whale_body":"There is no limit to the number of token transactions. The number of scam token transactions may be limited (honeypot risk).","risk_slippage_modifiable_title":"Tax can be modified","risk_slippage_modifiable_body":" The contract owner may contain the authority to modify the transaction tax. If the transaction tax is increased to more than 49%, the tokens will not be able to be traded (honeypot risk).","risk_not_slippage_modifiable_title":"Tax cannot be modified","risk_not_slippage_modifiable_body":"The contract owner may not contain the authority to modify the transaction tax. If the transaction tax is increased to more than 49%, the tokens will not be able to be traded (honeypot risk).","risk_is_blacklisted_title":"Blacklist function","risk_is_blacklisted_body":"The blacklist function is included. Some addresses may not be able to trade normally (honeypot risk).","risk_not_is_blacklisted_title":"No blacklist","risk_not_is_blacklisted_body":"The blacklist function is not included. If there is a blacklist, some addresses may not be able to trade normally (honeypot risk).","risk_is_whitelisted_title":"Whitelist function","risk_is_whitelisted_body":"The whitelist function is included. Some addresses may not be able to trade normally (honeypot risk).","risk_not_is_whitelisted_title":"No whitelist","risk_not_is_whitelisted_body":"The whitelist function is not included. If there is a whitelist, some addresses may not be able to trade normally (honeypot risk).","risk_is_true_token_title":"True Token","risk_is_true_token_body":"This token is issued by its declared team. Some scams will create a well-known token with the same name to defraud their users of their assets.","risk_not_is_true_token_title":"Fake Token","risk_not_is_true_token_body":"This token is not issued by its declared team. Some scams will create a well-known token with the same name to defraud their users of their assets.","risk_is_airdrop_scam_title":"Airdrop Scam","risk_is_airdrop_scam_body":"You may lose your assets if giving approval to the website of this token.","risk_not_is_airdrop_scam_title":"No Airdrop Scam","risk_not_is_airdrop_scam_body":"This is not an airdrop scam. Many scams attract users through airdrops."}'); +;// CONCATENATED MODULE: ../plugins/GoPlusSecurity/src/locales/ja-JP.json +const ja_JP_namespaceObject = {}; +;// CONCATENATED MODULE: ../plugins/GoPlusSecurity/src/locales/ko-KR.json +const ko_KR_namespaceObject = {}; +;// CONCATENATED MODULE: ../plugins/GoPlusSecurity/src/locales/qya-AA.json +const qya_AA_namespaceObject = JSON.parse('{"__plugin_name":"crwdns16294:0crwdne16294:0","powered_by_go_plus":"crwdns14810:0crwdne14810:0","high_risk":"crwdns14812:0crwdne14812:0","low_risk":"crwdns14814:0crwdne14814:0","medium_risk":"crwdns14816:0crwdne14816:0","search":"crwdns14818:0crwdne14818:0","search_input_placeholder":"crwdns14820:0crwdne14820:0","token_info":"crwdns14822:0crwdne14822:0","more_details":"crwdns14824:0crwdne14824:0","security_detection":"crwdns14826:0crwdne14826:0","risky_factors":"crwdns14828:0{{quantity}}crwdne14828:0","attention_factors":"crwdns14830:0{{quantity}}crwdne14830:0","risky_factor":"crwdns14968:0{{quantity}}crwdne14968:0","attention_factor":"crwdns14970:0{{quantity}}crwdne14970:0","security_info_code_not_verify_title":"crwdns14832:0crwdne14832:0","security_info_code_not_verify_message":"crwdns14834:0crwdne14834:0","security_info_functions_that_can_suspend_trading_title":"crwdns14836:0crwdne14836:0","security_info_functions_that_can_suspend_trading_message":"crwdns14838:0crwdne14838:0","token_info_token_name":"crwdns14840:0crwdne14840:0","token_info_token_contract_address":"crwdns14842:0crwdne14842:0","token_info_contract_creator":"crwdns14844:0crwdne14844:0","token_info_contract_owner":"crwdns14846:0crwdne14846:0","token_info_total_supply":"crwdns14848:0crwdne14848:0","default_placeholder":"crwdns14850:0crwdne14850:0","not_found_tip_title":"crwdns14972:0crwdne14972:0","not_found_tip_network_error":"crwdns14974:0crwdne14974:0","not_found_tip_network_chain_correct":"crwdns14976:0crwdne14976:0","not_found_tip_network_address_not_cover":"crwdns14978:0crwdne14978:0","risk_safe_description":"crwdns14854:0crwdne14854:0","risk_contract_source_code_verified_title":"crwdns14856:0crwdne14856:0","risk_contract_source_code_verified_body":"crwdns14858:0crwdne14858:0","risk_contract_source_code_not_verified_title":"crwdns14860:0crwdne14860:0","risk_contract_source_code_not_verified_body":"crwdns14862:0crwdne14862:0","risk_proxy_contract_title":"crwdns14864:0crwdne14864:0","risk_proxy_contract_body":"crwdns14866:0crwdne14866:0","risk_no_proxy_title":"crwdns14868:0crwdne14868:0","risk_no_proxy_body":"crwdns14870:0crwdne14870:0","risk_mint_function_title":"crwdns14872:0crwdne14872:0","risk_mint_function_body":"crwdns14874:0crwdne14874:0","risk_no_mint_function_title":"crwdns14876:0crwdne14876:0","risk_no_mint_function_body":"crwdns14878:0crwdne14878:0","risk_can_take_back_ownership_title":"crwdns14880:0crwdne14880:0","risk_can_take_back_ownership_body":"crwdns14882:0crwdne14882:0","risk_no_can_take_back_ownership_title":"crwdns14884:0crwdne14884:0","risk_no_can_take_back_ownership_body":"crwdns14886:0crwdne14886:0","risk_owner_change_balance_title":"crwdns14888:0crwdne14888:0","risk_owner_change_balance_body":"crwdns14890:0crwdne14890:0","risk_owner_can_not_change_balance_title":"crwdns14892:0crwdne14892:0","risk_owner_can_not_change_balance_body":"crwdns14894:0crwdne14894:0","risk_buy_tax_title":"crwdns14896:0{{rate}}crwdne14896:0","risk_buy_tax_body":"crwdns14898:0crwdne14898:0","risk_sell_tax_title":"crwdns14900:0{{rate}}crwdne14900:0","risk_sell_tax_body":"crwdns14902:0crwdne14902:0","risk_is_honeypot_title":"crwdns14904:0crwdne14904:0","risk_is_honeypot_body":"crwdns14906:0crwdne14906:0","risk_is_not_honeypot_title":"crwdns14908:0crwdne14908:0","risk_is_not_honeypot_body":"crwdns14910:0crwdne14910:0","risk_transfer_pausable_title":"crwdns14912:0crwdne14912:0","risk_transfer_pausable_body":"crwdns14914:0crwdne14914:0","risk_no_code_transfer_pausable_title":"crwdns14916:0crwdne14916:0","risk_no_code_transfer_pausable_body":"crwdns14918:0crwdne14918:0","risk_is_anti_whale_title":"crwdns14920:0crwdne14920:0","risk_is_anti_whale_body":"crwdns14922:0crwdne14922:0","risk_is_no_anti_whale_title":"crwdns14924:0crwdne14924:0","risk_is_no_anti_whale_body":"crwdns14926:0crwdne14926:0","risk_slippage_modifiable_title":"crwdns14928:0crwdne14928:0","risk_slippage_modifiable_body":"crwdns14930:0crwdne14930:0","risk_not_slippage_modifiable_title":"crwdns14932:0crwdne14932:0","risk_not_slippage_modifiable_body":"crwdns14934:0crwdne14934:0","risk_is_blacklisted_title":"crwdns14936:0crwdne14936:0","risk_is_blacklisted_body":"crwdns14938:0crwdne14938:0","risk_not_is_blacklisted_title":"crwdns14940:0crwdne14940:0","risk_not_is_blacklisted_body":"crwdns14942:0crwdne14942:0","risk_is_whitelisted_title":"crwdns14944:0crwdne14944:0","risk_is_whitelisted_body":"crwdns14946:0crwdne14946:0","risk_not_is_whitelisted_title":"crwdns14948:0crwdne14948:0","risk_not_is_whitelisted_body":"crwdns14950:0crwdne14950:0","risk_is_true_token_title":"crwdns15004:0crwdne15004:0","risk_is_true_token_body":"crwdns15006:0crwdne15006:0","risk_not_is_true_token_title":"crwdns15008:0crwdne15008:0","risk_not_is_true_token_body":"crwdns15010:0crwdne15010:0","risk_is_airdrop_scam_title":"crwdns15012:0crwdne15012:0","risk_is_airdrop_scam_body":"crwdns15014:0crwdne15014:0","risk_not_is_airdrop_scam_title":"crwdns15016:0crwdne15016:0","risk_not_is_airdrop_scam_body":"crwdns15018:0crwdne15018:0"}'); +;// CONCATENATED MODULE: ../plugins/GoPlusSecurity/src/locales/zh-CN.json +const zh_CN_namespaceObject = {}; +;// CONCATENATED MODULE: ../plugins/GoPlusSecurity/src/locales/zh-TW.json +const zh_TW_namespaceObject = {}; +;// CONCATENATED MODULE: ../plugins/GoPlusSecurity/src/locales/languages.ts +// This file is auto generated. DO NOT EDIT +// Run `npx gulp sync-languages` to regenerate. +// Default fallback language in a family of languages are chosen by the alphabet order +// To overwrite this, please overwrite packages/scripts/src/locale-kit-next/index.ts + + + + + + +const languages = { + en: en_US_namespaceObject, + ja: ja_JP_namespaceObject, + ko: ko_KR_namespaceObject, + qy: qya_AA_namespaceObject, + 'zh-CN': zh_CN_namespaceObject, + zh: zh_TW_namespaceObject }; -/** - * ? Paper should be used as the main building block in the page - * ? Paper should be 12px - * ? Dialog should be 12px - * ? Input (Button, TextField and Select) should be 4px(small) 6px(medium) and 8px(large) - */ const BorderRadius = { - components: { - MuiPaper: { - styleOverrides: { - rounded: { - borderRadius: 12 - } - } - }, - MuiDialog: { - styleOverrides: { - root: { - borderRadius: 12 - } - } +// @ts-ignore +if (false) {} + +;// CONCATENATED MODULE: ../plugins/GoPlusSecurity/src/base.ts + + +const base = { + ID: constants/* PLUGIN_ID */.Uu, + name: { + fallback: constants/* PLUGIN_NAME */.EW + }, + description: { + fallback: constants/* PLUGIN_DESCRIPTION */.PP + }, + publisher: { + name: { + fallback: 'Mask Network' }, - MuiButton: { - styleOverrides: { - sizeSmall: { - borderRadius: 4 - }, - // Medium has no style class - root: { - borderRadius: 6 - }, - sizeLarge: { - borderRadius: 8 - } - } + link: 'https://mask.io/' + }, + enableRequirement: { + architecture: { + app: false, + web: true }, - MuiInputBase: { - styleOverrides: { - sizeSmall: { - borderRadius: 4 - }, - // Medium has no style class - root: { - borderRadius: 6 - } - } + networks: { + type: 'opt-out', + networks: {} }, - MuiFilledInput: { - styleOverrides: { - sizeSmall: { - borderTopLeftRadius: 4, - borderTopRightRadius: 4, - borderBottomLeftRadius: 4, - borderBottomRightRadius: 4 - }, - // Medium has no style class - root: { - borderTopLeftRadius: 6, - borderTopRightRadius: 6, - borderBottomLeftRadius: 6, - borderBottomRightRadius: 6 - } - } - } - } + target: 'stable' + }, + i18n: languages }; -/** - * ? No auto text-transform will be applied in this theme - */ const NoAutoTextTransform = { - components: { - MuiButton: { - styleOverrides: { - root: { - textTransform: 'initial' - } - } - }, - MuiTab: { - styleOverrides: { - root: { - textTransform: 'initial' - } - } - } - } + + +/***/ }), + +/***/ 67606: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "EW": () => (/* binding */ PLUGIN_NAME), +/* harmony export */ "JS": () => (/* binding */ PLUGIN_OFFICIAL_WEBSITE), +/* harmony export */ "PP": () => (/* binding */ PLUGIN_DESCRIPTION), +/* harmony export */ "Uu": () => (/* binding */ PLUGIN_ID) +/* harmony export */ }); +/* harmony import */ var _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(70226); + +const PLUGIN_ID = _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__/* .PluginId.GoPlusSecurity */ .je.GoPlusSecurity; +const PLUGIN_DESCRIPTION = 'Go+ Security Engine'; +const PLUGIN_NAME = 'GoPlusSecurity'; +const PLUGIN_OFFICIAL_WEBSITE = 'https://gopluslabs.io'; + + +/***/ }), + +/***/ 24829: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; + +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "u": () => (/* binding */ base) +}); + +;// CONCATENATED MODULE: ../plugins/RSS3/src/locales/en-US.json +const en_US_namespaceObject = JSON.parse('{"inactive_project":"Inactive Project","no_activity_time":"No activity time","attended":"attended","no_data":"No data","total_grants":"Total {{count}} Grants","contribution":"Contribution","contribution_other":"Contributions"}'); +;// CONCATENATED MODULE: ../plugins/RSS3/src/locales/ja-JP.json +const ja_JP_namespaceObject = {}; +;// CONCATENATED MODULE: ../plugins/RSS3/src/locales/ko-KR.json +const ko_KR_namespaceObject = {}; +;// CONCATENATED MODULE: ../plugins/RSS3/src/locales/qya-AA.json +const qya_AA_namespaceObject = JSON.parse('{"inactive_project":"crwdns10775:0crwdne10775:0","no_activity_time":"crwdns10777:0crwdne10777:0","attended":"crwdns10779:0crwdne10779:0","no_data":"crwdns14472:0crwdne14472:0","total_grants":"crwdns14474:0{{count}}crwdne14474:0","contribution":"crwdns14618:0crwdne14618:0","contribution_other":"crwdns14620:0crwdne14620:0"}'); +;// CONCATENATED MODULE: ../plugins/RSS3/src/locales/zh-CN.json +const zh_CN_namespaceObject = {"attended":"已参加"}; +;// CONCATENATED MODULE: ../plugins/RSS3/src/locales/zh-TW.json +const zh_TW_namespaceObject = {}; +;// CONCATENATED MODULE: ../plugins/RSS3/src/locales/languages.ts +// This file is auto generated. DO NOT EDIT +// Run `npx gulp sync-languages` to regenerate. +// Default fallback language in a family of languages are chosen by the alphabet order +// To overwrite this, please overwrite packages/scripts/src/locale-kit-next/index.ts + + + + + + +const languages = { + en: en_US_namespaceObject, + ja: ja_JP_namespaceObject, + ko: ko_KR_namespaceObject, + qy: qya_AA_namespaceObject, + 'zh-CN': zh_CN_namespaceObject, + zh: zh_TW_namespaceObject }; -/** - * ? TextField, Select use "outlined" as default variant - */ const DefaultVariants = { - components: { - MuiButton: { - defaultProps: { - variant: 'contained' - } +// @ts-ignore +if (false) {} + +// EXTERNAL MODULE: ../plugins/RSS3/src/constants.ts +var constants = __webpack_require__(35837); +;// CONCATENATED MODULE: ../plugins/RSS3/src/base.ts + + +const base = { + ID: constants/* PLUGIN_ID */.Uu, + name: { + fallback: constants/* PLUGIN_NAME */.EW + }, + description: { + fallback: constants/* PLUGIN_DESCRIPTION */.PP + }, + publisher: { + name: { + fallback: constants/* PLUGIN_NAME */.EW }, - MuiTextField: { - defaultProps: {} - } - } + link: 'https://rss3.bio/' + }, + enableRequirement: { + architecture: { + app: false, + web: true + }, + networks: { + type: 'opt-out', + networks: {} + }, + target: 'stable' + }, + experimentalMark: true, + i18n: languages }; /***/ }), -/***/ 84865: +/***/ 35837: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "EW": () => (/* binding */ PLUGIN_NAME), +/* harmony export */ "PP": () => (/* binding */ PLUGIN_DESCRIPTION), +/* harmony export */ "Uu": () => (/* binding */ PLUGIN_ID), +/* harmony export */ "g$": () => (/* binding */ RSS3_DEFAULT_IMAGE) +/* harmony export */ }); +/* harmony import */ var _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(70226); +/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(70854); + + +const PLUGIN_ID = _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__/* .PluginId.RSS3 */ .je.RSS3; +const PLUGIN_DESCRIPTION = 'Derived from the best out of RSS, RSS3 is an open protocol designed for all our cyber existence in the era of Web 3.0.'; +const PLUGIN_NAME = 'RSS3'; +/* cspell:disable-next-line */ const RSS3_DEFAULT_IMAGE = (0,_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .resolveIPFSLink */ .r5)('QmVFq9qimnudPcs6QkQv8ZVEsvwD3aqETHWtS5yXgdbYY5'); + + +/***/ }), + +/***/ 25064: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -// ESM COMPAT FLAG -__webpack_require__.r(__webpack_exports__); // EXPORTS __webpack_require__.d(__webpack_exports__, { - "BaseLine": () => (/* binding */ BaseLine), - "Button": () => (/* binding */ Button), - "Card": () => (/* binding */ Card), - "Dialog": () => (/* binding */ Dialog), - "Grid": () => (/* binding */ Grid), - "Link": () => (/* binding */ Link), - "List": () => (/* binding */ List), - "Paper": () => (/* binding */ Paper), - "Tabs": () => (/* binding */ Tabs), - "TextField": () => (/* binding */ TextField), - "Typography": () => (/* binding */ Typography) + "u": () => (/* binding */ base) }); -;// CONCATENATED MODULE: ../theme/src/CSSVariables/createVars.ts -/** @internal */ function css_var(unique_name, keys) { - for(const k in keys)keys[k] = createVar(k); - return keys; - function createVar(name) { - const val = '--' + unique_name + '-' + name; - function use(defaultValue) { - return `var(${val}${typeof defaultValue === 'undefined' ? '' : ', ' + defaultValue})`; - } - use.toString = ()=>val - ; - return use; - } -} +// EXTERNAL MODULE: ../web3-shared/solana/index.ts + 10 modules +var solana = __webpack_require__(7670); +;// CONCATENATED MODULE: ../plugins/Solana/src/locales/en-US.json +const en_US_namespaceObject = JSON.parse('{"button_log_in":"Log In","button_log_out":"Log Out","button_sign_up":"Sign Up","card_state_text_no_profile":"No Profile"}'); +;// CONCATENATED MODULE: ../plugins/Solana/src/locales/ja-JP.json +const ja_JP_namespaceObject = {}; +;// CONCATENATED MODULE: ../plugins/Solana/src/locales/ko-KR.json +const ko_KR_namespaceObject = {}; +;// CONCATENATED MODULE: ../plugins/Solana/src/locales/qya-AA.json +const qya_AA_namespaceObject = JSON.parse('{"button_log_in":"crwdns11879:0crwdne11879:0","button_log_out":"crwdns11881:0crwdne11881:0","button_sign_up":"crwdns11883:0crwdne11883:0","card_state_text_no_profile":"crwdns11885:0crwdne11885:0"}'); +;// CONCATENATED MODULE: ../plugins/Solana/src/locales/zh-CN.json +const zh_CN_namespaceObject = JSON.parse('{"button_log_in":"登录","button_log_out":"登出","button_sign_up":"注册","card_state_text_no_profile":"暂无个人资料"}'); +;// CONCATENATED MODULE: ../plugins/Solana/src/locales/zh-TW.json +const zh_TW_namespaceObject = {}; +;// CONCATENATED MODULE: ../plugins/Solana/src/locales/languages.ts +// This file is auto generated. DO NOT EDIT +// Run `npx gulp sync-languages` to regenerate. +// Default fallback language in a family of languages are chosen by the alphabet order +// To overwrite this, please overwrite packages/scripts/src/locale-kit-next/index.ts -;// CONCATENATED MODULE: ../theme/src/Theme/component-changes.ts -const BaseLine = (mode, colors)=>({ - components: { - MuiCssBaseline: { - styleOverrides: { - body: { - scrollbarColor: 'red', - '&::-webkit-scrollbar, & *::-webkit-scrollbar': { - width: '10px' - }, - '&::-webkit-scrollbar-thumb, & *::-webkit-scrollbar-thumb': { - borderRadius: '6px', - border: '2px solid rgba(0, 0, 0, 0)', - backgroundColor: mode === 'dark' ? 'rgba(250, 250, 250, 0.2)' : 'rgba(0, 0, 0, 0.2)', - backgroundClip: 'padding-box' - } - } - } - } - } - }) -; -const Grid = { - components: { - MuiGrid: {} - } + + + + +const languages = { + en: en_US_namespaceObject, + ja: ja_JP_namespaceObject, + ko: ko_KR_namespaceObject, + qy: qya_AA_namespaceObject, + 'zh-CN': zh_CN_namespaceObject, + zh: zh_TW_namespaceObject }; -const component_changes_button = css_var('m-button', { - main: 1, - contrast: 1, - light: 1 -}); -const Button = (mode, colors)=>({ - components: { - MuiButton: { - defaultProps: { - disableElevation: true - }, - styleOverrides: { - root: { - opacity: 1, - fontWeight: 400, - transitionProperty: 'background-color, color, box-shadow, opacity', - '&:hover': { - boxShadow: '0 0 5px ' + component_changes_button.main() - }, - '&[disabled]': { - opacity: 0.5 - } - } - }, - variants: [ - // new variant for rounded button - { - props: { - variant: 'rounded' - }, - style: { - borderRadius: '24px', - backgroundColor: component_changes_button.main(), - color: component_changes_button.contrast(), - '&:hover': { - backgroundColor: component_changes_button.main() - }, - '&[disabled]': { - backgroundColor: component_changes_button.main(), - color: component_changes_button.contrast() - } - } - }, - { - props: { - variant: 'contained' - }, - style: { - backgroundColor: component_changes_button.main(), - color: component_changes_button.contrast(), - '&:hover': { - backgroundColor: component_changes_button.main() - }, - '&[disabled]': { - backgroundColor: component_changes_button.main(), - color: component_changes_button.contrast() - } - } - }, - { - props: { - variant: 'outlined' - }, - style: { - borderColor: component_changes_button.light(), - color: component_changes_button.main(), - '&:hover': { - borderColor: component_changes_button.light() - }, - '&[disabled]': { - borderColor: component_changes_button.light(), - color: component_changes_button.main() - } - } - }, - { - props: { - variant: 'text' - }, - style: { - '&:hover': { - boxShadow: 'unset' - } - } - }, - { - props: { - color: 'primary' - }, - style: { - [component_changes_button.main]: colors.primary, - [component_changes_button.contrast]: colors.primaryContrastText - } - }, - { - props: { - color: 'secondary' - }, - style: { - [component_changes_button.main]: colors.secondary, - [component_changes_button.contrast]: colors.secondaryContrastText - } - }, - { - props: { - color: 'secondary', - variant: 'outlined' - }, - style: { - [component_changes_button.light]: colors.secondary, - [component_changes_button.main]: colors.primary - } - }, - { - props: { - color: 'error' - }, - style: { - [component_changes_button.main]: colors.redMain, - [component_changes_button.contrast]: colors.primaryContrastText - } - }, - { - props: { - color: 'warning' - }, - style: { - [component_changes_button.main]: colors.warning, - [component_changes_button.contrast]: colors.primaryContrastText - } - }, - { - props: { - size: 'small' - }, - style: { - height: '28px', - fontSize: '12px' - } - }, - { - props: { - size: 'medium' - }, - style: { - height: '38px', - fontSize: '14px' - } - }, - { - props: { - size: 'large' - }, - style: { - height: '48px', - fontSize: '16px' - } - }, - ] - } - } - }) -; -const Dialog = (mode, colors)=>({ - components: { - MuiDialog: { - styleOverrides: { - root: { - '& .dashboard-style': { - backgroundColor: mode === 'dark' ? colors.primaryBackground : colors.secondaryBackground - }, - // workaround for common component be used in dashboard and twitter - '& .dashboard.token-list': { - padding: 10 - }, - '& .dashboard.token-list-symbol': { - color: mode === 'dark' ? 'rgba(255, 255, 255, 0.8)' : '#7B8192', - fontSize: 12 - } - }, - paper: { - minHeight: 200, - minWidth: 440, - background: colors.mainBackground - } - }, - defaultProps: { - BackdropProps: { - sx: { - backdropFilter: 'blur(8px)', - backgroundColor: 'rgba(0, 0, 0, 0.3)' - } - } - } - }, - MuiDialogTitle: { - styleOverrides: { - root: { - backgroundColor: colors.mainBackground, - '&.dashboard-dialog-title-hook': { - backgroundColor: colors.mainBackground, - display: 'flex', - flexDirection: 'row-reverse', - alignItems: 'center', - p: { - width: '100%', - display: 'inline-flex', - justifyContent: 'start' - } - } - } - } - }, - MuiDialogContent: { - styleOverrides: { - root: { - backgroundColor: colors.mainBackground - } - } - }, - MuiDialogActions: { - styleOverrides: { - root: { - justifyContent: 'center', - paddingBottom: 24, - '&>:not(:first-of-type)': { - marginLeft: 18 - }, - backgroundColor: colors.mainBackground - } - } - } - } - }) -; -const TextField = { - components: { - MuiFilledInput: { - // alternative way, but less beauty - // defaultProps: { disableUnderline: false }, - styleOverrides: { - underline: { - '&:before': { - display: 'none' - } - } - } +// @ts-ignore +if (false) {} + +// EXTERNAL MODULE: ../plugins/Solana/src/constants.ts +var constants = __webpack_require__(41040); +;// CONCATENATED MODULE: ../plugins/Solana/src/base.ts + + + +const base = { + ID: constants/* PLUGIN_ID */.Uu, + name: { + fallback: constants/* PLUGIN_NAME */.EW + }, + description: { + fallback: constants/* PLUGIN_DESCRIPTION */.PP + }, + publisher: { + name: { + fallback: 'Mask Network' }, - MuiFormHelperText: { - styleOverrides: { - contained: { - paddingLeft: 14, - paddingRight: 14, - marginLeft: 0, - marginRight: 0, - borderLeft: '2px solid' - }, - root: {} - } - } - } + link: 'https://mask.io/' + }, + enableRequirement: { + architecture: { + app: true, + web: true + }, + networks: { + type: 'opt-out', + networks: {} + }, + target: 'stable' + }, + i18n: languages, + declareWeb3Networks: solana/* NETWORK_DESCRIPTORS */.qQ, + declareWeb3Providers: solana/* PROVIDER_DESCRIPTORS */.zM }; -const List = (mode, colors)=>({ - components: { - MuiListItem: { - styleOverrides: { - button: { - '&:hover': mode === 'light' ? { - backgroundColor: '#f5fcff' - } : {} - } - } - } - } - }) -; -const Card = (mode, colors)=>({ - components: { - MuiCard: { - styleOverrides: {}, - variants: [ - { - props: { - variant: 'outlined' - }, - style: { - border: `1px solid ${colors.lineLight}` - } - }, - { - props: { - variant: 'background' - }, - style: { - padding: 8, - border: 'none', - background: mode === 'dark' ? colors.lightBackground : colors.normalBackground - } - }, - ] - } - } - }) -; -const Paper = (mode, colors)=>({ - components: { - MuiPaper: { - styleOverrides: {}, - variants: [ - { - props: { - variant: 'outlined' - }, - style: { - borderRadius: 12 - } - }, - { - props: { - variant: 'rounded' - }, - style: { - borderRadius: 16, - backgroundColor: colors.primaryBackground - } - }, - ] - } - } - }) -; -const Tabs = ()=>({ - components: { - MuiTab: { - styleOverrides: { - root: { - // up-sm - '@media screen and (min-width: 600px)': { - minWidth: 160 - } - } - } - } - } - }) -; -const Link = ()=>({ - components: { - MuiLink: { - defaultProps: { - underline: 'hover' - } - } - } - }) -; -const Typography = (mode, colors)=>({ - components: { - MuiTypography: { - styleOverrides: {}, - variants: [ - // UI component: h3 - { - props: { - variant: 'h3' - }, - style: { - fontSize: 24, - lineHeight: '30px', - color: colors.textPrimary - } - }, - // UI component: h4 - { - props: { - variant: 'h4' - }, - style: { - fontSize: 18, - lineHeight: '24px', - fontStyle: 'normal', - color: colors.textPrimary - } - }, - // UI component: h5 - { - props: { - variant: 'h5' - }, - style: { - fontSize: 16, - lineHeight: '22px', - color: colors.textPrimary - } - }, - // UI component: P4 - { - props: { - variant: 'body2', - paragraph: true - }, - style: { - fontSize: 14, - color: colors.textSecondary - } - }, - // UI component: P12 - { - props: { - variant: 'body2', - component: 'span' - }, - style: { - fontSize: 12, - color: colors.textSecondary, - lineHeight: '16px' - } - }, - ] - } - } - }) -; /***/ }), -/***/ 22993: +/***/ 41040: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "B": () => (/* binding */ useStylesExtends), -/* harmony export */ "z": () => (/* binding */ mergeClasses) +/* harmony export */ "EW": () => (/* binding */ PLUGIN_NAME), +/* harmony export */ "PP": () => (/* binding */ PLUGIN_DESCRIPTION), +/* harmony export */ "UX": () => (/* binding */ SOL_ADDRESS), +/* harmony export */ "Uu": () => (/* binding */ PLUGIN_ID), +/* harmony export */ "pU": () => (/* binding */ ENDPOINT_KEY), +/* harmony export */ "qR": () => (/* binding */ NETWORK_ENDPOINTS), +/* harmony export */ "xP": () => (/* binding */ SOL_TLD_AUTHORITY) /* harmony export */ }); -// Priority: classes from props > configHooks > defaultStyles -function useStylesExtends(defaultStyles, props, useConfigHooks) { - // Note: this is a React hooks - const configOverwrite = useConfigHooks?.() || { - classes: {} - }; - return mergeClasses(defaultStyles.classes, configOverwrite.classes, props.classes); -} -function mergeClasses(...args) { - args = args.filter(Boolean); - if (args.length === 1) return args[0]; - const result = {}; - for (const current of args){ - if (!current) continue; - for(const key in current){ - if (key === '__proto__') continue; - if (key in result) result[key] = result[key] + ' ' + current[key]; - else result[key] = current[key]; - } - } - return result; -} +/* unused harmony export PLUGIN_META_KEY */ +/* harmony import */ var _masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(67938); +/* harmony import */ var _masknet_web3_shared_solana__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7670); +/* harmony import */ var _solana_web3_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(59493); + + + +const PLUGIN_META_KEY = _masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .NetworkPluginID.PLUGIN_SOLANA */ .FF.PLUGIN_SOLANA; +const PLUGIN_ID = _masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .NetworkPluginID.PLUGIN_SOLANA */ .FF.PLUGIN_SOLANA; +const PLUGIN_NAME = 'Solana Chain'; +const PLUGIN_DESCRIPTION = ''; +const NETWORK_ENDPOINTS = { + [_masknet_web3_shared_solana__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Mainnet */ .a_.Mainnet]: 'https://solana--mainnet.datahub.figment.io/apikey/30d4290fe1f4fcf371a9e27c513d099f', + [_masknet_web3_shared_solana__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Testnet */ .a_.Testnet]: 'https://api.testnet.solana.com', + [_masknet_web3_shared_solana__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Devnet */ .a_.Devnet]: 'https://api.devnet.solana.com' +}; +const ENDPOINT_KEY = 'mainnet-beta'; +const SOL_TLD_AUTHORITY = new _solana_web3_js__WEBPACK_IMPORTED_MODULE_2__.PublicKey('58PwtjSDuFHuUkYjH9BYnnQKHfwo9reZhC2zMJv9JPkx'); +const SOL_ADDRESS = (0,_masknet_web3_shared_solana__WEBPACK_IMPORTED_MODULE_1__/* .getTokenConstants */ .aV)(_masknet_web3_shared_solana__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Mainnet */ .a_.Mainnet).SOL_ADDRESS; /***/ }), -/***/ 88904: +/***/ 24003: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "EW": () => (/* binding */ PLUGIN_NAME), +/* harmony export */ "IX": () => (/* binding */ MAX_DERIVE_COUNT), +/* harmony export */ "PP": () => (/* binding */ PLUGIN_DESCRIPTION), +/* harmony export */ "UB": () => (/* binding */ HD_PATH_WITHOUT_INDEX_ETHEREUM), +/* harmony export */ "Uu": () => (/* binding */ PLUGIN_ID) +/* harmony export */ }); +/* unused harmony export UPDATE_CHAIN_STATE_DELAY */ +/* harmony import */ var _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(70226); -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - "A": () => (/* reexport */ decodeTypedMessageFromDocument), - "F": () => (/* reexport */ encodeTypedMessageToDocument) -}); +// #region plugin definitions +const PLUGIN_ID = _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__/* .PluginId.Wallet */ .je.Wallet; +const PLUGIN_NAME = 'Wallet'; +const PLUGIN_DESCRIPTION = 'Mask Wallet'; +// #endregion +// Private key at m/purpose'/coin_type'/account'/change +const HD_PATH_WITHOUT_INDEX_ETHEREUM = "m/44'/60'/0'/0"; +const MAX_DERIVE_COUNT = 99; +const UPDATE_CHAIN_STATE_DELAY = (/* unused pure expression or super */ null && (30 /* seconds */ * 1000)) /* milliseconds */ ; -// EXTERNAL MODULE: ../../node_modules/.pnpm/@msgpack+msgpack@2.7.2/node_modules/@msgpack/msgpack/dist.es5+esm/decode.mjs + 3 modules -var decode = __webpack_require__(92415); -// EXTERNAL MODULE: ../../node_modules/.pnpm/ts-results@3.3.0/node_modules/ts-results/esm/index.js + 3 modules -var esm = __webpack_require__(48160); -// EXTERNAL MODULE: ../typed-message/base/core/index.ts + 2 modules -var core = __webpack_require__(90323); -;// CONCATENATED MODULE: ../typed-message/base/binary-encode/type.ts -var TypedMessageBinaryEncodingTypeEnum; -(function(TypedMessageBinaryEncodingTypeEnum) { - TypedMessageBinaryEncodingTypeEnum[TypedMessageBinaryEncodingTypeEnum["Tuple"] = 0] = "Tuple"; - TypedMessageBinaryEncodingTypeEnum[TypedMessageBinaryEncodingTypeEnum["Text"] = 1] = "Text"; -})(TypedMessageBinaryEncodingTypeEnum || (TypedMessageBinaryEncodingTypeEnum = {})); -;// CONCATENATED MODULE: ../typed-message/base/binary-encode/decode.ts +/***/ }), +/***/ 10503: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "IX": () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_2__.IX), +/* harmony export */ "R$": () => (/* reexport safe */ _messages__WEBPACK_IMPORTED_MODULE_1__.R), +/* harmony export */ "UB": () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_2__.UB), +/* harmony export */ "Uu": () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_2__.Uu), +/* harmony export */ "ue": () => (/* reexport safe */ _base__WEBPACK_IMPORTED_MODULE_0__.u) +/* harmony export */ }); +/* harmony import */ var _base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(68033); +/* harmony import */ var _messages__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(34849); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(24003); +// Do not export JSX from this file. It might break some runtime that does not have DOM. -const HEAD = '[@masknet/typed-message] '; -function decodeTypedMessageFromDocument(bin) { - return esm/* Result.wrap */.x4.wrap(()=>{ - const doc = (0,decode/* decode */.Jx)(bin); - if (!Array.isArray(doc)) throw new Error(`${HEAD}Invalid document`); - const [docVer, message] = doc; - if (typeof docVer !== 'number') throw new Error(`${HEAD}Invalid document`); - if (docVer !== 0) throw new Error(`${HEAD}Unknown document version`); - const result = decodeTypedMessage(message); - fixU8Array(result); - return result; - }); -} -function decodeTypedMessage(tm) { - const [type] = tm; - if (typeof type !== 'string' && typeof type !== 'number') throw new TypeError(`${HEAD}Invalid TypedMessage`); - if (type === TypedMessageBinaryEncodingTypeEnum.Text) return decodeTypedMessageText(tm); - if (type === TypedMessageBinaryEncodingTypeEnum.Tuple) return decodeTypedMessageTuple(tm); - return (0,core/* makeTypedMessageUnknown */.mv)(tm); -} -function decodeTypedMessageText([, version, meta, text, format]) { - assertNumber(version); - assertString(text); - return (0,core/* makeTypedMessageText */.P)(text, decodeMetadata(meta)); -} -function decodeTypedMessageTuple([, version, meta, items]) { - assertNumber(version); - if (!Array.isArray(items)) throw new TypeError(`${HEAD}Invalid TypedMessageTuple`); - return (0,core/* makeTypedMessageTuple */.Zw)(items.map(decodeTypedMessage), decodeMetadata(meta)); -} -function decodeMetadata(meta) { - if (meta === null) return undefined; - if (typeof meta !== 'object') throw new TypeError(`${HEAD}Invalid TypedMessage`); - if (Object.getPrototypeOf(meta) !== Object.prototype) throw new TypeError(`${HEAD}Invalid TypedMessage`); - return meta; -} -function assertNumber(x) { - if (typeof x !== 'number') throw new TypeError(`${HEAD}Invalid TypedMessage`); -} -function assertString(x) { - if (typeof x !== 'string') throw new TypeError(`${HEAD}Invalid TypedMessage`); -} -// Detach Uint8Array from it's underlying buffer -function fixU8Array(obj) { - // for Array and object - if (typeof obj === 'object' && obj !== null) { - for(const key in obj){ - const val = obj[key]; - if (val instanceof Uint8Array) obj[key] = val.slice(); - else fixU8Array(val); - } - } -} -// EXTERNAL MODULE: ../../node_modules/.pnpm/@msgpack+msgpack@2.7.2/node_modules/@msgpack/msgpack/dist.es5+esm/encode.mjs + 1 modules -var encode = __webpack_require__(82151); -;// CONCATENATED MODULE: ../typed-message/base/binary-encode/encode.ts +/***/ }), -const encode_HEAD = '[@masknet/typed-message] '; -function encodeTypedMessageToDocument(tm) { - const doc = [ - 0, - encodeTypedMessage(tm) - ]; - return (0,encode/* encode */.c)(doc); -} -function encodeTypedMessage(tm) { - if (tm.serializable === false) { - if (tm.alt) return encodeTypedMessage(tm.alt); - throw new TypeError(`${encode_HEAD}TypedMessage ${tm.type} does not support serialization.`); - } - if ((0,core/* isTypedMessageText */.Rz)(tm)) return encodeTypedMessageText(tm); - if ((0,core/* isTypedMessageTupleSerializable */.qT)(tm)) return encodeTypedMessageTuple(tm); - throw new TypeError(`${encode_HEAD}Unsupported TypedMessage ${tm.type} to be serialized.`); -} -function encodeTypedMessageText(tm) { - // TODO: TextFormat - return [ - TypedMessageBinaryEncodingTypeEnum.Text, - tm.version, - encodeMeta(tm), - tm.content - ]; -} -function encodeTypedMessageTuple(tm) { - return [ - TypedMessageBinaryEncodingTypeEnum.Tuple, - tm.version, - encodeMeta(tm), - tm.items.map(encodeTypedMessage) - ]; -} -function encodeMeta(tm) { - if (!tm.meta) return null; - const record = { - __proto__: null - }; - for (const [key, val] of tm.meta){ - if (typeof key !== 'string') continue; - if (typeof val === 'undefined') continue; - try { - record[key] = collectValue(val); - } catch (err) { - console.warn(`${encode_HEAD}key ${key} is dropped due to the error`, err); - } - } - return record; -} -function collectValue(val) { - try { - const type = typeof val; - if (val === undefined) { - console.warn(`${encode_HEAD}undefined converted to null.`); - return null; - } - if (type === 'number' || val === null || type === 'boolean' || type === 'string') return val; - if (type === 'bigint' || type === 'function' || type === 'symbol') { - throw new TypeError(`${encode_HEAD}Unsupported type ${type}`); - } - if (val instanceof Uint8Array) return new Uint8Array(val); - if (val instanceof ArrayBuffer) { - throw new TypeError(`${encode_HEAD}ArrayBuffer must be Uint8Array.`); - } - if (Array.isArray(val)) return Array.from(val).map(collectValue); - const proto = Object.getPrototypeOf(val); - if (proto !== Object.prototype && proto !== null) { - throw new TypeError(`${encode_HEAD}unsupported value with a non trivial prototype.`); - } - const result = {}; - for(const key in val){ - if (typeof key !== 'string') throw new TypeError(`${encode_HEAD}Unsupported type symbol.`); - const v = val[key]; - result[key] = collectValue(v); - } - return result; - } catch (err) { - console.warn(encode_HEAD, 'When converting value', val, ', an error occurred', err); - throw err; - } -} - -;// CONCATENATED MODULE: ../typed-message/base/binary-encode/index.ts - - - - -/***/ }), - -/***/ 54552: +/***/ 43672: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "W": () => (/* binding */ makeTypedMessageEmpty), -/* harmony export */ "Y": () => (/* binding */ isTypedMessageEmpty) -/* harmony export */ }); -/* harmony import */ var _utils_internal_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(76395); - -const isTypedMessageEmpty = (0,_utils_internal_js__WEBPACK_IMPORTED_MODULE_0__/* .createIsType */ .uO)('empty'); -const empty = { - type: 'empty', - serializable: true, - version: 1, - meta: undefined -}; -Object.setPrototypeOf(empty, null); -Object.freeze(empty); -function makeTypedMessageEmpty() { - return empty; -} +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "M": () => (/* binding */ languages) +}); -/***/ }), - -/***/ 88083: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "K": () => (/* binding */ isTypedMessagePromise), -/* harmony export */ "N": () => (/* binding */ makeTypedMessagePromise) -/* harmony export */ }); -/* harmony import */ var _utils_internal_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(76395); +;// CONCATENATED MODULE: ../plugins/Wallet/src/locales/en-US.json +const en_US_namespaceObject = {}; +;// CONCATENATED MODULE: ../plugins/Wallet/src/locales/ja-JP.json +const ja_JP_namespaceObject = {}; +;// CONCATENATED MODULE: ../plugins/Wallet/src/locales/ko-KR.json +const ko_KR_namespaceObject = {}; +;// CONCATENATED MODULE: ../plugins/Wallet/src/locales/qya-AA.json +const qya_AA_namespaceObject = {}; +;// CONCATENATED MODULE: ../plugins/Wallet/src/locales/zh-CN.json +const zh_CN_namespaceObject = {}; +;// CONCATENATED MODULE: ../plugins/Wallet/src/locales/zh-TW.json +const zh_TW_namespaceObject = {}; +;// CONCATENATED MODULE: ../plugins/Wallet/src/locales/languages.ts +// This file is auto generated. DO NOT EDIT +// Run `npx gulp sync-languages` to regenerate. +// Default fallback language in a family of languages are chosen by the alphabet order +// To overwrite this, please overwrite packages/scripts/src/locale-kit-next/index.ts -const isTypedMessagePromise = (0,_utils_internal_js__WEBPACK_IMPORTED_MODULE_0__/* .createIsType */ .uO)('promise'); -function makeTypedMessagePromise(promise, alt) { - const x = { - type: 'promise', - serializable: false, - promise: promise.then((y)=>x.promise.value = y - ), - alt, - meta: undefined - }; - return x; -} -/***/ }), -/***/ 13821: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -"use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "P": () => (/* binding */ makeTypedMessageText), -/* harmony export */ "Rz": () => (/* binding */ isTypedMessageText) -/* harmony export */ }); -/* unused harmony export isTypedMessageTextV1 */ -/* harmony import */ var _utils_internal_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(76395); -const isTypedMessageTextV1 = (0,_utils_internal_js__WEBPACK_IMPORTED_MODULE_0__/* .createIsType */ .uO)('text', 1); -const isTypedMessageText = isTypedMessageTextV1; -function makeTypedMessageText(text, meta) { - return { - type: 'text', - version: 1, - serializable: true, - content: text, - meta - }; -} +const languages = { + en: en_US_namespaceObject, + ja: ja_JP_namespaceObject, + ko: ko_KR_namespaceObject, + qy: qya_AA_namespaceObject, + 'zh-CN': zh_CN_namespaceObject, + zh: zh_TW_namespaceObject +}; +// @ts-ignore +if (false) {} /***/ }), -/***/ 76628: +/***/ 7965: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "m": () => (/* binding */ makeTypedMessageUnknown), -/* harmony export */ "q": () => (/* binding */ isTypedMessageUnknown) -/* harmony export */ }); -/* harmony import */ var _utils_internal_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(76395); - -const isTypedMessageUnknown = (0,_utils_internal_js__WEBPACK_IMPORTED_MODULE_0__/* .createIsType */ .uO)('unknown'); -function makeTypedMessageUnknown(raw) { - return { - type: 'unknown', - serializable: false, - meta: undefined, - raw - }; -} +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "u": () => (/* binding */ base) +}); -/***/ }), +// EXTERNAL MODULE: ../plugins/example/src/constants.ts +var constants = __webpack_require__(7292); +;// CONCATENATED MODULE: ../plugins/example/src/locales/en-US.json +const en_US_namespaceObject = JSON.parse('{"name":"Example Plugin","__entry__":"🤔 Example"}'); +;// CONCATENATED MODULE: ../plugins/example/src/locales/languages.ts +// This file is auto generated. DO NOT EDIT +// Run `npx gulp sync-languages` to regenerate. +// Default fallback language in a family of languages are chosen by the alphabet order +// To overwrite this, please overwrite packages/scripts/src/locale-kit-next/index.ts -/***/ 68496: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { +const languages = { + en: en_US_namespaceObject +}; +// @ts-ignore +if (false) {} -"use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "H": () => (/* binding */ encodeTypedMessageV38Format), -/* harmony export */ "W": () => (/* binding */ decodeTypedMessageV38ToV40Format) -/* harmony export */ }); -/* harmony import */ var ts_results__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(48160); -/* harmony import */ var _core_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(90323); +;// CONCATENATED MODULE: ../plugins/example/src/base.ts -function encodeTypedMessageV38Format(message) { - const encoder = new TextEncoder(); - if (message.meta?.size) { - const rec = Object.fromEntries(message.meta.entries()); - return encoder.encode(`${JSON.stringify(rec)}\u{1F9E9}${message.content}`); - } - return encoder.encode(message.content); -} -function decodeTypedMessageV38ToV40Format(raw, version) { - const decoder = new TextDecoder(); - const text = ts_results__WEBPACK_IMPORTED_MODULE_0__/* .Result.wrap */ .x4.wrap(()=>decoder.decode(raw) - ); - const { val: val1 , err } = text; - if (err) return text; - if (version === -38) { - const maybeMetadata = (()=>{ - if (!val1.includes('\u{1F9E9}')) return ts_results__WEBPACK_IMPORTED_MODULE_0__/* .None */ .Hq; - const [maybeJSON] = val1.split('\u{1F9E9}'); - return ts_results__WEBPACK_IMPORTED_MODULE_0__/* .Result.wrap */ .x4.wrap(()=>JSON.parse(maybeJSON) - ).toOption().map((val)=>{ - if (typeof val !== 'object' || Array.isArray(val)) return new Map(); - return new Map(Object.entries(val)); - }); - })(); - return (0,ts_results__WEBPACK_IMPORTED_MODULE_0__.Ok)(maybeMetadata.some ? (0,_core_index_js__WEBPACK_IMPORTED_MODULE_1__/* .makeTypedMessageText */ .P)(val1.replace(/.+\u{1F9E9}/u, ''), maybeMetadata.val) : (0,_core_index_js__WEBPACK_IMPORTED_MODULE_1__/* .makeTypedMessageText */ .P)(val1)); - } - return (0,ts_results__WEBPACK_IMPORTED_MODULE_0__.Ok)((0,_core_index_js__WEBPACK_IMPORTED_MODULE_1__/* .makeTypedMessageText */ .P)(val1)); -} +const base = { + ID: constants/* PLUGIN_ID */.Uu, + name: { + fallback: constants/* PLUGIN_NAME */.EW + }, + description: { + fallback: constants/* PLUGIN_DESCRIPTION */.PP + }, + publisher: { + name: { + fallback: 'Mask Network' + }, + link: 'https://mask.io/' + }, + enableRequirement: { + architecture: { + app: false, + web: true + }, + networks: { + type: 'opt-out', + networks: {} + }, + target: 'insider' + }, + experimentalMark: true, + i18n: languages +}; /***/ }), -/***/ 25376: +/***/ 7292: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "$": () => (/* binding */ isTypedMessageMaskPayload), -/* harmony export */ "J": () => (/* binding */ makeTypedMessageMaskPayload) +/* harmony export */ "EW": () => (/* binding */ PLUGIN_NAME), +/* harmony export */ "PP": () => (/* binding */ PLUGIN_DESCRIPTION), +/* harmony export */ "Uu": () => (/* binding */ PLUGIN_ID) /* harmony export */ }); -/* harmony import */ var _utils_internal_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(76395); +/* harmony import */ var _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(70226); -const isTypedMessageMaskPayload = (0,_utils_internal_js__WEBPACK_IMPORTED_MODULE_0__/* .createIsType */ .uO)('x-mask-payload'); -function makeTypedMessageMaskPayload(message, meta) { - return { - type: 'x-mask-payload', - message, - meta - }; -} +const PLUGIN_ID = _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__/* .PluginId.Example */ .je.Example; +const PLUGIN_DESCRIPTION = 'An example plugin of Mask Network.'; +const PLUGIN_NAME = 'Example'; /***/ }), -/***/ 78727: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { +/***/ 55103: +/***/ ((__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) => { "use strict"; -/* unused harmony export createMaskPayloadTransform */ -/* harmony import */ var _Flatten_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(28722); -/* harmony import */ var _core_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(90323); -/* harmony import */ var _extension_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(25114); -/* harmony import */ var _visitor_index_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(37725); +/* harmony import */ var _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(70226); +/* harmony import */ var _base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(7965); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(7292); - -function createMaskPayloadTransform(options) { - return function MaskPayloadTransform(message, context) { - if (context.skipMaskPayloadTransform) return message; - message = FlattenTypedMessage(message, context); - if (isTypedMessageMaskPayload(message)) return message; - // We don't transform nested message - // Note: there maybe more than 1 payload in the message. Make sure both of them are handled. - if (isTypedMessageAnchor(message)) { - if (message.content.match(linkPayload)) return options.transformText(message.content, context); - if (message.href.match(linkPayload)) return options.transformText(message.href, context); - } else if (isTypedMessageImage(message)) { - return options.transformImage(message, context); - } else if (isTypedMessageText(message)) { - // TODO: there maybe more than 1 payload to parse. - // Not detect link form here. Only detect raw form (used on FB) in this branch. - if (message.content.match(textPayload)) { - return options.transformText(message.content, context); - } - } else if (isTypedMessageTuple(message)) { - // TODO: there maybe more than 1 payload to parse. - // Visit each child here, when a raw form or link form is detected, - // we should check if the before/after is the text need to be removed. - // For example: - // Tuple( - // Text("Keep this text! This post is encrypted by") - // Anchor("@mask.io"), - // Text(" . Install to decrypt!"), - // Anchor(payload here), - // Text(" more text to be removed! But keep this one!") - // ) - // it should be transformed into - // Tuple( - // Text("Keep this text! "), - // MaskPayload(pending...), - // Text(" But keep this one!"), - // ) - } - return visitEachTypedMessageChild(message, MaskPayloadTransform, context); - }; -} -// match the link version payload -/* cspell:disable-next-line */ const linkPayload = /^https?:\/\/mask(\.io|book\.com)\/\?postdata_v/i; -// match the text version payload -const textPayload = /(\u{1F3BC}[\w+/=|]+:\|\|)/giu; +(0,_masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_0__/* .registerPlugin */ .fo)({ + ..._base__WEBPACK_IMPORTED_MODULE_1__/* .base */ .u, + SNSAdaptor: { + load: ()=>__webpack_require__.e(/* import() */ 9162).then(__webpack_require__.bind(__webpack_require__, 39162)) + , + hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 + }, + Dashboard: { + load: ()=>__webpack_require__.e(/* import() */ 2070).then(__webpack_require__.bind(__webpack_require__, 42070)) + , + hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 + }, + Worker: { + load: ()=>__webpack_require__.e(/* import() */ 7998).then(__webpack_require__.bind(__webpack_require__, 57998)) + , + hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 + } +}); /***/ }), -/***/ 6596: +/***/ 60718: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "v": () => (/* binding */ emptyTransformationContext) +/* harmony export */ "FW": () => (/* reexport safe */ _web_js__WEBPACK_IMPORTED_MODULE_0__.FW), +/* harmony export */ "Kn": () => (/* reexport safe */ _types_index_js__WEBPACK_IMPORTED_MODULE_1__.K), +/* harmony export */ "P7": () => (/* reexport safe */ _web_js__WEBPACK_IMPORTED_MODULE_0__.P7), +/* harmony export */ "iu": () => (/* reexport safe */ _web_js__WEBPACK_IMPORTED_MODULE_0__.iu), +/* harmony export */ "z4": () => (/* reexport safe */ _web_js__WEBPACK_IMPORTED_MODULE_0__.z4) /* harmony export */ }); -/* unused harmony export createTransformationContext */ -function createTransformationContext() { - return Object.freeze({}); -} -const emptyTransformationContext = createTransformationContext(); - +/* harmony import */ var _web_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(52684); +/* harmony import */ var _types_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(55028); +// Following is the API that can be called from the native side. -/***/ }), +// Following is the API that implemented by the native side. -/***/ 76395: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -"use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "Vm": () => (/* binding */ composeSome), -/* harmony export */ "mo": () => (/* binding */ composeEvery), -/* harmony export */ "uO": () => (/* binding */ createIsType) -/* harmony export */ }); -/** @internal */ function createIsType(x, version) { - return (y)=>{ - if (version !== undefined && y.version !== version) return false; - return y.type === x; - }; -} -/** @internal */ function composeSome(...fns) { - return (...args)=>fns.some((f)=>f(...args) - ) - ; -} -/** @internal */ function composeEvery(...fns) { - return (...args)=>fns.every((f)=>f(...args) - ) - ; -} /***/ }), -/***/ 37725: +/***/ 74762: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; // EXPORTS __webpack_require__.d(__webpack_exports__, { - "s": () => (/* reexport */ forEachTypedMessageChild), - "I": () => (/* reexport */ visitEachChild/* visitEachTypedMessageChild */.I) + "x": () => (/* reexport */ openWindow) }); -// EXTERNAL MODULE: ../typed-message/base/visitor/visitEachChild.ts -var visitEachChild = __webpack_require__(80246); -// EXTERNAL MODULE: ../typed-message/base/core/index.ts + 2 modules -var core = __webpack_require__(90323); -// EXTERNAL MODULE: ../typed-message/base/utils/index.ts + 2 modules -var utils = __webpack_require__(72542); -// EXTERNAL MODULE: ../typed-message/base/extension/index.ts + 1 modules -var extension = __webpack_require__(25114); -;// CONCATENATED MODULE: ../typed-message/base/visitor/forEachChild.ts - - - -function forEachTypedMessageChild(node, visitor) { - let stop; - if ((0,core/* isTypedMessageTuple */.bZ)(node)) { - for (const each of node.items){ - stop = visitor(each); - if (stop) return; - } - } else if ((0,core/* isTypedMessagePromise */.KV)(node)) { - // if Promise has a resolved value, we ignore it's alt. - if (node.promise.value) visitor(node.promise.value); - else if (node.alt) visitor(node.alt); - } else if ((0,extension/* isTypedMessageMaskPayload */.$6)(node)) { - visitor(node.message); - } else if ((0,utils/* isNonSerializableTypedMessageWithAlt */.c3)(node)) { - visitor(node.alt); +;// CONCATENATED MODULE: ../shared-base-ui/src/bom/open-window.ts +function openWindow(url, target = '_blank', features = {}) { + if (!url) return null; + const flags = []; + for (const [name, value] of Object.entries(features.behaviors ?? {})){ + if (value) flags.push(`${name}=1`); } + if (!features.opener) flags.push('noopener'); + if (!features.referrer) flags.push('noreferrer'); + if (Number.isFinite(features.width)) flags.push(`width=${features.width}`); + if (Number.isFinite(features.height)) flags.push(`height=${features.height}`); + if (Number.isFinite(features.screenX)) flags.push(`screenX=${features.screenX}`); + if (Number.isFinite(features.screenY)) flags.push(`screenY=${features.screenY}`); + return window.open(url, target, flags.join(' ')); } -;// CONCATENATED MODULE: ../typed-message/base/visitor/index.ts - +;// CONCATENATED MODULE: ../shared-base-ui/src/bom/index.ts /***/ }), -/***/ 71607: +/***/ 53747: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; // EXPORTS __webpack_require__.d(__webpack_exports__, { - "Ur": () => (/* binding */ NFTScanAPI) + "O": () => (/* binding */ CrashUI) }); -// UNUSED EXPORTS: getNFTScanNFTList, getNFTScanNFTs +// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.1.0/node_modules/react/jsx-runtime.js +var jsx_runtime = __webpack_require__(35667); +// EXTERNAL MODULE: ../../node_modules/.pnpm/react-use@17.4.0/node_modules/react-use/esm/useTimeoutFn.js +var useTimeoutFn = __webpack_require__(4103); +// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.1.0/node_modules/react/index.js +var react = __webpack_require__(58757); +// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.8.0_4xriuibr7qayay6mzcpq5f43me/node_modules/@mui/material/Alert/Alert.js + 4 modules +var Alert = __webpack_require__(60904); +// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.8.0_4xriuibr7qayay6mzcpq5f43me/node_modules/@mui/material/AlertTitle/AlertTitle.js + 1 modules +var AlertTitle = __webpack_require__(61865); +// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.8.0_4xriuibr7qayay6mzcpq5f43me/node_modules/@mui/material/Button/Button.js +var Button = __webpack_require__(85792); +// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.8.0_4xriuibr7qayay6mzcpq5f43me/node_modules/@mui/material/Box/Box.js +var Box = __webpack_require__(96436); +// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.8.0_4xriuibr7qayay6mzcpq5f43me/node_modules/@mui/material/IconButton/IconButton.js + 1 modules +var IconButton = __webpack_require__(48941); +// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.8.0_4xriuibr7qayay6mzcpq5f43me/node_modules/@mui/material/Typography/Typography.js + 1 modules +var Typography = __webpack_require__(21784); +// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.8.0_4xriuibr7qayay6mzcpq5f43me/node_modules/@mui/material/styles/styled.js +var styled = __webpack_require__(35878); +// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+icons-material@5.8.0_ar3vczqpton7uep5462l6mtgi4/node_modules/@mui/icons-material/ExpandLess.js +var ExpandLess = __webpack_require__(79099); +// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+icons-material@5.8.0_ar3vczqpton7uep5462l6mtgi4/node_modules/@mui/icons-material/ExpandMore.js +var ExpandMore = __webpack_require__(96209); +// EXTERNAL MODULE: ../shared-base-ui/src/components/ErrorBoundary/context.ts +var ErrorBoundary_context = __webpack_require__(49831); +// EXTERNAL MODULE: ../../node_modules/.pnpm/react-i18next@11.16.9_nlaekqjbpikw4agfyzvj2iejnm/node_modules/react-i18next/dist/es/Trans.js +var Trans = __webpack_require__(62266); +// EXTERNAL MODULE: ../../node_modules/.pnpm/react-i18next@11.16.9_nlaekqjbpikw4agfyzvj2iejnm/node_modules/react-i18next/dist/es/useTranslation.js +var useTranslation = __webpack_require__(43133); +;// CONCATENATED MODULE: ../shared-base-ui/src/locales/i18n_generated.js +/* eslint-disable */ + -// EXTERNAL MODULE: ../web3-shared/evm/utils/token.ts -var token = __webpack_require__(33690); -// EXTERNAL MODULE: ../web3-shared/evm/types/index.ts -var types = __webpack_require__(65506); -// EXTERNAL MODULE: ../web3-shared/evm/pipes/index.ts -var pipes = __webpack_require__(55678); -// EXTERNAL MODULE: ../../node_modules/.pnpm/date-fns@2.28.0/node_modules/date-fns/esm/addSeconds/index.js -var addSeconds = __webpack_require__(71767); -// EXTERNAL MODULE: ../../node_modules/.pnpm/date-fns@2.28.0/node_modules/date-fns/esm/isBefore/index.js -var isBefore = __webpack_require__(33086); -// EXTERNAL MODULE: ../../node_modules/.pnpm/urlcat@2.0.4/node_modules/urlcat/dist/index.js -var dist = __webpack_require__(19802); -var dist_default = /*#__PURE__*/__webpack_require__.n(dist); -// EXTERNAL MODULE: ../web3-providers/src/helpers.ts -var helpers = __webpack_require__(48073); -;// CONCATENATED MODULE: ../web3-providers/src/NFTScan/constants.ts +const bind = (i18nKey) => (props) => (0,react.createElement)(Trans/* Trans */.c, { i18nKey, ns: "shareBase", ...props }) +function useSharedBaseI18N() { + const { t } = (0,useTranslation/* useTranslation */.$)("shareBase") + return (0,react.useMemo)( + function proxyBasedHooks() { + return new Proxy({ __proto__: null }, { + get(target, key) { + if (target[key]) + return target[key]; + return (target[key] = t.bind(null, key)); + }, + }); +}, + [t], + ) +} +const SharedBaseTrans = function proxyBasedTrans() { + return new Proxy({ __proto__: null }, { + get(target, key) { + if (target[key]) + return target[key]; + return (target[key] = bind(key)); + }, + }); +}() +;// CONCATENATED MODULE: ../shared-base-ui/src/locales/index.ts +// This file is auto generated. DO NOT EDIT +// Run `npx gulp sync-languages` to regenerate. +// Default fallback language in a family of languages are chosen by the alphabet order +// To overwrite this, please overwrite packages/scripts/src/locale-kit-next/index.ts -const NFTSCAN_ID = 't9k2o5GC'; -const NFTSCAN_SECRET = '21da1d638ef5d0bf76e37aa5c2da7fd789ade9e3'; -const NFTSCAN_URL = 'https://restapi.nftscan.com'; -const NFTSCAN_BASE_API = dist_default()(NFTSCAN_URL, '/api/v1'); -const NFTSCAN_ACCESS_TOKEN_URL = (0,helpers/* courier */.t4)(dist_default()(NFTSCAN_URL, '/gw/token', { - apiKey: NFTSCAN_ID, - apiSecret: NFTSCAN_SECRET -})); +;// CONCATENATED MODULE: ../shared-base-ui/src/components/ErrorBoundary/CrashUI.tsx -;// CONCATENATED MODULE: ../web3-providers/src/NFTScan/index.ts -const tokenCache = new Map(); -async function getToken() { - const token = tokenCache.get('token'); - if (token && (0,isBefore/* default */.Z)(Date.now(), token.expiration)) { - return token.token; - } - const response = await fetch(NFTSCAN_ACCESS_TOKEN_URL, { - ...!(0,helpers/* isProxyENV */.HN)() && { - mode: 'cors' + +function CrashUI({ onRetry , subject , ...error }) { + const context = (0,react.useContext)(ErrorBoundary_context/* ErrorBoundaryBuildInfoContext */.N); + const t = useSharedBaseI18N(); + const [showStack, setShowStack] = (0,react.useState)(false); + // This is a rarely reported crash. It is likely a race condition. + // https://github.com/DimensionDev/Maskbook/issues?q=Failed+to+execute+%27insertBefore%27+on+%27Node%27+ + // It seems like DOM mutation from out of our application might conflict with React reconciliation. + // As a temporary fix, try to recover this React tree after 200ms. + (0,useTimeoutFn/* default */.Z)(()=>{ + if (error.message.includes("Failed to execute 'insertBefore' on 'Node'")) { + onRetry(); } - }); - const { data , } = await response.json(); - tokenCache.set('token', { - token: data.accessToken, - expiration: (0,addSeconds/* default */.Z)(Date.now(), data.expiration) - }); - return data.accessToken; -} -async function fetchAsset(path, body) { - const url = (0,helpers/* courier */.t4)(dist_default()(NFTSCAN_BASE_API, path)); - const response = await fetch(url, { - method: 'POST', - headers: { - 'Access-Token': await getToken(), - 'Content-type': 'application/json' - }, - body: JSON.stringify(body) - }); - if (!response.ok) return; - return response.json(); -} -function createERC721ContractDetailedFromAssetContract(asset) { - return (0,token/* createERC721ContractDetailed */.ek)(types/* ChainId.Mainnet */.a_.Mainnet, asset.trade_contract ?? asset.nft_contract_address, undefined, asset.trade_symbol); -} -function createERC721TokenAsset(asset) { - const payload = JSON.parse(asset.nft_json ?? '{}'); - const detailed = createERC721ContractDetailedFromAssetContract(asset); - return (0,token/* createERC721Token */.Of)(detailed, { - name: ((payload?.name ?? asset.nft_name) ?? asset.nft_platform_name) ?? '', - description: payload?.description ?? '', - mediaUrl: (0,pipes/* resolveIPFSLinkFromURL */.Yx)(((JSON.parse(asset.nft_json ?? '{}').image ?? asset.nft_content_uri) ?? payload.image) ?? ''), - owner: asset.nft_holder ?? '' - }, asset.token_id); -} -class NFTScanAPI { - async getContractBalance(address) { - const response = await fetchAsset('getGroupByNftContract', { - erc: 'erc721', - user_address: address - }); - if (!response?.data) return []; - return response.data.map((x)=>{ - const contractDetailed = (0,token/* createERC721ContractDetailed */.ek)(types/* ChainId.Mainnet */.a_.Mainnet, x.nft_contract_address, x.nft_platform_name, undefined, undefined, x.nft_platform_image); - const balance = x.nft_asset.length; - return { - contractDetailed, - balance - }; - }).sort((a, b)=>a.balance - b.balance - ); - } - async getToken(address, tokenId) { - const response = await fetchAsset('getSingleNft', { - nft_address: address, - token_id: tokenId - }); - if (!response) return; - return createERC721TokenAsset(response.data); - } - async getTokens(from, { chainId =types/* ChainId.Mainnet */.a_.Mainnet , page =0 , size =50 , pageInfo }) { - const response = await fetchAsset('getAllNftByUserAddress', { - page_size: size, - page_index: page + 1, - user_address: from, - erc: pageInfo?.type ?? 'erc721' - }); - if (!response?.data) return { - data: [], - hasNextPage: false - }; - const data = response.data.content.map(createERC721TokenAsset).map((x)=>({ - ...x, - provideBy: 'NFTScan' - }) - ) ?? []; - const total = response.data.total; - return { - data, - hasNextPage: total - (page + 1) * size > 0 - }; - } - async getTokenDetailedOwnerList(owner, contractDetailed, size = 100, page = 0) { - const response = await fetchAsset('getNftByContractAndUserAddress', { - page_size: size, - page_index: page + 1, - user_address: owner, - nft_address: contractDetailed.address - }); - if (!response?.data) return { - data: [], - hasNextPage: false + }, 200); + // crash report, will send to GitHub + const reportTitle = `[Crash] ${error.type}: ${error.message}`; + const reportBody = ` + +I was *doing something...*, then Mask reports an error. + +> ${error.message} + +Error stack: + +
${error.stack}
\n\n${context || ''}`; + const githubLink = (0,react.useMemo)(()=>{ + const url = new URLSearchParams(); + url.set('title', reportTitle); + url.set('body', reportBody); + return 'https://github.com/DimensionDev/Maskbook/issues/new?' + url.toString(); + }, [ + reportBody, + reportTitle + ]); + return /*#__PURE__*/ (0,jsx_runtime.jsx)(Root, { + children: /*#__PURE__*/ (0,jsx_runtime.jsxs)(Alert/* default */.Z, { + severity: "error", + variant: "outlined", + children: [ + /*#__PURE__*/ (0,jsx_runtime.jsx)(AlertTitle/* default */.Z, { + children: t.error_boundary_crash_title({ + subject + }) + }), + /*#__PURE__*/ (0,jsx_runtime.jsxs)(ErrorTitle, { + children: [ + error.type, + ": ", + error.message + ] + }), + /*#__PURE__*/ (0,jsx_runtime.jsxs)(ActionArea, { + children: [ + /*#__PURE__*/ (0,jsx_runtime.jsx)(Button/* default */.Z, { + variant: "contained", + color: "primary", + onClick: onRetry, + children: t.error_boundary_try_to_recover() + }), + /*#__PURE__*/ (0,jsx_runtime.jsx)(Button/* default */.Z, { + href: githubLink, + color: "primary", + target: "_blank", + children: t.error_boundary_report_github() + }), + /*#__PURE__*/ (0,jsx_runtime.jsx)(Box/* default */.Z, { + sx: { + flex: 1 + } + }), + /*#__PURE__*/ (0,jsx_runtime.jsx)(IconButton/* default */.Z, { + color: "inherit", + size: "small", + onClick: ()=>setShowStack((x)=>!x + ) + , + children: showStack ? /*#__PURE__*/ (0,jsx_runtime.jsx)(ExpandMore/* default */.Z, {}) : /*#__PURE__*/ (0,jsx_runtime.jsx)(ExpandLess/* default */.Z, {}) + }) + ] + }), + showStack ? /*#__PURE__*/ (0,jsx_runtime.jsx)(ErrorStack, { + children: /*#__PURE__*/ (0,jsx_runtime.jsx)(Typography/* default */.Z, { + component: "pre", + children: /*#__PURE__*/ (0,jsx_runtime.jsx)("code", { + children: error.stack + }) + }) + }) : null + ] + }) + }); +} +const Root = (0,styled/* default */.ZP)('div')` + overflow-x: auto; + flex: 1; + width: 100%; + contain: paint; + margin-top: 16px; +`; +const ErrorTitle = (0,styled/* default */.ZP)('div')` + user-select: text; + margin-bottom: 8px; +`; +const ErrorStack = (0,styled/* default */.ZP)('div')` + user-select: text; + overflow-x: auto; + contain: strict; + height: 300px; +`; +const ActionArea = (0,styled/* default */.ZP)('div')` + display: flex; + gap: 8px; +`; + + +/***/ }), + +/***/ 49831: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "N": () => (/* binding */ ErrorBoundaryBuildInfoContext) +/* harmony export */ }); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(58757); + +/** + * Please provide the build info text + */ const ErrorBoundaryBuildInfoContext = (0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)(''); + + +/***/ }), + +/***/ 56324: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* unused harmony export useAim */ +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(58757); + + +/** + * https://www.algorithms-and-technologies.com/point_in_polygon/javascript + * Performs the even-odd-rule Algorithm (a ray-casting algorithm) to find out whether a point is in a given polygon. + * This runs in O(n) where n is the number of edges of the polygon. + * + * @param polygon + * @param point + * @return whether the point is in the polygon (includes the edge) + */ const pointInPolygon = (polygon, point)=>{ + // A point is in a polygon if a line from the point to infinity crosses the polygon an odd number of times + let odd = false; + // For each edge (In this case for each point of the polygon and the previous one) + for(let i = 0, j = polygon.length - 1; i < polygon.length; i += 1){ + // If a line from the point into infinity crosses this edge + if (polygon[i][1] >= point[1] !== polygon[j][1] >= point[1] && // ...and the edge doesn't cross our Y coordinate before our x coordinate (but between our x coordinate and infinity) + point[0] <= (polygon[j][0] - polygon[i][0]) * (point[1] - polygon[i][1]) / (polygon[j][1] - polygon[i][1]) + polygon[i][0]) { + // Invert odd + odd = !odd; + } + j = i; + } + // If the number of crossings was odd, the point is in the polygon + return odd; +}; +const INTERVAL = (/* unused pure expression or super */ null && (1000 / 60)); +// Inspired by http://bjk5.com/post/44698559168/breaking-down-amazons-mega-dropdown +function useAim(sourceRef, targetRef) { + const [active, setActive] = useState(false); + const inSourceRef = useRef(false); + const inTargetRef = useRef(false); + useEffect(()=>{ + const source1 = sourceRef.current; + const target1 = targetRef.current; + if (!source1) return; + let unmounted = false; + let timer; + const updateActive = (status)=>{ + if (unmounted) return; + setActive(inSourceRef.current || inTargetRef.current || status); }; - const total = response.data.total; - const data = response.data.content.map((t)=>({ - tokenId: t.token_id, - contractDetailed, - info: { - name: t.nft_name, - description: t.nft_detail, - mediaUrl: (0,pipes/* resolveIPFSLinkFromURL */.Yx)((JSON.parse(t.nft_json ?? '{}').image ?? t.nft_content_uri) ?? ''), - tokenURI: t.nft_token_uri - } - }) - ); - return { - data, - hasNextPage: total - (page + 1) * size > 0 + const show = ()=>{ + clearTimeout(timer); + updateActive(true); }; - } -} -function getNFTScanNFTList(address) { - const nftScanAPI = new NFTScanAPI(); - return nftScanAPI.getContractBalance(address); + const hide = ()=>{ + clearTimeout(timer); + timer = setTimeout(updateActive, INTERVAL, false); + }; + const handleSourceMouseEnter = ()=>{ + if (unmounted) return; + show(); + inTargetRef.current = false; + inSourceRef.current = true; + }; + const handleSourceLeave = ()=>{ + inSourceRef.current = false; + }; + const handleTargetMouseEnter = ()=>{ + inSourceRef.current = false; + inTargetRef.current = true; + show(); + }; + const handleTargetMouseLeave = ()=>{ + inTargetRef.current = false; + hide(); + }; + const handleDocMouseMove = throttle((evt)=>{ + if (inSourceRef.current || inTargetRef.current) return; + const source = sourceRef.current; + const target = targetRef.current; + if (!source || !target) return; + const sourceRect = source.getBoundingClientRect(); + const targetRect = target.getBoundingClientRect(); + const p1 = [ + sourceRect.left, + sourceRect.top + ]; + const p2 = [ + sourceRect.right, + sourceRect.top + ]; + const p3 = [ + targetRect.right, + targetRect.top + ]; + const p4 = [ + targetRect.left, + targetRect.top + ]; + const mousePoint = [ + evt.x, + evt.y + ]; + const polygon = [ + p1, + p2, + p3, + p4, + p1 + ].filter(([x, y])=>x || y + ); + const inArea = pointInPolygon(polygon, mousePoint); + inArea ? show() : hide(); + }, INTERVAL); + source1.addEventListener('mouseenter', handleSourceMouseEnter); + source1.addEventListener('mouseleave', handleSourceLeave); + target1?.addEventListener('mouseenter', handleTargetMouseEnter); + target1?.addEventListener('mouseleave', handleTargetMouseLeave); + document.addEventListener('mousemove', handleDocMouseMove); + return ()=>{ + unmounted = true; + clearTimeout(timer); + source1.removeEventListener('mouseenter', handleSourceMouseEnter); + source1.removeEventListener('mouseleave', handleSourceLeave); + target1?.removeEventListener('mouseenter', handleTargetMouseEnter); + target1?.removeEventListener('mouseleave', handleTargetMouseLeave); + document.removeEventListener('mousemove', handleDocMouseMove); + }; + }, []); + return active; } -function getNFTScanNFTs(address, type, page, size) { - const nftScanAPI = new NFTScanAPI(); - return nftScanAPI.getTokens(address, { - page, - size, - pageInfo: { - type - } - }); + + +/***/ }), + +/***/ 30780: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "S": () => (/* binding */ useScrollBottomEvent) +/* harmony export */ }); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(58757); +/* harmony import */ var lodash_unified__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(82617); + + +function useScrollBottomEvent(ref, cb) { + const onScroll = (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((0,lodash_unified__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)(function(_ev) { + // ev.currentTarget is always null when applies debounce(). + const ev = _ev; + const element = ev.path[0]; + // On some device, there's a slight deviation between `scrollHeight` and `offsetHeight + scrollTop` + const isBottomArrived = Math.abs(element.scrollHeight - element.offsetHeight - element.scrollTop) < 5; + if (isBottomArrived) cb(); + }, 300), [ + cb + ]); + (0,react__WEBPACK_IMPORTED_MODULE_0__.useLayoutEffect)(()=>{ + if (!ref.current) return; + ref.current.addEventListener('scroll', onScroll); + // useLayoutEffect() to remove the listener before changes painted on screen. + return ()=>{ + if (!ref.current) return; + ref.current.removeEventListener('scroll', onScroll); + }; + }, [ + onScroll, + ref.current + ]); } /***/ }), -/***/ 64242: +/***/ 57041: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; // EXPORTS __webpack_require__.d(__webpack_exports__, { - "N": () => (/* reexport */ NextIDProofAPI), - "I": () => (/* reexport */ NextIDStorageAPI) + "ob": () => (/* reexport */ ECKeyIdentifier), + "xb": () => (/* reexport */ Identifier), + "bb": () => (/* reexport */ PostIVIdentifier), + "_P": () => (/* reexport */ PostIdentifier), + "WO": () => (/* reexport */ ProfileIdentifier), + "Ap": () => (/* reexport */ convertIdentifierMapToRawMap), + "J5": () => (/* reexport */ convertRawMapToIdentifierMap) }); -// EXTERNAL MODULE: ../../node_modules/.pnpm/urlcat@2.0.4/node_modules/urlcat/dist/index.js -var dist = __webpack_require__(19802); -var dist_default = /*#__PURE__*/__webpack_require__.n(dist); -// EXTERNAL MODULE: ../../node_modules/.pnpm/lru-cache@7.8.0/node_modules/lru-cache/index.js -var lru_cache = __webpack_require__(90196); -var lru_cache_default = /*#__PURE__*/__webpack_require__.n(lru_cache); +// UNUSED EXPORTS: PersonaIdentifier + // EXTERNAL MODULE: ../../node_modules/.pnpm/ts-results@3.3.0/node_modules/ts-results/esm/index.js + 3 modules var esm = __webpack_require__(48160); -;// CONCATENATED MODULE: ../web3-providers/src/NextID/helper.ts - +;// CONCATENATED MODULE: ../shared-base/src/Identifier/base.ts -const fetchCache = new (lru_cache_default())({ - max: 100, - ttl: 20000 -}); -function deleteCache(key) { - fetchCache.delete(key); -} -async function fetchJSON(url, requestInit, enableCache) { - const cached = enableCache ? fetchCache.get(url) : undefined; - const isPending = cached instanceof Promise; - if (cached && !isPending) { - return (0,esm.Ok)(cached); +let _hasInstance = Symbol.hasInstance; +class Identifier { + /** We mark this as private because it's encouraged to use toText(). toString is for JavaScript runtime accidentally calling. */ toString() { + return this.toText(); } - let pendingResponse; - if (isPending) { - pendingResponse = cached; - } else { - pendingResponse = globalThis.fetch(url, { - mode: 'cors', - ...requestInit - }); - if (enableCache) { - fetchCache.set(url, pendingResponse); - } + static from(input) { + // this method will be override in ./utils + return esm/* None */.Hq; } - const response = await pendingResponse; - const result = await response.clone().json(); - if (result.message || !response.ok) { - return (0,esm/* Err */.UG)(result.message); + static [_hasInstance](x) { + // this method will be override in ./utils + return false; } - fetchCache.set(url, result); - return (0,esm.Ok)(result); } -;// CONCATENATED MODULE: ../web3-providers/src/NextID/constants.ts -const MASK_STORAGE_KEY = 'com.mask.plugin'; -const KV_BASE_URL_DEV = 'https://kv-service.nextnext.id'; -const KV_BASE_URL_PROD = ''; -const PROOF_BASE_URL_DEV = 'https://proof-service.nextnext.id/'; -const PROOF_BASE_URL_PROD = 'https://proof-service.next.id/'; +// EXTERNAL MODULE: ../shared-base/src/Site/type.ts +var type = __webpack_require__(5906); +;// CONCATENATED MODULE: ../shared-base/src/Identifier/post.ts -;// CONCATENATED MODULE: ../web3-providers/src/NextID/kv.ts -/** - * Document url: https://github.com/nextdotid/kv_server/blob/develop/docs/api.apib - */ -const BASE_URL = true ? KV_BASE_URL_PROD : 0; -function formatPatchData(platform, identity, data) { - return { - [MASK_STORAGE_KEY]: { - [`${platform}_${identity}`]: data - } - }; -} -class NextIDStorageAPI { - /** - * Get current KV of a persona - * @param personaPublicKey - * - */ async get(personaPublicKey) { - const full = await fetchJSON(dist_default()(BASE_URL, '/v1/kv', { - persona: personaPublicKey - })); - return full.map((x)=>x[MASK_STORAGE_KEY] - ); + +const instance = new WeakSet(); +const id = new WeakMap(); +let post_hasInstance = Symbol.hasInstance; +/** + * If identifier is a PostIdentifier, that means this post is bound with other post in some kind + * e.g. a comment. + */ class PostIdentifier extends Identifier { + static from(input) { + if (!input) return esm/* None */.Hq; + input = String(input); + if (input.startsWith('post:')) return Identifier.from(input); + return esm/* None */.Hq; } - /** - * Get signature payload for updating - * @param personaPublicKey - * @param platform - * @param identity - * @param patchData - * - * We choose [RFC 7396](https://www.rfc-editor.org/rfc/rfc7396) standard for KV modifying. - */ async getPayload(personaPublicKey, platform, identity, patchData) { - const requestBody = { - persona: personaPublicKey, - platform, - identity, - patch: formatPatchData(platform, identity, patchData) - }; - const response = await fetchJSON(dist_default()(BASE_URL, '/v1/kv/payload'), { - body: JSON.stringify(requestBody), - method: 'POST' - }); - return response.map((x)=>({ - signPayload: JSON.stringify(JSON.parse(x.sign_payload)), - createdAt: x.created_at, - uuid: x.uuid - }) - ); + toText() { + return `post:${this.postID}/${this.identifier.toText()}`; } - /** - * Update a full set of key-value pairs - * @param uuid - * @param personaPublicKey - * @param signature - * @param platform - * @param identity - * @param createdAt - * @param patchData - * - * We choose [RFC 7396](https://www.rfc-editor.org/rfc/rfc7396) standard for KV modifying. - */ set(uuid, personaPublicKey, signature, platform, identity, createdAt, patchData) { - const requestBody = { - uuid, - persona: personaPublicKey, - platform, - identity, - signature, - patch: formatPatchData(platform, identity, patchData), - created_at: createdAt - }; - return fetchJSON(dist_default()(BASE_URL, '/v1/kv'), { - body: JSON.stringify(requestBody), - method: 'POST' - }); + /** @deprecated */ get postId() { + return this.postID; + } + static [post_hasInstance](x) { + return instance.has(x); + } + constructor(identifier, postID){ + if (!(identifier instanceof ProfileIdentifier)) throw new TypeError('[@masknet/shared-base] PostIdentifier.identifier is not a ProfileIdentifier'); + if (!id.has(identifier)) id.set(identifier, Object.create(null)); + const idCache = id.get(identifier); + if (idCache[postID]) return idCache[postID]; + banSlash(postID); + super(); + this.identifier = identifier; + this.postID = postID; + Object.freeze(this); + idCache[postID] = this; + instance.add(this); } } +PostIdentifier.prototype[Symbol.toStringTag] = 'PostIdentifier'; +Object.freeze(PostIdentifier.prototype); +Object.freeze(PostIdentifier); -// EXTERNAL MODULE: ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/head.js -var head = __webpack_require__(29730); -// EXTERNAL MODULE: ../shared-base/src/index.ts + 1 modules -var src = __webpack_require__(78144); -;// CONCATENATED MODULE: ../web3-providers/src/NextID/proof.ts +// EXTERNAL MODULE: ../../node_modules/.pnpm/@dimensiondev+kit@0.0.0-20220617045824-8bc7a27/node_modules/@dimensiondev/kit/esm/index.js +var kit_esm = __webpack_require__(46123); +// EXTERNAL MODULE: ../../node_modules/.pnpm/pvtsutils@1.3.2/node_modules/pvtsutils/build/index.js +var build = __webpack_require__(99612); +;// CONCATENATED MODULE: ../shared-base/src/Identifier/ec-key.ts + + + + +const ec_key_instance = new WeakSet(); +const k256Cache = Object.create(null); +const keyAsHex = Object.create(null); +let ec_key_hasInstance = Symbol.hasInstance; +/** + * This class identify the point on an EC curve. + * ec_key:secp256k1/CompressedPoint + */ class ECKeyIdentifier extends Identifier { + static from(input) { + if (!input) return esm/* None */.Hq; + input = String(input); + if (input.startsWith('ec_key:')) return Identifier.from(input); + return esm/* None */.Hq; + } + static fromHexPublicKeyK256(hex) { + if (!hex) return esm/* None */.Hq; + hex = String(hex); + if (hex.startsWith('0x')) hex = hex.slice(2); + const publicKey = (0,kit_esm/* encodeArrayBuffer */.ll)(new Uint8Array(build/* Convert.FromHex */.ep.FromHex(hex))); + return (0,esm/* Some */.bD)(new ECKeyIdentifier('secp256k1', publicKey)); + } + toText() { + const normalized = this.rawPublicKey.replace(/\//g, '|'); + return `ec_key:${this.curve}/${normalized}`; + } + get publicKeyAsHex() { + return '0x' + (keyAsHex[this.rawPublicKey] ??= build/* Convert.ToHex */.ep.ToHex((0,kit_esm/* decodeArrayBuffer */.xe)(this.rawPublicKey))); + } + static [ec_key_hasInstance](x) { + return ec_key_instance.has(x); + } + constructor(curve, publicKey){ + publicKey = String(publicKey).replace(/\|/g, '/'); + if (curve !== 'secp256k1') throw new Error('Only secp256k1 is supported'); + if (k256Cache[publicKey]) return k256Cache[publicKey]; + super(); + this.curve = 'secp256k1'; + this.rawPublicKey = publicKey; + Object.freeze(this); + k256Cache[publicKey] = this; + ec_key_instance.add(this); + } +} +ECKeyIdentifier.prototype[Symbol.toStringTag] = 'ECKeyIdentifier'; +Object.freeze(ECKeyIdentifier.prototype); +Object.freeze(ECKeyIdentifier); +// eslint-disable-next-line no-redeclare +const PersonaIdentifier = [ + ECKeyIdentifier +]; +;// CONCATENATED MODULE: ../shared-base/src/Identifier/post-iv.ts -const proof_BASE_URL = true ? PROOF_BASE_URL_PROD : 0; -const getPersonaQueryURL = (platform, identity)=>dist_default()(proof_BASE_URL, '/v1/proof', { - platform, - identity - }) -; -const geyExistedBindingQueryURL = (platform, identity, personaPublicKey)=>dist_default()(proof_BASE_URL, '/v1/proof/exists', { - platform, - identity, - public_key: personaPublicKey - }) -; -class NextIDProofAPI { - // TODO: remove 'bind' in project for business context. - async bindProof(uuid, personaPublicKey, action, platform, identity, createdAt, options) { - const requestBody = { - uuid, - action, - platform, - identity, - public_key: personaPublicKey, - proof_location: options?.proofLocation, - extra: { - wallet_signature: options?.walletSignature ? (0,src/* toBase64 */.s3)((0,src/* fromHex */.H_)(options.walletSignature)) : undefined, - signature: options?.signature ? (0,src/* toBase64 */.s3)((0,src/* fromHex */.H_)(options.signature)) : undefined - }, - created_at: createdAt - }; - const result = await fetchJSON(dist_default()(proof_BASE_URL, '/v1/proof'), { - body: JSON.stringify(requestBody), - method: 'POST' - }); - // Should delete cache when proof status changed - const cacheKeyOfQueryPersona = getPersonaQueryURL(src/* NextIDPlatform.NextId */.Vd.NextId, personaPublicKey); - const cacheKeyOfExistedBinding = geyExistedBindingQueryURL(platform, identity, personaPublicKey); - deleteCache(cacheKeyOfQueryPersona); - deleteCache(cacheKeyOfExistedBinding); - return result; +const post_iv_instance = new WeakSet(); +const post_iv_id = Object.create(null); +let post_iv_hasInstance = Symbol.hasInstance; +class PostIVIdentifier extends Identifier { + static from(input) { + if (!input) return esm/* None */.Hq; + input = String(input); + if (input.startsWith('post_iv:')) return Identifier.from(input); + return esm/* None */.Hq; } - async queryExistedBindingByPersona(personaPublicKey, enableCache) { - const url = getPersonaQueryURL(src/* NextIDPlatform.NextId */.Vd.NextId, personaPublicKey); - const response = await fetchJSON(url, {}, enableCache); - // Will have only one item when query by personaPublicKey - return (0,head/* default */.Z)(response.unwrap().ids); + toText() { + return `post_iv:${this.network}/${this.postIV.replace(/\//g, '|')}`; } - async queryExistedBindingByPlatform(platform, identity, page) { - if (!platform && !identity) return []; - const response = await fetchJSON(dist_default()(proof_BASE_URL, '/v1/proof', { - platform: platform, - identity: identity - })); - // TODO: merge Pagination into this - return response.unwrap().ids; + toIV() { + const x = this.postIV.replace(/\|/g, '/'); + return new Uint8Array((0,kit_esm/* decodeArrayBuffer */.xe)(x)); } - async queryIsBound(personaPublicKey, platform, identity, enableCache) { - if (!platform && !identity) return false; - const url = geyExistedBindingQueryURL(platform, identity, personaPublicKey); - const result = await fetchJSON(url, {}, enableCache); - return result.map(()=>true - ).unwrapOr(false); + static [post_iv_hasInstance](x) { + return post_iv_instance.has(x); } - async createPersonaPayload(personaPublicKey, action, identity, platform, language) { - const requestBody = { - action, - platform, - identity, - public_key: personaPublicKey - }; - const nextIDLanguageFormat = language?.replace('-', '_'); - const response = await fetchJSON(dist_default()(proof_BASE_URL, '/v1/proof/payload'), { - body: JSON.stringify(requestBody), - method: 'POST' - }); - return response.map((x)=>({ - postContent: x.post_content[nextIDLanguageFormat ?? 'default'] ?? x.post_content.default, - signPayload: JSON.stringify(JSON.parse(x.sign_payload)), - createdAt: x.created_at, - uuid: x.uuid - }) - ).unwrapOr(null); + constructor(network, postIV){ + network = String(network); + postIV = String(postIV); + const networkCache = post_iv_id[network] ??= {}; + if (networkCache[postIV]) return networkCache[postIV]; + banSlash(network); + super(); + this.network = network; + this.postIV = postIV; + Object.freeze(this); + networkCache[postIV] = this; + post_iv_instance.add(this); } } +PostIVIdentifier.prototype[Symbol.toStringTag] = 'PostIVIdentifier'; +Object.freeze(PostIVIdentifier.prototype); +Object.freeze(PostIVIdentifier); -;// CONCATENATED MODULE: ../web3-providers/src/NextID/index.ts +;// CONCATENATED MODULE: ../shared-base/src/Identifier/utils.ts -/***/ }), -/***/ 50443: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -"use strict"; +/** + * This type only refers to the stringified Identifier. ANY suffix CANNOT be renamed. + * person:... + * post:... + * post_iv:... + * ec_key:... + * + * Note: + * group: has removed, if you want to add a new identifier for grouping, please choose another prefix. + * @internal + */ function parse(input) { + if (!input) return esm/* None */.Hq; + input = String(input); + if (input.startsWith('person:')) { + const [network, userID] = input.slice('person:'.length).split('/'); + if (!network || !userID) return esm/* None */.Hq; + return ProfileIdentifier.of(network, userID); + } else if (input.startsWith('post:')) { + const [postID, ...rest] = input.slice('post:'.length).split('/'); + const inner = parse(rest.join('/')); + if (inner.none) return esm/* None */.Hq; + if (inner.val instanceof ProfileIdentifier) return (0,esm/* Some */.bD)(new PostIdentifier(inner.val, postID)); + return esm/* None */.Hq; + } else if (input.startsWith('post_iv:')) { + const [network, postIV] = input.slice('post_iv:'.length).split('/'); + if (!network || !postIV) return esm/* None */.Hq; + return (0,esm/* Some */.bD)(new PostIVIdentifier(network, postIV.replace(/\|/g, '/'))); + } else if (input.startsWith('ec_key:')) { + const [curve, compressedPoint] = input.slice('ec_key:'.length).split('/'); + if (curve !== 'secp256k1') return esm/* None */.Hq; + if (!compressedPoint) return esm/* None */.Hq; + return (0,esm/* Some */.bD)(new ECKeyIdentifier(curve, compressedPoint)); + } + return esm/* None */.Hq; +} +function hasInstance(x) { + if (x instanceof ProfileIdentifier || x instanceof ECKeyIdentifier || x instanceof PostIVIdentifier || x instanceof PostIdentifier) return true; + return false; +} +// Due to circular reference, I have to move part of this class to this file. +Identifier[Symbol.hasInstance] = hasInstance; +Identifier.from = parse; +Object.freeze(Identifier.prototype); +Object.freeze(Identifier); +/** + * Because "/" is used to split parts in identifier + * we should reject the "/" + * + * If you want to use it, you must first convert to something other + * @internal + */ function banSlash(input) { + if (!input) return; + if (input.includes('/')) throw new TypeError('Cannot contain / in a part of identifier'); +} -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - "J": () => (/* binding */ CoinGeckoAPI) -}); +;// CONCATENATED MODULE: ../shared-base/src/Identifier/profile.ts -;// CONCATENATED MODULE: ../web3-providers/src/coingecko/constants.ts -const COINGECKO_URL_BASE = 'https://api.coingecko.com/api/v3'; -;// CONCATENATED MODULE: ../web3-providers/src/coingecko/index.ts -class CoinGeckoAPI { - async getTokenPrice(tokenId, currency) { - const requestPath = `${COINGECKO_URL_BASE}/simple/price?ids=${tokenId}&vs_currencies=${currency}`; - const price = await fetch(requestPath).then((r)=>r.json() - ); - return price[tokenId]; + +const profile_instance = new WeakSet(); +const profile_id = Object.create(null); +let profile_hasInstance = Symbol.hasInstance; +/** + * Refers to a profile on a network. + */ class ProfileIdentifier extends Identifier { + static from(input) { + input = String(input); + if (input === this.unknownToText) return esm/* None */.Hq; + if (input.startsWith('person:')) return Identifier.from(input); + return esm/* None */.Hq; + } + static of(network, userID) { + if (!userID || !network) return esm/* None */.Hq; + if (network === type/* EnhanceableSite.Localhost */.J.Localhost && userID === '$unknown') return esm/* None */.Hq; + return (0,esm/* Some */.bD)(new ProfileIdentifier(network, userID)); } - async getTokensPrice(tokenIds, currency) { - const requestPath = `${COINGECKO_URL_BASE}/simple/price?ids=${tokenIds}&vs_currencies=${currency}`; - return fetch(requestPath).then((r)=>r.json() - ); + toText() { + return `person:${this.network}/${this.userId}`; + } + static [profile_hasInstance](x) { + return profile_instance.has(x); + } + constructor(network, userID){ + if (network === type/* EnhanceableSite.Localhost */.J.Localhost && userID === '$unknown') { + throw new TypeError('[@masknet/shared-base] Please use null instead.'); + } + network = String(network); + userID = String(userID); + if (!userID) throw new TypeError('[@masknet/shared-base] userID cannot be empty.'); + const networkCache = profile_id[network] ??= {}; + if (networkCache[userID]) return networkCache[userID]; + banSlash(network); + banSlash(userID); + super(); + this.network = network; + this.userId = userID; + Object.freeze(this); + networkCache[userID] = this; + profile_instance.add(this); } } +/** @deprecated Avoid using it */ ProfileIdentifier.unknownToText = 'person:localhost/$unknown'; +ProfileIdentifier.prototype[Symbol.toStringTag] = 'ProfileIdentifier'; +Object.freeze(ProfileIdentifier.prototype); +Object.freeze(ProfileIdentifier); +;// CONCATENATED MODULE: ../shared-base/src/Identifier/map.ts -/***/ }), -/***/ 97051: -/***/ ((__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) => { -"use strict"; -// UNUSED EXPORTS: getAssetListFromDebank -// EXTERNAL MODULE: ../../node_modules/.pnpm/urlcat@2.0.4/node_modules/urlcat/dist/index.js -var dist = __webpack_require__(19802); -// EXTERNAL MODULE: ../plugin-infra/src/entry-web3.ts -var entry_web3 = __webpack_require__(67071); -// EXTERNAL MODULE: ../web3-shared/base/src/index.ts + 7 modules -var src = __webpack_require__(89260); -// EXTERNAL MODULE: ../web3-constants/evm/debank.json -var debank = __webpack_require__(60816); -;// CONCATENATED MODULE: ../web3-providers/src/debank/format.ts +function convertRawMapToIdentifierMap(it, ...of) { + const hasProfileIdentifier = of.includes(ProfileIdentifier); + const hasECKeyIdentifier = of.includes(ECKeyIdentifier); + const hasPostIdentifier = of.includes(PostIdentifier); + const hasPostIVIdentifier = of.includes(PostIVIdentifier); + const result = new Map(); + const droppedValues = new Map(); + for (const [key, value] of it){ + const id = Identifier.from(key); + if (id.none) { + droppedValues.set(key, value); + continue; + } + if (hasProfileIdentifier && id.val instanceof ProfileIdentifier) result.set(id.val, value); + else if (hasECKeyIdentifier && id.val instanceof ECKeyIdentifier) result.set(id.val, value); + else if (hasPostIdentifier && id.val instanceof PostIdentifier) result.set(id.val, value); + else if (hasPostIVIdentifier && id.val instanceof PostIVIdentifier) result.set(id.val, value); + else droppedValues.set(key, value); + } + if (droppedValues.size) { + console.warn('[@masknet/shared-base] identifierRawMapToMap: Some value violates the constraint. Dropped values: ', droppedValues, 'constraints:', of); + } + return result; +} +function convertIdentifierMapToRawMap(map) { + const result = new Map(); + for (const [key, value] of map){ + result.set(key.toText(), value); + } + return result; +} +;// CONCATENATED MODULE: ../shared-base/src/Identifier/index.ts -function format_formatAssets(data) { - const supportedChains = Object.values(DeBank.CHAIN_ID).filter(Boolean); - const result = data.reduce((list, y)=>{ - if (!y.is_verified) return list; - const chainIdFromChain = getChainIdFromName(y.chain); - if (!chainIdFromChain) return list; - const address = supportedChains.includes(y.id) ? createNativeToken(chainIdFromChain).address : y.id; - return [ - ...list, - { - id: address, - chainId: chainIdFromChain, - token: { - id: address, - address: address, - chainId: chainIdFromChain, - type: TokenType.Fungible, - decimals: y.decimals, - name: y.name, - symbol: y.symbol, - logoURI: y.logo_url - }, - balance: rightShift(y.amount, y.decimals).toFixed(), - price: { - [CurrencyType.USD]: toFixed(y.price) - }, - value: { - [CurrencyType.USD]: multipliedBy(y.price ?? 0, y.amount).toFixed() - }, - logoURI: y.logo_url - }, - ]; - }, []); - return result; -} -;// CONCATENATED MODULE: ../web3-providers/src/debank/index.ts -const DEBANK_OPEN_API = 'https://openapi.debank.com'; -async function getAssetListFromDebank(address) { - const response = await fetch(urlcat(DEBANK_OPEN_API, '/v1/user/token_list', { - is_all: true, - has_balance: true, - id: address.toLowerCase() - })); - try { - const result = await response.json() ?? []; - return formatAssets(result.map((x)=>({ - ...x, - id: x.id === 'bsc' ? 'bnb' : x.id, - chain: x.chain === 'bsc' ? 'bnb' : x.chain - }) - )); - } catch { - return []; - } -} /***/ }), -/***/ 89958: +/***/ 71521: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "K": () => (/* binding */ RelationFavor) +/* harmony export */ }); +var RelationFavor; +(function(RelationFavor) { + RelationFavor[RelationFavor["COLLECTED"] = -1] = "COLLECTED"; + RelationFavor[RelationFavor["UNCOLLECTED"] = 1] = "UNCOLLECTED"; + RelationFavor[RelationFavor["DEPRECATED"] = 0] = "DEPRECATED"; +})(RelationFavor || (RelationFavor = {})); -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - "b": () => (/* binding */ NativeExplorerAPI) -}); -// EXTERNAL MODULE: ../../node_modules/.pnpm/urlcat@2.0.4/node_modules/urlcat/dist/index.js -var dist = __webpack_require__(19802); -var dist_default = /*#__PURE__*/__webpack_require__.n(dist); -;// CONCATENATED MODULE: ../web3-providers/src/explorer/helpers.ts -function toTransaction(transaction) { - return { - nonce: Number.parseInt(transaction.nonce, 10), - blockHash: transaction.blockHash, - blockNumber: Number.parseInt(transaction.blockNumber, 10), - from: transaction.from, - to: transaction.to, - gas: Number.parseInt(transaction.gas, 10), - gasPrice: transaction.gasPrice, - hash: transaction.hash, - input: transaction.input, - transactionIndex: Number.parseInt(transaction.transactionIndex, 10), - value: transaction.value, - status: transaction.txreceipt_status, - confirmations: Number.parseInt(transaction.confirmations, 10) - }; -} - -;// CONCATENATED MODULE: ../web3-providers/src/explorer/index.ts +/***/ }), +/***/ 60947: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -class NativeExplorerAPI { - async getLatestTransactions(account, url, { offset =10 , apikey } = {}) { - const response = await fetch(dist_default()(url, { - module: 'account', - action: 'txlist', - address: account.toLowerCase(), - startBlock: 0, - endblock: 999999999999, - page: 1, - offset, - sort: 'desc', - apikey - })); - const rawTransactions = await response.json(); - return rawTransactions.result?.map(toTransaction) ?? []; - } +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "p": () => (/* binding */ andThenAsync) +/* harmony export */ }); +async function andThenAsync(op, mapper) { + op = await op; + if (op.err) return op; + return mapper(op.val); } /***/ }), -/***/ 56525: +/***/ 5906: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "J": () => (/* binding */ EnhanceableSite), +/* harmony export */ "v": () => (/* binding */ ExtensionSite) +/* harmony export */ }); +var EnhanceableSite; +(function(EnhanceableSite) { + EnhanceableSite["Localhost"] = 'localhost'; + EnhanceableSite["Twitter"] = 'twitter.com'; + EnhanceableSite["Facebook"] = 'facebook.com'; + EnhanceableSite["Minds"] = 'minds.com'; + EnhanceableSite["Instagram"] = 'instagram.com'; + EnhanceableSite["OpenSea"] = 'opensea.io'; +})(EnhanceableSite || (EnhanceableSite = {})); +var ExtensionSite; +(function(ExtensionSite) { + ExtensionSite["Dashboard"] = 'dashboard'; + ExtensionSite["Popup"] = 'popup'; +})(ExtensionSite || (ExtensionSite = {})); -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - "g": () => (/* binding */ GoPlusLabsAPI) -}); -// EXTERNAL MODULE: ../web3-shared/evm/types/index.ts -var types = __webpack_require__(65506); -// EXTERNAL MODULE: ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/uniqBy.js -var uniqBy = __webpack_require__(18443); -// EXTERNAL MODULE: ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/parseInt.js -var lodash_es_parseInt = __webpack_require__(50251); -// EXTERNAL MODULE: ../../node_modules/.pnpm/urlcat@2.0.4/node_modules/urlcat/dist/index.js -var dist = __webpack_require__(19802); -var dist_default = /*#__PURE__*/__webpack_require__.n(dist); -// EXTERNAL MODULE: ../web3-providers/src/helpers.ts -var helpers = __webpack_require__(48073); -;// CONCATENATED MODULE: ../web3-providers/src/gopluslabs/constants.ts -const GO_PLUS_LABS_ROOT_URL = 'https://gopluslabs.r2d2.to'; +/***/ }), -;// CONCATENATED MODULE: ../web3-providers/src/gopluslabs/index.ts +/***/ 55995: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "PQ": () => (/* binding */ isEC_Private_JsonWebKey), +/* harmony export */ "bG": () => (/* binding */ isAESJsonWebKey), +/* harmony export */ "d8": () => (/* binding */ isEC_Public_JsonWebKey), +/* harmony export */ "mQ": () => (/* binding */ assertEC_Private_JsonWebKey) +/* harmony export */ }); +/* unused harmony exports assertAESJsonWebKey, assertEC_Public_JsonWebKey */ +function isAESJsonWebKey(x) { + if (typeof x !== 'object' || x === null) return false; + const { alg , k , key_ops , kty } = x; + if (!alg || !k || !Array.isArray(key_ops) || kty !== 'oct') return false; + return true; +} +function assertAESJsonWebKey(x) { + if (isAESJsonWebKey(x)) return; + throw new Error('Assert failed.'); +} +function isEC_Public_JsonWebKey(o) { + if (typeof o !== 'object' || o === null) return false; + const { crv , key_ops , kty , x , y } = o; + if (!crv || !Array.isArray(key_ops) || !kty || !x || !y) return false; + return true; +} +function assertEC_Public_JsonWebKey(o) { + if (isEC_Public_JsonWebKey(o)) return; + throw new Error('Assert failed.'); +} +function isEC_Private_JsonWebKey(o) { + if (!isEC_Public_JsonWebKey(o)) return false; + return !!o.d; +} +function assertEC_Private_JsonWebKey(o) { + if (isEC_Private_JsonWebKey(o)) return; + throw new Error('Assert failed.'); +} +/***/ }), +/***/ 79717: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -class GoPlusLabsAPI { - async getTokenSecurity(chainId, listOfAddress) { - const response = await (0,helpers/* fetchJSON */.ZV)(dist_default()(GO_PLUS_LABS_ROOT_URL, 'api/v1/token_security/:id', { - id: chainId, - contract_addresses: (0,uniqBy/* default */.Z)(listOfAddress, (x)=>x.toLowerCase() - ).join() - })); - if (response.code !== 1) return; - return response.result; +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "C": () => (/* binding */ createI18NBundle) +/* harmony export */ }); +function addI18NBundle(instance, namespace, langs1) { + if (!instance.addResourceBundle) throw new TypeError('Please call instance.init() first'); + try { + if (false) {} + } catch { + // ignore } - async getSupportedChain() { - const { code , result } = await (0,helpers/* fetchJSON */.ZV)(dist_default()(GO_PLUS_LABS_ROOT_URL, 'api/v1/supported_chains')); - if (code !== 1) return []; - return result.map((x)=>({ - id: (0,lodash_es_parseInt/* default */.Z)(x.id) ?? types/* ChainId.Mainnet */.a_.Mainnet, - name: x.name - }) - ); + for (const lang1 of Object.keys(langs1)){ + instance.addResourceBundle(lang1, namespace, removeEmptyString(langs1[lang1])); } } +function createI18NBundle(namespace, langs) { + return (instance)=>addI18NBundle(instance, namespace, langs) + ; +} +function removeEmptyString(lang) { + return Object.fromEntries(Object.entries(lang).filter((x)=>x[1].length + )); +} /***/ }), -/***/ 48073: +/***/ 50338: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "HN": () => (/* binding */ isProxyENV), -/* harmony export */ "ZV": () => (/* binding */ fetchJSON), -/* harmony export */ "t4": () => (/* binding */ courier) +/* harmony export */ "I": () => (/* binding */ createIndexedDB_KVStorageBackend) /* harmony export */ }); -/* harmony import */ var urlcat__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(19802); -/* harmony import */ var urlcat__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(urlcat__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var idb__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(28955); +/* harmony import */ var ts_results__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(48160); +// This package is used in jest. Import from the esm version will fail the test. +// eslint-disable-next-line no-restricted-imports -function isProxyENV() { - try { - return process.env.PROVIDER_API_ENV === 'proxy'; - } catch { - return false; + +function createIndexedDB_KVStorageBackend(dbName, onChange, beforeAutoSync = Promise.resolve()) { + let db1; + setInterval(()=>{ + if (!db1) return; + db1.close(); + db1 = undefined; + }, 1000 * 60); + async function ensureDB() { + if (!db1) db1 = await initDB(); + return db1; } -} -async function fetchJSON(requestInfo, requestInit) { - const res = await globalThis.fetch(requestInfo, requestInit); - return res.json(); -} -const CORS_PROXY = 'https://cors.r2d2.to'; -function courier(url) { - return urlcat__WEBPACK_IMPORTED_MODULE_0___default()(`${CORS_PROXY}?:url`, { - url - }); + function initDB() { + return (0,idb__WEBPACK_IMPORTED_MODULE_0__/* .openDB */ .X3)(dbName, 1, { + upgrade (db, oldVersion, newVersion, transaction) { + db.createObjectStore('store'); + } + }); + } + return { + beforeAutoSync, + async getValue (key) { + const db = await ensureDB(); + const t = db.transaction('store', 'readonly'); + if (await t.store.count(key) === 0) return ts_results__WEBPACK_IMPORTED_MODULE_1__/* .None */ .Hq; + return (0,ts_results__WEBPACK_IMPORTED_MODULE_1__/* .Some */ .bD)(await t.store.get(key)); + }, + async setValue (key, value) { + const db = await ensureDB(); + const t = db.transaction('store', 'readwrite'); + await t.store.put(value, key); + onChange(key, value); + } + }; } /***/ }), -/***/ 9030: +/***/ 65084: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "q": () => (/* binding */ createInMemoryKVStorageBackend) +/* harmony export */ }); +/* harmony import */ var ts_results__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(48160); -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - "t": () => (/* reexport */ useERC721TokenDetailedOwnerList) -}); +function createInMemoryKVStorageBackend(onChange, beforeAutoSync = Promise.resolve()) { + const storage = new Map(); + return { + beforeAutoSync, + async getValue (key) { + if (storage.has(key)) return (0,ts_results__WEBPACK_IMPORTED_MODULE_0__/* .Some */ .bD)(storage.get(key)); + return ts_results__WEBPACK_IMPORTED_MODULE_0__/* .None */ .Hq; + }, + async setValue (key, value) { + storage.set(key, value); + onChange(key, value); + } + }; +} -// UNUSED EXPORTS: ERC721_ENUMERABLE_INTERFACE_ID -// EXTERNAL MODULE: ../../node_modules/.pnpm/react-use@17.3.2_react-dom@18.0.0+react@18.0.0/node_modules/react-use/esm/useAsyncRetry.js -var useAsyncRetry = __webpack_require__(64452); -// EXTERNAL MODULE: ../../node_modules/.pnpm/wallet.ts@1.0.1/node_modules/wallet.ts/dist/index.js -var dist = __webpack_require__(99674); -// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.0.0/node_modules/react/index.js -var react = __webpack_require__(86248); -// EXTERNAL MODULE: ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/uniqBy.js -var uniqBy = __webpack_require__(18443); -// EXTERNAL MODULE: ../web3-shared/evm/hooks/useChainId.ts -var useChainId = __webpack_require__(31174); -// EXTERNAL MODULE: ../web3-shared/evm/contracts/useERC721TokenContract.ts -var useERC721TokenContract = __webpack_require__(85010); -// EXTERNAL MODULE: ../web3-shared/evm/types/index.ts -var types = __webpack_require__(65506); -// EXTERNAL MODULE: ../web3-shared/evm/utils/call.ts -var call = __webpack_require__(75000); -// EXTERNAL MODULE: ../web3-shared/evm/hooks/useERC721TokenDetailed.ts -var useERC721TokenDetailed = __webpack_require__(53465); -// EXTERNAL MODULE: ../web3-providers/src/index.ts -var src = __webpack_require__(92820); -;// CONCATENATED MODULE: ../web3-providers/src/hooks/useERC721TokenDetailedOwnerList.ts +/***/ }), + +/***/ 34953: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "G": () => (/* binding */ OnDemandWorker) +/* harmony export */ }); +// Implementation detail +/** + * A Worker-like class that create/destroy Worker on demand. + * + * The worker passed in MUST post a message "Alive" to notify the OnDemandWorker it is ready to receive message. + * This "Alive" MUST be the first message. + */ class OnDemandWorker extends EventTarget { + watchUsage() { + const i = setInterval(()=>{ + if (!this.worker) { + clearInterval(i); + return; + } + if (Date.now() - this.lastUsed > this.inactiveTimeToTerminate) { + this.log('inactive for', this.inactiveTimeToTerminate / 1000, 'sec'); + this.terminate(); + clearInterval(i); + } + }, Math.min(this.inactiveTimeToTerminate, 60 * 1000)); + } + log(...args) { + // console.log(`OnDemandWorker ${this.init[1]?.name}`, ...args) + } + use(onReady) { + this.keepAlive(); + if (this.worker) return onReady(); + this.worker = new Worker(...this.__init); + // TODO: what if the worker does not start successfully? + this.worker.addEventListener('message', ()=>{ + this.worker.addEventListener('message', (e)=>this.dispatchEvent(cloneEvent(e)) + ); + onReady(); + }, { + once: true + }); + this.worker.addEventListener('error', (e)=>this.dispatchEvent(cloneEvent(e)) + ); + this.worker.addEventListener('messageerror', (e)=>this.dispatchEvent(cloneEvent(e)) + ); + this.watchUsage(); + } + terminate() { + this.worker?.terminate(); + this.worker = undefined; + this.log('terminated'); + this.dispatchEvent(new Event('terminated')); + } + keepAlive() { + this.log('keep alive'); + this.lastUsed = Date.now(); + } + onTerminated(callback) { + this.addEventListener('terminated', callback, { + once: true + }); + return ()=>this.removeEventListener('terminated', callback) + ; + } + postMessage(...args) { + this.use(()=>this.worker?.postMessage(...args) + ); + } + set onmessage(_) { + throws(); + } + set onerror(_) { + throws(); + } + set onmessageerror(_) { + throws(); + } + /** + * A Worker-like class that create/destroy Worker on demand. + * + * The worker passed in MUST post a message "Alive" to notify the OnDemandWorker it is ready to receive message. + * This "Alive" MUST be the first message. + */ constructor(...init){ + super(); + this.worker = undefined; + this.lastUsed = Date.now(); + this.__init = init; + this.inactiveTimeToTerminate = 15 * 60 * 1000; + this.log(init[1]?.name ?? 'anonymous Worker', 'created with', ...init); + } +} +function throws() { + throw new TypeError('Please use addEventListener'); +} +function cloneEvent(e) { + // @ts-ignore + return new e.constructor(e.type, e); +} +/***/ }), +/***/ 40025: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "t5": () => (/* binding */ readableStreamRegedit) +/* harmony export */ }); +/* unused harmony exports is, serializer, deserializer */ +/* harmony import */ var typeson__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(14084); -const ERC721_ENUMERABLE_INTERFACE_ID = '0x780e9d63'; -function useERC721TokenDetailedOwnerList(contractDetailed, owner) { - const chainId = (0,useChainId/* useChainId */.xx)(); - const erc721TokenContract = (0,useERC721TokenContract/* useERC721TokenContract */.n)(contractDetailed?.address ?? ''); - const allListRef = (0,react.useRef)([]); - const [refreshing, setRefreshing] = (0,react.useState)(false); - (0,react.useEffect)(()=>{ - setRefreshing(true); - clearTokenDetailedOwnerList(); - }, [ - owner, - contractDetailed?.address - ]); - const asyncRetry = (0,useAsyncRetry/* default */.Z)(async ()=>{ - if (!erc721TokenContract || !contractDetailed?.address || !dist.EthereumAddress.isValid(contractDetailed?.address) || !owner) { - setRefreshing(false); - return; +const is = (x)=>x instanceof ReadableStream +; +const serializer = (x)=>{ + return new typeson__WEBPACK_IMPORTED_MODULE_0__/* .TypesonPromise */ .VD(async (resolve, reject)=>{ + const reader = x.getReader(); + const output = []; + let isDone = false; + if (reader) { + try { + while(!isDone){ + const { done , value } = await reader.read(); + if (!done) { + output.push(value); + } else { + isDone = true; + } + } + } catch (error) { + reject(error); + } } - const listsFromNFTScan = chainId === types/* ChainId.Mainnet */.a_.Mainnet ? await getERC721TokenDetailedOwnerListFromNFTScan(contractDetailed, owner) : []; - const lists = listsFromNFTScan.length > 0 ? listsFromNFTScan : await getERC721TokenDetailedOwnerListFromChain(erc721TokenContract, contractDetailed, owner); - allListRef.current = (0,uniqBy/* default */.Z)([ - ...allListRef.current, - ...lists - ], 'tokenId'); - setRefreshing(false); - }, [ - contractDetailed, - owner, - chainId - ]); - const clearTokenDetailedOwnerList = ()=>allListRef.current = [] - ; + resolve(output); + }); +}; +const deserializer = (x)=>{ + return new ReadableStream({ + start (controller) { + for (const binary of x){ + controller.enqueue(binary); + } + controller.close(); + } + }); +}; +const readableStreamRegedit = [ + is, + serializer, + deserializer +]; + + +/***/ }), + +/***/ 5294: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "qf": () => (/* binding */ requestRegedit) +/* harmony export */ }); +/* unused harmony exports is, serializer, deserializer */ +const is = (x)=>x instanceof Request +; +const serializer = (x)=>{ + const { url , method , body , headers , mode , credentials , cache , redirect , referrer , integrity } = x; return { - asyncRetry, - tokenDetailedOwnerList: allListRef.current, - clearTokenDetailedOwnerList, - refreshing + input: url, + init: { + method, + // body maybe is a Blob, a BufferSource, a FormData, a URLSearchParams, a string, or a ReadableStream object, should handle different object type later + body, + headers, + mode, + credentials, + cache, + redirect, + referrer, + integrity + } }; -} -async function getERC721TokenDetailedOwnerListFromChain(erc721TokenContract, contractDetailed, owner) { - const isEnumerable = await (0,call/* safeNonPayableTransactionCall */.Y)(erc721TokenContract.methods.supportsInterface(ERC721_ENUMERABLE_INTERFACE_ID)); - const balance = await (0,call/* safeNonPayableTransactionCall */.Y)(erc721TokenContract.methods.balanceOf(owner)); - if (!isEnumerable || !balance) return []; - const allRequest = Array.from({ - length: Number.parseInt(balance, 10) - }, async (_v, i)=>{ - const tokenId = await (0,call/* safeNonPayableTransactionCall */.Y)(erc721TokenContract.methods.tokenOfOwnerByIndex(owner, i)); - if (!tokenId) return; - return (0,useERC721TokenDetailed/* getERC721TokenDetailedFromChain */.qY)(contractDetailed, erc721TokenContract, tokenId, owner, false); - }); - return (await Promise.allSettled(allRequest)).map((x)=>x.status === 'fulfilled' ? x.value : undefined - ).filter((value)=>value - ); -} -async function getERC721TokenDetailedOwnerListFromNFTScan(contractDetailed, owner) { - let allTokenList = []; - let _hasNextPage = true; - let page = 0; - while(_hasNextPage){ - const { data , hasNextPage } = await src/* NFTScan.getTokenDetailedOwnerList */.jo.getTokenDetailedOwnerList(owner, contractDetailed, 100, page); - page += 1; - _hasNextPage = hasNextPage; - allTokenList = allTokenList.concat(data); - } - return (0,uniqBy/* default */.Z)(allTokenList, 'tokenId'); -} +}; +const deserializer = (x)=>{ + return new Request(x.input, x.init); +}; +const requestRegedit = [ + is, + serializer, + deserializer +]; + -;// CONCATENATED MODULE: ../web3-providers/src/hooks/index.ts +/***/ }), + +/***/ 16761: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "R7": () => (/* binding */ responseRegedit) +/* harmony export */ }); +/* unused harmony exports is, serializer, deserializer */ +const is = (x)=>x instanceof Response +; +const serializer = (x)=>{ + return { + body: x.body, + init: { + status: x.status, + statusText: x.statusText, + headers: x.headers + } + }; +}; +const deserializer = (x)=>{ + const body = new ReadableStream({ + start (controller) { + for (const binary of x.body){ + controller.enqueue(binary); + } + controller.close(); + } + }); + return new Response(body, x.init); +}; +const responseRegedit = [ + is, + serializer, + deserializer +]; /***/ }), -/***/ 59654: +/***/ 98508: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "l": () => (/* binding */ InstagramAPI) +/* harmony export */ "D": () => (/* binding */ flattenAsyncIterator), +/* harmony export */ "S": () => (/* binding */ asyncIteratorToArray) /* harmony export */ }); -const UPLOAD_AVATAR_URL = 'https://www.instagram.com/accounts/web_change_profile_picture/'; -function getCSRFToken() { - const csrfToken = document.cookie.split('; ').find((x)=>x.includes('csrftoken') - ); - if (!csrfToken) return ''; - const [, value] = csrfToken.split('='); - return value; +async function asyncIteratorToArray(iterable) { + if (!iterable) return []; + const arr = []; + for await (const x of iterable)if (!(x instanceof Error)) arr.push(x); + return arr; } -class InstagramAPI { - async uploadUserAvatar(image, userId) { - const formData = new FormData(); - const csrfToken = getCSRFToken(); - formData.append('profile_pic', image); - const response = await fetch(UPLOAD_AVATAR_URL, { - method: 'POST', - mode: 'cors', - headers: { - 'x-csrfToken': csrfToken, - referer: `https://www.instagram.com/${userId}/` - }, - body: formData - }); - return response.json(); - } +async function* flattenAsyncIterator(iterables) { + for (const x of iterables)yield* x; } /***/ }), -/***/ 58106: +/***/ 12395: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "a": () => (/* binding */ createValueRefWithReady) +/* harmony export */ }); +/* harmony import */ var _dimensiondev_kit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(46123); +/* harmony import */ var _dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(88967); +/* harmony import */ var _dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_1__); -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - "Z": () => (/* binding */ KeyValueAPI) -}); - -// UNUSED EXPORTS: JSON_Storage -// EXTERNAL MODULE: ../../node_modules/.pnpm/urlcat@2.0.4/node_modules/urlcat/dist/index.js -var dist = __webpack_require__(19802); -var dist_default = /*#__PURE__*/__webpack_require__.n(dist); -// EXTERNAL MODULE: ../web3-providers/src/helpers.ts -var helpers = __webpack_require__(48073); -;// CONCATENATED MODULE: ../web3-providers/src/kv/constants.ts -const KV_ROOT_URL = 'https://kv.r2d2.to'; +function createValueRefWithReady(value, comparer = (a, b)=>a === b +) { + const settings = new _dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_1__.ValueRef(value, comparer); + const [readyPromise, resolve] = (0,_dimensiondev_kit__WEBPACK_IMPORTED_MODULE_0__/* .defer */ .PQ)(); + Object.assign(settings, { + readyPromise, + ready: false + }); + readyPromise.then(()=>{ + Object.assign(settings, { + ready: true + }); + }); + settings.addListener((newValue)=>resolve(newValue) + ); + return settings; +} -;// CONCATENATED MODULE: ../web3-providers/src/kv/index.ts +/***/ }), +/***/ 5646: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -class JSON_Storage { - async get(key) { - try { - return (0,helpers/* fetchJSON */.ZV)(dist_default()(KV_ROOT_URL, 'api/:name', { - name: `${this.prefix}_${key}` - }), { - method: 'GET', - headers: { - 'Content-Type': 'application/json' - } - }); - } catch { - return; - } - } - async set(key, value) { - await fetch(dist_default()(KV_ROOT_URL, 'api/:name', { - name: `${this.prefix}_${key}` - }), { - method: 'PUT', - mode: 'cors', - headers: { - 'Content-Type': 'application/json' - }, - body: JSON.stringify(value) - }); - } - constructor(prefix){ - this.prefix = prefix; - } +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "K": () => (/* binding */ isDashboardPage), +/* harmony export */ "N": () => (/* binding */ isPopupPage) +/* harmony export */ }); +function isPopupPage() { + return location.protocol.includes('extension') && location.href.includes('popups.html'); } -class KeyValueAPI { - createJSON_Storage(key) { - return new JSON_Storage(key); - } +function isDashboardPage() { + return location.protocol.includes('extension') && location.href.includes('dashboard.html'); } /***/ }), -/***/ 89703: +/***/ 77489: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "$": () => (/* binding */ getAssetAsBlobURL) +/* harmony export */ }); +const cache = new Map(); +/** + * Fetch a file and turn it into blob URL. + * This function must run in React concurrent mode. + */ function getAssetAsBlobURL(url, fetcher) { + url = url.toString(); + if (!cache.has(url)) throw toBlob(url, fetcher); + return cache.get(url); +} +async function toBlob(url, fetcher) { + const blobURL = URL.createObjectURL(await fetcher(url)); + cache.set(url, blobURL); + return blobURL; +} -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - "rQ": () => (/* binding */ OpenSeaAPI) -}); -// UNUSED EXPORTS: getOpenSeaCollectionList, getOpenSeaNFTList +/***/ }), -// EXTERNAL MODULE: ../web3-shared/evm/types/index.ts -var types = __webpack_require__(65506); -// EXTERNAL MODULE: ../web3-shared/evm/utils/token.ts -var utils_token = __webpack_require__(33690); -// EXTERNAL MODULE: ../../node_modules/.pnpm/bignumber.js@9.0.2/node_modules/bignumber.js/bignumber.js -var bignumber = __webpack_require__(42263); -var bignumber_default = /*#__PURE__*/__webpack_require__.n(bignumber); -// EXTERNAL MODULE: ../../node_modules/.pnpm/date-fns@2.28.0/node_modules/date-fns/esm/fromUnixTime/index.js -var fromUnixTime = __webpack_require__(98162); -// EXTERNAL MODULE: ../../node_modules/.pnpm/date-fns@2.28.0/node_modules/date-fns/esm/isAfter/index.js -var isAfter = __webpack_require__(91518); -// EXTERNAL MODULE: ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/head.js -var head = __webpack_require__(29730); -// EXTERNAL MODULE: ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/uniqBy.js -var uniqBy = __webpack_require__(18443); -// EXTERNAL MODULE: ../../node_modules/.pnpm/urlcat@2.0.4/node_modules/urlcat/dist/index.js -var dist = __webpack_require__(19802); -var dist_default = /*#__PURE__*/__webpack_require__.n(dist); -// EXTERNAL MODULE: ../web3-providers/src/opensea/utils.ts -var utils = __webpack_require__(80529); -;// CONCATENATED MODULE: ../web3-providers/src/opensea/constants.ts -const OPENSEA_ACCOUNT_URL = 'https://opensea.io/accounts/:address'; -const OPENSEA_API_KEY = 'c38fe2446ee34f919436c32db480a2e3'; -const OPENSEA_API_URL = 'https://api.opensea.io'; +/***/ 67149: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -// EXTERNAL MODULE: ../web3-providers/src/helpers.ts -var helpers = __webpack_require__(48073); -;// CONCATENATED MODULE: ../web3-providers/src/opensea/index.ts +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "H": () => (/* binding */ SessionStorageCache) +/* harmony export */ }); +const SessionStorageCache = { + get (scope, key) { + return sessionStorage.getItem(`${scope}:${key}`); + }, + set (scope, key, value) { + return sessionStorage.setItem(`${scope}:${key}`, value); + }, + remove (scope, key) { + return sessionStorage.removeItem(`${scope}:${key}`); + } +}; +/***/ }), +/***/ 2167: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "u": () => (/* binding */ AddressViewer) +/* harmony export */ }); +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35667); +/* harmony import */ var _masknet_theme__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(31939); +/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(21784); +/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(96436); +/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(28257); +/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(13231); +/* harmony import */ var _mui_icons_material_InfoOutlined__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(37230); +/* harmony import */ var _masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(67938); +/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(94861); +/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(72499); +/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(5326); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(77818); -async function fetchFromOpenSea(url, chainId, apiKey) { - if (![ - types/* ChainId.Mainnet */.a_.Mainnet, - types/* ChainId.Rinkeby */.a_.Rinkeby - ].includes(chainId)) return; - try { - const response = await fetch(dist_default()(OPENSEA_API_URL, url), { - method: 'GET', - headers: { - 'x-api-key': apiKey ?? OPENSEA_API_KEY, - Accept: 'application/json' - }, - ...!(0,helpers/* isProxyENV */.HN)() && { - mode: 'cors' - } - }); - if (response.ok) { - return await response.json(); - } - return; - } catch { - return; - } -} -function createERC721ContractFromAssetContract(address, chainId, assetContract) { - return (0,utils_token/* createERC721ContractDetailed */.ek)(chainId, assetContract?.address ?? '', assetContract?.name, assetContract?.token_symbol, undefined, assetContract?.image_url); -} -function createERC721TokenFromAsset(address, tokenId, chainId, asset) { - const imageURL = (asset?.image_preview_url ?? asset?.image_url) ?? ''; - return (0,utils_token/* createERC721Token */.Of)(createERC721ContractFromAssetContract(asset?.asset_contract?.address, chainId, asset?.asset_contract), { - name: (asset?.name ?? asset?.asset_contract.name) ?? '', - description: asset?.description ?? '', - imageURL, - mediaUrl: asset?.animation_url ?? (0,utils/* toImage */.Np)(asset?.image_original_url ?? imageURL), - owner: asset?.owner.address ?? '' - }, tokenId, { - name: asset.collection.name, - image: asset.collection.image_url || undefined, - slug: asset.collection.slug - }); -} -function createTokenDetailed(chainId, token) { - if (token.symbol === 'ETH') return (0,utils_token/* createNativeToken */.$c)(chainId); - return (0,utils_token/* createERC20Token */.wY)(chainId, token.address, token.decimals, token.name, token.symbol); -} -function createAssetLink(account) { - if (!account) return ''; - return dist_default()(OPENSEA_ACCOUNT_URL, { - address: account?.user?.username ?? account?.address - }); -} -function createNFTAsset(asset, chainId) { - const desktopOrder = (0,head/* default */.Z)(asset.orders?.sort((a, b)=>new (bignumber_default())((0,utils/* getOrderUSDPrice */.t6)(b.current_price, b.payment_token_contract?.usd_price) ?? 0).minus((0,utils/* getOrderUSDPrice */.t6)(a.current_price, a.payment_token_contract?.usd_price) ?? 0).toNumber() - )); - return { - is_verified: [ - 'approved', - 'verified' - ].includes(asset.collection?.safelist_request_status ?? ''), - // it's an IOS string as my inspection - is_auction: (0,isAfter/* default */.Z)(Date.parse(`${asset.endTime ?? ''}Z`), Date.now()), - image_url: (((asset.animation_url ?? asset.image_original_url) ?? asset.image_url) ?? asset.image_preview_url) ?? '', - asset_contract: { - name: asset.asset_contract.name, - description: asset.asset_contract.description, - schemaName: asset.asset_contract.schema_name - }, - current_price: desktopOrder ? new (bignumber_default())((0,utils/* getOrderUnitPrice */.bb)(desktopOrder.current_price, desktopOrder.payment_token_contract?.decimals, desktopOrder.quantity) ?? 0).toNumber() : null, - current_symbol: desktopOrder?.payment_token_contract?.symbol ?? 'ETH', - owner: { - ...asset.owner, - link: createAssetLink(asset.owner) + + +const useStyles = (0,_masknet_theme__WEBPACK_IMPORTED_MODULE_1__/* .makeStyles */ .ZL)()((theme)=>({ + root: { + padding: `0 ${theme.spacing(1)}`, + textAlign: 'right' }, - creator: { - ...asset.creator, - link: createAssetLink(asset.creator) + text: { + paddingTop: 36, + paddingBottom: 36, + '& > p': { + color: (0,_masknet_theme__WEBPACK_IMPORTED_MODULE_1__/* .getMaskColor */ .nb)(theme).textPrimary + } }, - token_id: asset.token_id, - token_address: asset.token_address, - traits: asset.traits, - safelist_request_status: asset.collection?.safelist_request_status ?? '', - description: asset.description, - name: asset.name ?? asset.collection.name, - collection_name: asset.collection.name, - animation_url: asset.animation_url, - end_time: asset.endTime ? new Date(asset.endTime) : desktopOrder ? (0,fromUnixTime/* default */.Z)(desktopOrder.listing_time) : null, - order_payment_tokens: desktopOrder?.payment_token_contract ? [ - createTokenDetailed(chainId, desktopOrder.payment_token_contract) - ] : [], - offer_payment_tokens: (0,uniqBy/* default */.Z)(asset.collection.payment_tokens.map((x)=>createTokenDetailed(chainId, x) - ), (x)=>x.address.toLowerCase() - ).filter((x)=>x.type === types/* EthereumTokenType.ERC20 */.Dr.ERC20 - ), - slug: asset.collection.slug, - desktopOrder, - top_ownerships: asset.top_ownerships.map((x)=>({ - owner: { - address: x.owner.address, - profile_img_url: x.owner.profile_img_url, - user: { - username: x.owner.user?.username ?? '' - }, - link: '' - } - }) - ), - collection: asset.collection, - response_: asset, - last_sale: asset.last_sale - }; -} -function createNFTHistory(event) { - const accountPair = event.event_type === 'successful' ? { - from: { - username: event.seller?.user?.username, - address: event.seller?.address, - imageUrl: event.seller?.profile_img_url, - link: createAssetLink(event.seller) + icon: { + color: (0,_masknet_theme__WEBPACK_IMPORTED_MODULE_1__/* .getMaskColor */ .nb)(theme).textPrimary }, - to: { - username: event.winner_account?.user?.username, - address: event.winner_account?.address, - imageUrl: event.winner_account?.profile_img_url, - link: createAssetLink(event.winner_account) - } - } : { - from: { - username: event.from_account?.user?.username, - address: event.from_account?.address, - imageUrl: event.from_account?.profile_img_url, - link: createAssetLink(event.from_account) + iconContainer: { + display: 'inherit' }, - to: { - username: event.to_account?.user?.username, - address: event.to_account?.address, - imageUrl: event.to_account?.profile_img_url, - link: createAssetLink(event.to_account) + tipList: { + listStyleType: 'decimal', + paddingLeft: 16 } + }) +); +function AddressViewer({ identityAddress }) { + const t = (0,___WEBPACK_IMPORTED_MODULE_3__/* .useSharedI18N */ .B_)(); + const { classes } = useStyles(); + const { type , label , address } = identityAddress; + const typeMap = { + [_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_2__/* .SocialAddressType.ADDRESS */ .bN.ADDRESS]: t.address_viewer_address_name_address(), + [_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_2__/* .SocialAddressType.ENS */ .bN.ENS]: t.address_viewer_address_name_ens(), + [_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_2__/* .SocialAddressType.UNS */ .bN.UNS]: t.address_viewer_address_name_uns(), + [_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_2__/* .SocialAddressType.DNS */ .bN.DNS]: t.address_viewer_address_name_dns(), + [_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_2__/* .SocialAddressType.RSS3 */ .bN.RSS3]: t.address_viewer_address_name_rns(), + [_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_2__/* .SocialAddressType.KV */ .bN.KV]: t.address_viewer_address_name_address(), + [_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_2__/* .SocialAddressType.GUN */ .bN.GUN]: t.address_viewer_address_name_address(), + [_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_2__/* .SocialAddressType.NEXT_ID */ .bN.NEXT_ID]: t.address_viewer_address_name_address(), + [_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_2__/* .SocialAddressType.THE_GRAPH */ .bN.THE_GRAPH]: t.address_viewer_address_name_address(), + [_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_2__/* .SocialAddressType.TWITTER_BLUE */ .bN.TWITTER_BLUE]: t.address_viewer_address_name_twitter(), + [_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_2__/* .SocialAddressType.SOL */ .bN.SOL]: t.address_viewer_address_name_sol() }; - return { - id: event.id, - accountPair, - price: { - quantity: event.quantity, - asset: event.asset, - paymentToken: event.payment_token, - price: (event.bid_amount ?? event.ending_price) ?? event.starting_price - }, - eventType: event.event_type, - transactionBlockExplorerLink: event.transaction?.blockExplorerLink, - timestamp: new Date(`${event.created_date}Z`).getTime() - }; -} -function createAssetOrder(order) { - return { - created_time: order.created_time, - current_price: order.current_price, - current_bounty: order.current_bounty, - maker_account: { - ...order.maker, - link: '' - }, - taker_account: { - ...order.taker, - link: '' + const rulesTipMap = [ + t.address_viewer_binding_rule1(), + t.address_viewer_binding_rule2(), + t.address_viewer_binding_rule3(), + t.address_viewer_binding_rule4(), + ]; + const tooltipRender = /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", { + style: { + textAlign: 'left' }, - payment_token: order.payment_token, - payment_token_contract: order.payment_token_contract, - fee_recipient_account: order.fee_recipient, - cancelled_or_finalized: order.cancelled || order.finalized, - marked_invalid: order.marked_invalid, - approved_on_chain: order.approved_on_chain, - listing_time: order.listing_time, - side: order.side, - quantity: order.quantity, - expiration_time: order.expiration_time, - order_hash: order.order_hash - }; -} -class OpenSeaAPI { - async getAsset(address, tokenId, { chainId =types/* ChainId.Mainnet */.a_.Mainnet } = {}) { - const requestPath = dist_default()('/api/v1/asset/:address/:tokenId', { - address, - tokenId - }); - const response = await fetchFromOpenSea(requestPath, chainId); - if (!response) return; - return createNFTAsset(response, chainId); - } - async getContract(address, chainId) { - const requestPath = dist_default()('/api/v1/asset_contract/:address', { - address - }); - const assetContract = await fetchFromOpenSea(requestPath, chainId); - return createERC721ContractFromAssetContract(address, chainId, assetContract); - } - async getToken(address, tokenId, chainId) { - const requestPath = dist_default()('/api/v1/asset/:address/:tokenId', { - address, - tokenId - }); - const response = await fetchFromOpenSea(requestPath, chainId); - if (!response) return; - return createERC721TokenFromAsset(address, tokenId, chainId, response); - } - async getTokens(from, opts) { - const { chainId =types/* ChainId.Mainnet */.a_.Mainnet , page =0 , size =50 } = opts; - const requestPath = dist_default()('/api/v1/assets', { - owner: from, - offset: page * size, - limit: size, - collection: opts.pageInfo?.collection - }); - const response = await fetchFromOpenSea(requestPath, chainId, this._apiKey); - const assets = response?.assets?.filter((x)=>[ - 'non-fungible', - 'semi-fungible' - ].includes(x.asset_contract.asset_contract_type) || [ - 'ERC721', - 'ERC1155' - ].includes(x.asset_contract.schema_name) - ).map((asset)=>createERC721TokenFromAsset(from, asset.token_id, chainId, asset) - ).map((x)=>({ - ...x, - provideBy: 'OpenSea' - }) - ) ?? []; - return { - data: assets, - hasNextPage: assets.length === size - }; - } - async getHistory(address, tokenId, { chainId =types/* ChainId.Mainnet */.a_.Mainnet , page , size } = {}) { - const requestPath = dist_default()('/api/v1/events', { - asset_contract_address: address, - token_id: tokenId, - offset: page, - limit: size - }); - const response = await fetchFromOpenSea(requestPath, chainId); - return response?.asset_events?.map(createNFTHistory) ?? []; - } - async getOrders(address, tokenId, side, { chainId =types/* ChainId.Mainnet */.a_.Mainnet , page , size } = {}) { - const requestPath = dist_default()('/wyvern/v1/orders', { - asset_contract_address: address, - token_id: tokenId, - side, - offset: page, - limit: size - }); - const response = await fetchFromOpenSea(requestPath, chainId); - return response?.orders?.map(createAssetOrder) ?? []; - } - async getCollections(address, opts = {}) { - const { chainId =types/* ChainId.Mainnet */.a_.Mainnet , page =0 , size =50 } = opts; - const requestPath = dist_default()('/api/v1/collections', { - asset_owner: address, - offset: page * size, - limit: size - }); - const response = await fetchFromOpenSea(requestPath, chainId, this._apiKey); - if (!response) { - return { - data: [], - hasNextPage: false - }; - } - const collections = response?.map((x1)=>({ - name: x1.name, - image: x1.image_url || undefined, - slug: x1.slug, - id: x1.slug, - chainId, - symbol: x1.primary_asset_contracts?.[0]?.symbol, - address: x1.primary_asset_contracts?.[0]?.address, - // workaround: rarible collection have multi contract - addresses: x1.primary_asset_contracts?.map((x)=>x.address - ), - iconURL: x1.image_url, - balance: x1.owned_asset_count + children: [ + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z, { + variant: "body2", + children: t.address_viewer_binding_rules_title() + }), + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("ul", { + className: classes.tipList, + children: rulesTipMap.map((item, index)=>/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("li", { + children: item + }, index) + ) }) - ) ?? []; - return { - data: collections, - hasNextPage: collections.length === size - }; - } - constructor(apiKey){ - this._apiKey = apiKey; - } -} -function getOpenSeaNFTList(apiKey, address, page, size) { - const opensea = new OpenSeaAPI(apiKey); - return opensea.getTokens(address, { - page, - size + ] }); -} -function getOpenSeaCollectionList(apiKey, address, page, size) { - const opensea = new OpenSeaAPI(apiKey); - return opensea.getCollections(address, { - page, - size + if (!address) return null; + return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z, { + className: classes.root, + display: "flex", + alignItems: "center", + justifyContent: "flex-end", + flexWrap: "wrap", + children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_mui_material__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z, { + display: "flex", + alignItems: "center", + children: [ + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_mui_material__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z, { + color: "textPrimary", + component: "span", + children: [ + t.address_viewer_current_display_of({ + type: typeMap[type] + }), + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, { + href: _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_7__/* .explorerResolver.addressLink */ .Nb.addressLink(_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_8__/* .ChainId.Mainnet */ .a_.Mainnet, address), + target: "_blank", + rel: "noopener noreferrer", + children: (0,_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_9__/* .formatEthereumAddress */ .j8)(label, 4) + }) + ] + }), + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", { + className: classes.iconContainer, + children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .Z, { + title: tooltipRender, + arrow: true, + placement: "top", + PopperProps: { + disablePortal: true + }, + children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_icons_material_InfoOutlined__WEBPACK_IMPORTED_MODULE_11__/* ["default"] */ .Z, { + fontSize: "small", + className: classes.icon, + sx: { + lineHeight: 1, + marginLeft: 0.5, + cursor: 'pointer' + } + }) + }) + }) + ] + }) }); } /***/ }), -/***/ 80529: +/***/ 16530: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "Np": () => (/* binding */ toImage), -/* harmony export */ "bb": () => (/* binding */ getOrderUnitPrice), -/* harmony export */ "t6": () => (/* binding */ getOrderUSDPrice) +/* harmony export */ "T": () => (/* binding */ ApplicationEntry) /* harmony export */ }); -/* harmony import */ var bignumber_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(42263); -/* harmony import */ var bignumber_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(bignumber_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(89260); -/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(55678); +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35667); +/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(83849); +/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _masknet_theme__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(31939); +/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(21784); -function getOrderUnitPrice(currentPrice, decimals, quantity) { - if (!currentPrice || !decimals || !quantity) return; - const _currentPrice = new (bignumber_js__WEBPACK_IMPORTED_MODULE_0___default())(currentPrice).div((0,_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .pow10 */ .wA)(decimals)); - const _quantity = new (bignumber_js__WEBPACK_IMPORTED_MODULE_0___default())(quantity).div((0,_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .pow10 */ .wA)((0,_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .isOne */ .P$)(quantity) ? 0 : 8)); - return _currentPrice.dividedBy(_quantity).decimalPlaces(4, 2); -} -function getOrderUSDPrice(currentPrice, usdPrice, decimals) { - if (!currentPrice || !decimals) return; - const quantity = new (bignumber_js__WEBPACK_IMPORTED_MODULE_0___default())(currentPrice).div((0,_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .pow10 */ .wA)(decimals)); - return new (bignumber_js__WEBPACK_IMPORTED_MODULE_0___default())(usdPrice ?? 0).multipliedBy(quantity).decimalPlaces(2, 2); -} -function toImage(url) { - if (!url) return ''; - if (url.startsWith('ipfs://')) { - const cid = url.replace(/^ipfs:\/\//, ''); - return (0,_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .resolveIPFSLink */ .r5)(cid); - } - return url; + +const useStyles = (0,_masknet_theme__WEBPACK_IMPORTED_MODULE_2__/* .makeStyles */ .ZL)()((theme, { disabled , iconFilterColor })=>({ + applicationBox: { + display: 'flex', + flexDirection: 'column', + justifyContent: 'center', + alignItems: 'center', + backgroundColor: theme.palette.background.default, + borderRadius: '8px', + height: 100 + }, + applicationBoxHover: { + cursor: 'pointer', + '&:hover': { + transform: 'scale(1.02) translateY(-2px)', + background: theme.palette.mode === 'light' ? theme.palette.common.white : theme.palette.common.black, + boxShadow: theme.palette.mode === 'light' ? '0px 5px 8px rgba(0, 0, 0, 0.05)' : 'none' + } + }, + applicationImg: { + width: 36, + height: 36, + marginBottom: 10 + }, + title: { + fontSize: 15 + }, + disabled: { + opacity: 0.4, + cursor: 'default !important', + pointerEvent: 'none' + }, + iconWrapper: { + '> *': { + width: 36, + height: 36 + }, + ...iconFilterColor ? { + filter: `drop-shadow(0px 6px 12px ${iconFilterColor})`, + backdropFilter: 'blur(16px)' + } : {} + }, + tooltip: { + backgroundColor: theme.palette.mode === 'light' ? theme.palette.common.black : theme.palette.common.white + }, + tooltipHint: { + fontSize: 14, + color: theme.palette.mode === 'light' ? theme.palette.common.white : theme.palette.common.black + }, + arrow: { + color: theme.palette.mode === 'light' ? theme.palette.common.black : theme.palette.common.white + }, + recommendFeatureApplicationBox: { + width: 255, + minWidth: 255, + height: 97, + marginRight: 12, + cursor: 'pointer', + display: 'inline-flex', + flexDirection: 'row', + alignItems: 'center', + justifyContent: 'space-between', + padding: 10, + borderRadius: 8 + }, + recommendFeatureAppIconWrapper: { + marginRight: 12, + '> *': { + width: 48, + height: 48 + } + }, + recommendFeatureAppListItemName: { + fontSize: 14, + fontWeight: 500, + cursor: disabled ? 'default' : 'pointer', + color: theme.palette.common.white + }, + recommendFeatureAppListItemDescription: { + fontSize: 12, + fontWeight: 500, + cursor: disabled ? 'default' : 'pointer', + color: theme.palette.common.white + } + }) +); +function ApplicationEntry(props) { + const { title , onClick , disabled =false , icon , tooltipHint , recommendFeature , iconFilterColor } = props; + const { classes } = useStyles({ + disabled, + iconFilterColor + }); + const jsx = recommendFeature ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", { + style: { + background: recommendFeature.backgroundGradient + }, + className: classnames__WEBPACK_IMPORTED_MODULE_1___default()(classes.recommendFeatureApplicationBox, disabled ? classes.disabled : classes.applicationBoxHover), + onClick: disabled ? ()=>{} : onClick, + children: [ + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", { + className: classes.recommendFeatureAppIconWrapper, + children: icon + }), + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", { + children: [ + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, { + className: classes.recommendFeatureAppListItemName, + children: title + }), + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, { + className: classes.recommendFeatureAppListItemDescription, + children: recommendFeature.description + }) + ] + }) + ] + }) : /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", { + className: classnames__WEBPACK_IMPORTED_MODULE_1___default()(classes.applicationBox, disabled ? classes.disabled : classes.applicationBoxHover), + onClick: disabled ? ()=>{} : onClick, + children: [ + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", { + className: classes.iconWrapper, + children: icon + }), + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, { + className: classes.title, + color: "textPrimary", + children: title + }) + ] + }); + return tooltipHint ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_masknet_theme__WEBPACK_IMPORTED_MODULE_2__/* .ShadowRootTooltip */ .p_, { + PopperProps: { + disablePortal: true, + placement: recommendFeature ? 'bottom' : 'top' + }, + classes: { + tooltip: classes.tooltip, + arrow: classes.arrow + }, + placement: recommendFeature ? 'bottom' : 'top', + arrow: true, + disableHoverListener: !tooltipHint, + title: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, { + className: classes.tooltipHint, + children: tooltipHint + }), + children: jsx + }) : jsx; } /***/ }), -/***/ 35825: +/***/ 60879: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; // EXPORTS __webpack_require__.d(__webpack_exports__, { - "I": () => (/* binding */ RaribleAPI) + "I": () => (/* binding */ AssetPlayer) }); -// UNUSED EXPORTS: getRaribleNFTList - -// EXTERNAL MODULE: ../../node_modules/.pnpm/urlcat@2.0.4/node_modules/urlcat/dist/index.js -var dist = __webpack_require__(19802); -var dist_default = /*#__PURE__*/__webpack_require__.n(dist); +// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.1.0/node_modules/react/jsx-runtime.js +var jsx_runtime = __webpack_require__(35667); // EXTERNAL MODULE: ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/head.js var head = __webpack_require__(29730); -// EXTERNAL MODULE: ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/compact.js -var compact = __webpack_require__(27862); -// EXTERNAL MODULE: ../web3-shared/evm/utils/enum.ts -var utils_enum = __webpack_require__(36803); -// EXTERNAL MODULE: ../web3-shared/evm/types/index.ts -var types = __webpack_require__(65506); -// EXTERNAL MODULE: ../web3-shared/evm/pipes/index.ts -var pipes = __webpack_require__(55678); -;// CONCATENATED MODULE: ../web3-providers/src/rarible/types.ts -var RARIBLE_FEATURES; -(function(RARIBLE_FEATURES) { - RARIBLE_FEATURES["APPROVE_FOR_ALL"] = "APPROVE_FOR_ALL"; - RARIBLE_FEATURES["SET_URI_PREFIX"] = "SET_URI_PREFIX"; - RARIBLE_FEATURES["BURN"] = "BURN"; - RARIBLE_FEATURES["MINT_WITH_ADDRESS"] = "MINT_WITH_ADDRESS"; - RARIBLE_FEATURES["SECONDARY_SALE_FEES"] = "SECONDARY_SALE_FEES"; -})(RARIBLE_FEATURES || (RARIBLE_FEATURES = {})); -var RaribleProfileType; -(function(RaribleProfileType) { - RaribleProfileType["USER"] = "USER"; - RaribleProfileType["COLLECTION"] = "COLLECTION"; -})(RaribleProfileType || (RaribleProfileType = {})); -var RaribleEventType; -(function(RaribleEventType) { - RaribleEventType["ORDER"] = 'order'; - RaribleEventType["BUY"] = 'buy'; - RaribleEventType["TRANSFER"] = 'transfer'; - RaribleEventType["OFFER"] = 'offer'; -})(RaribleEventType || (RaribleEventType = {})); +// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.1.0/node_modules/react/index.js +var react = __webpack_require__(58757); +// EXTERNAL MODULE: ../web3-shared/evm/constants/constants.ts + 12 modules +var constants = __webpack_require__(47104); +// EXTERNAL MODULE: ../../node_modules/.pnpm/iframe-resizer-react@1.1.0/node_modules/iframe-resizer-react/dist/index.es.js +var index_es = __webpack_require__(33164); +// EXTERNAL MODULE: ../shared/src/constants.tsx +var src_constants = __webpack_require__(89241); +// EXTERNAL MODULE: ../../node_modules/.pnpm/react-use@17.4.0/node_modules/react-use/esm/useUpdateEffect.js + 1 modules +var useUpdateEffect = __webpack_require__(40661); +// EXTERNAL MODULE: ../theme/src/entry.ts +var entry = __webpack_require__(31939); +// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.8.0_4xriuibr7qayay6mzcpq5f43me/node_modules/@mui/material/Box/Box.js +var Box = __webpack_require__(96436); +// EXTERNAL MODULE: ../icons/utils/index.tsx +var utils = __webpack_require__(50498); +;// CONCATENATED MODULE: ../icons/brands/MaskPlaceholder.tsx -;// CONCATENATED MODULE: ../web3-providers/src/rarible/constants.ts -const RaribleURL = 'https://api.rarible.com/'; -const RaribleChainURL = 'https://ethereum-api.rarible.org/'; -const RaribleUserURL = 'https://rarible.com/user/'; -const RaribleRopstenUserURL = 'https://ropsten.rarible.com/user/'; -const RaribleMainnetURL = 'https://api-mainnet.rarible.com/marketplace/api/v4/'; -const RaribleStagingMainnetAPI_URL = 'https://api-staging.rarible.com/protocol/v0.1'; -const RaribleMainnetSearchURL = 'https://api-mainnet.rarible.com/marketplace/search/v1/'; -// EXTERNAL MODULE: ../web3-providers/src/index.ts -var src = __webpack_require__(92820); -// EXTERNAL MODULE: ../web3-providers/src/helpers.ts -var helpers = __webpack_require__(48073); -;// CONCATENATED MODULE: ../web3-providers/src/rarible/index.ts +const MaskPlaceholder = (0,utils/* createPaletteAwareIcon */.t)('MaskPlaceholder', /*#__PURE__*/ (0,jsx_runtime.jsxs)("g", { + fill: "none", + children: [ + /*#__PURE__*/ (0,jsx_runtime.jsx)("path", { + d: "M18 36c9.941 0 18-8.059 18-18S27.941 0 18 0 0 8.059 0 18s8.059 18 18 18Z", + fill: "#CFD9DE" + }), + /*#__PURE__*/ (0,jsx_runtime.jsx)("path", { + fillRule: "evenodd", + clipRule: "evenodd", + d: "M28.5 13.917v5.833H10.247a7.936 7.936 0 0 0 14.861 1.75H28.5v4.9a2.1 2.1 0 0 1-2.1 2.1H9.6a2.1 2.1 0 0 1-2.1-2.1V13.917h21ZM23.094 21.5a6.177 6.177 0 0 1-5.107 2.697 6.177 6.177 0 0 1-5.108-2.697h10.215Zm-9.586-6.183a3.267 3.267 0 0 0-3.233 2.8h1.79a1.517 1.517 0 0 1 2.887 0h1.79a3.267 3.267 0 0 0-3.234-2.8Zm8.984 0a3.267 3.267 0 0 0-3.234 2.8h1.79a1.517 1.517 0 0 1 2.887 0h1.79a3.267 3.267 0 0 0-3.233-2.8ZM26.4 7.5c1.16 0 2.1.94 2.1 2.1v2.567h-21V9.6c0-1.16.94-2.1 2.1-2.1h16.8Z", + fill: "#fff" + }) + ] +}), /*#__PURE__*/ (0,jsx_runtime.jsxs)("g", { + fill: "none", + children: [ + /*#__PURE__*/ (0,jsx_runtime.jsx)("path", { + d: "M18 36c9.941 0 18-8.059 18-18S27.941 0 18 0 0 8.059 0 18s8.059 18 18 18Z", + fill: "#2F3336" + }), + /*#__PURE__*/ (0,jsx_runtime.jsx)("path", { + fillRule: "evenodd", + clipRule: "evenodd", + d: "M28.5 13.917v5.833H10.247a7.936 7.936 0 0 0 14.861 1.75H28.5v4.9a2.1 2.1 0 0 1-2.1 2.1H9.6a2.1 2.1 0 0 1-2.1-2.1V13.917h21ZM23.094 21.5a6.177 6.177 0 0 1-5.107 2.697 6.177 6.177 0 0 1-5.108-2.697h10.215Zm-9.586-6.183a3.267 3.267 0 0 0-3.233 2.8h1.79a1.517 1.517 0 0 1 2.887 0h1.79a3.267 3.267 0 0 0-3.234-2.8Zm8.984 0a3.267 3.267 0 0 0-3.234 2.8h1.79a1.517 1.517 0 0 1 2.887 0h1.79a3.267 3.267 0 0 0-3.233-2.8ZM26.4 7.5c1.16 0 2.1.94 2.1 2.1v2.567h-21V9.6c0-1.16.94-2.1 2.1-2.1h16.8Z", + fill: "#15171A" + }) + ] +}), /*#__PURE__*/ (0,jsx_runtime.jsxs)("g", { + fill: "none", + children: [ + /*#__PURE__*/ (0,jsx_runtime.jsx)("path", { + d: "M18 36c9.941 0 18-8.059 18-18S27.941 0 18 0 0 8.059 0 18s8.059 18 18 18Z", + fill: "#38444D" + }), + /*#__PURE__*/ (0,jsx_runtime.jsx)("path", { + fillRule: "evenodd", + clipRule: "evenodd", + d: "M28.5 13.917v5.833H10.247a7.936 7.936 0 0 0 14.861 1.75H28.5v4.9a2.1 2.1 0 0 1-2.1 2.1H9.6a2.1 2.1 0 0 1-2.1-2.1V13.917h21ZM23.094 21.5a6.177 6.177 0 0 1-5.107 2.697 6.177 6.177 0 0 1-5.108-2.697h10.215Zm-9.586-6.183a3.267 3.267 0 0 0-3.233 2.8h1.79a1.517 1.517 0 0 1 2.887 0h1.79a3.267 3.267 0 0 0-3.234-2.8Zm8.984 0a3.267 3.267 0 0 0-3.234 2.8h1.79a1.517 1.517 0 0 1 2.887 0h1.79a3.267 3.267 0 0 0-3.233-2.8ZM26.4 7.5c1.16 0 2.1.94 2.1 2.1v2.567h-21V9.6c0-1.16.94-2.1 2.1-2.1h16.8Z", + fill: "#18232E" + }) + ] +}), '0 0 36 36'); + +;// CONCATENATED MODULE: ../icons/general/AssetLoading.tsx + + +const AssetLoadingIcon = (0,utils/* createIcon */.I)('AssetLoadingIcon', /*#__PURE__*/ (0,jsx_runtime.jsxs)("g", { + fill: "none", + children: [ + /*#__PURE__*/ (0,jsx_runtime.jsx)("path", { + d: "M18 36c9.941 0 18-8.059 18-18S27.941 0 18 0 0 8.059 0 18s8.059 18 18 18Z", + fill: "#1C68F3" + }), + /*#__PURE__*/ (0,jsx_runtime.jsx)("path", { + fillRule: "evenodd", + clipRule: "evenodd", + d: "M28.864 13.575v5.978H9.86c.83 3.627 4.123 6.336 8.058 6.336a8.273 8.273 0 0 0 7.415-4.543h3.531v5.021c0 1.189-.979 2.152-2.186 2.152H9.186C7.98 28.52 7 27.556 7 26.367V13.575h21.864Zm-5.628 7.771a6.46 6.46 0 0 1-5.318 2.764 6.46 6.46 0 0 1-5.317-2.764h10.635Zm-9.98-6.336c-1.714 0-3.131 1.247-3.367 2.87h1.864c.205-.625.8-1.077 1.503-1.077.702 0 1.298.452 1.503 1.076h1.863c-.235-1.622-1.653-2.869-3.366-2.869Zm9.353 0c-1.714 0-3.131 1.247-3.367 2.87h1.864c.205-.625.8-1.077 1.503-1.077.702 0 1.298.452 1.503 1.076h1.863c-.235-1.622-1.653-2.869-3.366-2.869ZM26.678 7c1.207 0 2.186.963 2.186 2.152v2.63H7v-2.63C7 7.963 7.979 7 9.186 7h17.492Z", + fill: "#fff" + }), + /*#__PURE__*/ (0,jsx_runtime.jsx)("ellipse", { + cx: "18", + cy: "48", + rx: "11.5", + ry: "4", + fill: "#003EAE" + }) + ] +}), '0 0 36 52'); +;// CONCATENATED MODULE: ../shared/src/UI/components/AssetPlayer/index.tsx -const resolveRaribleUserNetwork = (0,utils_enum/* createLookupTableResolver */.F)({ - [types/* ChainId.Mainnet */.a_.Mainnet]: RaribleUserURL, - [types/* ChainId.Ropsten */.a_.Ropsten]: RaribleRopstenUserURL -}, RaribleUserURL); -async function fetchFromRarible(url, path, init) { - const response = await fetch(dist_default()(url, path), { - ...!(0,helpers/* isProxyENV */.HN)() && { - mode: 'cors' - }, - ...init - }); - return response.json(); -} -function getProfilesFromRarible(addresses) { - return fetchFromRarible(RaribleMainnetURL, '/profiles/list', { - method: 'POST', - body: JSON.stringify(addresses), - headers: { - 'content-type': 'application/json' + + + + +const useStyles = (0,entry/* makeStyles */.ZL)()({ + hidden: { + position: 'absolute', + visibility: 'hidden' + } +}); +var AssetPlayerState; +(function(AssetPlayerState) { + AssetPlayerState[AssetPlayerState["LOADING"] = 0] = "LOADING"; + AssetPlayerState[AssetPlayerState["INIT"] = 1] = "INIT"; + AssetPlayerState[AssetPlayerState["NORMAL"] = 2] = "NORMAL"; + AssetPlayerState[AssetPlayerState["ERROR"] = 3] = "ERROR"; +})(AssetPlayerState || (AssetPlayerState = {})); +const AssetPlayer = /*#__PURE__*/ (0,react.memo)((props)=>{ + const ref = (0,react.useRef)(null); + const { url , type: type1 , options , iconProps , isFixedIframeSize =true , fallbackResourceLoader } = props; + const classes = (0,entry/* useStylesExtends */.Bc)(useStyles(), props); + const [hidden, setHidden] = (0,react.useState)(Boolean(props.renderTimeout)); + const { RPC_URLS } = (0,constants/* getRPCConstants */.t0)(props.erc721Token?.chainId); + const rpc = (0,head/* default */.Z)(RPC_URLS); + const erc721Token = rpc ? { + ...props.erc721Token, + rpc + } : undefined; + const [playerState, setPlayerState] = (0,react.useState)(url || erc721Token ? AssetPlayerState.LOADING : AssetPlayerState.ERROR); + (0,react.useEffect)(()=>{ + if (!props.renderTimeout || !hidden) return; + const timer = setTimeout(()=>{ + setHidden(false); + }, props.renderTimeout); + return ()=>clearTimeout(timer) + ; + }, [ + props.renderTimeout, + hidden + ]); + // #region setup iframe when url and options be changed + const setIframe = (0,react.useCallback)(()=>{ + // if iframe isn't be init or the load error has been existed + if (!ref.current || playerState === AssetPlayerState.ERROR || playerState === AssetPlayerState.NORMAL) return; + if (!url && !erc721Token) { + setPlayerState(AssetPlayerState.ERROR); + return; } - }); -} -function createERC721TokenFromAsset(tokenAddress, tokenId, asset) { - const imageURL = (0,pipes/* resolveIPFSLinkFromURL */.Yx)((asset?.meta?.image?.url.ORIGINAL ?? asset?.meta?.image?.url.PREVIEW) ?? ''); - return { - contractDetailed: { - type: types/* EthereumTokenType.ERC721 */.Dr.ERC721, - chainId: types/* ChainId.Mainnet */.a_.Mainnet, - address: tokenAddress, - name: asset?.meta?.name ?? '', - symbol: '' - }, - info: { - name: asset?.meta?.name ?? '', - description: asset?.meta?.description ?? '', - mediaUrl: (0,pipes/* resolveIPFSLinkFromURL */.Yx)((asset?.meta?.animation?.url.ORIGINAL ?? asset?.meta?.animation?.url.PREVIEW) ?? '') || imageURL, - imageURL, - owner: asset?.owners[0] - }, - tokenId: tokenId - }; -} -function createNFTAsset(asset, chainId) { - const owner = (0,head/* default */.Z)(asset?.owners); - const creator = (0,head/* default */.Z)(asset?.creators); - return { - is_verified: false, - is_auction: false, - token_address: asset.contract, - image_url: (0,pipes/* resolveIPFSLinkFromURL */.Yx)(asset?.meta?.image?.url.ORIGINAL ?? ''), - asset_contract: null, - owner: owner ? { - address: owner, - profile_img_url: '', - user: { - username: owner - }, - link: '' - } : null, - creator: creator ? { - address: creator.account, - profile_img_url: '', - user: { - username: creator.account - }, - link: '' - } : null, - traits: asset?.meta?.attributes.map(({ key , value })=>({ - trait_type: key, - value - }) - ) ?? [], - description: asset?.meta?.description ?? '', - name: asset?.meta?.name ?? 'Unknown', - collection_name: '', - animation_url: asset.meta?.animation?.url.PREVIEW, - current_price: 0, - current_symbol: 'ETH', - end_time: null, - order_payment_tokens: [], - offer_payment_tokens: [], - top_ownerships: owner ? [ - { - owner: { - address: owner, - profile_img_url: '', - user: { - username: owner - }, - link: '' - } - }, - ] : [], - slug: '', - response_: asset, - token_id: asset.tokenId, - safelist_request_status: '', - last_sale: null - }; -} -function _getAsset(address, tokenId) { - const requestPath = dist_default()('/v0.1/nft/items/:address::tokenId', { - includeMeta: true, - address, - tokenId - }); - return fetchFromRarible(RaribleChainURL, requestPath, { - method: 'GET', - mode: 'cors', - headers: { - 'content-type': 'application/json' + if (playerState === AssetPlayerState.INIT) { + ref.current.iFrameResizer.sendMessage({ + url, + erc721Token, + type: type1, + ...options + }); + return; } - }); -} -class RaribleAPI { - async getAsset(address, tokenId, { chainId =types/* ChainId.Mainnet */.a_.Mainnet } = {}) { - const asset = await _getAsset(address, tokenId); - if (!asset) return; - return createNFTAsset(asset, chainId); - } - async getToken(tokenAddress, tokenId) { - const asset = await _getAsset(tokenAddress, tokenId); - return createERC721TokenFromAsset(tokenAddress, tokenId, asset); - } - async getTokens(from, opts) { - const requestPath = dist_default()('/protocol/v0.1/ethereum/nft/items/byOwner', { - owner: from, - size: opts.size, - ...opts.pageInfo - }); - const asset1 = await fetchFromRarible(RaribleURL, requestPath, undefined); - if (!asset1) return { - data: [], - hasNextPage: false - }; - const data = asset1.items.map((asset)=>createERC721TokenFromAsset(asset.contract, asset.tokenId, asset) - ).filter((x)=>x.info?.owner?.toLowerCase() === from.toLowerCase() - ).map((x)=>({ - ...x, - provideBy: 'Rarible' - }) - ) ?? []; - return { - data, - hasNextPage: !!asset1.continuation, - nextPageInfo: { - continuation: asset1.continuation - } - }; - } - async getOffers(tokenAddress, tokenId, { chainId =types/* ChainId.Mainnet */.a_.Mainnet } = {}) { - const requestPath = dist_default()('/items/:tokenAddress::tokenId/offers', { - tokenAddress, - tokenId - }); - const orders = await fetchFromRarible(RaribleMainnetURL, requestPath, { - method: 'POST', - body: JSON.stringify({ - size: 20 - }), - headers: { - 'content-type': 'application/json' - } - }); - const profiles = await getProfilesFromRarible(orders.map((item)=>item.maker - )); - return orders.map((order)=>{ - const ownerInfo = profiles.find((owner)=>owner.id === order.maker - ); - return { - created_time: order.updateDate, - current_price: order.buyPriceEth, - current_bounty: order.fee, - payment_token: order.token, - listing_time: 0, - side: src/* NonFungibleTokenAPI.OrderSide.Buy */.x4.OrderSide.Buy, - quantity: '1', - expiration_time: 0, - order_hash: order.signature, - approved_on_chain: false, - maker_account: { - user: { - username: ownerInfo?.name ?? '' - }, - address: ownerInfo?.id ?? '', - profile_img_url: (0,pipes/* resolveIPFSLinkFromURL */.Yx)(ownerInfo?.image ?? ''), - link: `${resolveRaribleUserNetwork(chainId)}${ownerInfo?.id ?? ''}` - } - }; - }); - } - async getListings(tokenAddress, tokenId, { chainId =types/* ChainId.Mainnet */.a_.Mainnet } = {}) { - const requestPath = dist_default()('/items/:tokenAddress::tokenId/ownerships', { - tokenAddress, - tokenId - }); - const assets = await fetchFromRarible(RaribleMainnetURL, requestPath); - const listings = assets.filter((x)=>x.selling - ); - const profiles = await getProfilesFromRarible(listings.map((x)=>x.owner - )); - return listings.map((asset)=>{ - const ownerInfo = profiles.find((owner)=>owner.id === asset.owner - ); - return { - created_time: asset.date, - approved_on_chain: false, - current_price: asset.priceEth, - payment_token: asset.token, - listing_time: 0, - side: src/* NonFungibleTokenAPI.OrderSide.Buy */.x4.OrderSide.Buy, - quantity: '1', - expiration_time: 0, - order_hash: asset.signature, - maker_account: { - user: { - username: ownerInfo?.name ?? '' - }, - address: ownerInfo?.id ?? '', - profile_img_url: (0,pipes/* resolveIPFSLinkFromURL */.Yx)(ownerInfo?.image ?? ''), - link: `${resolveRaribleUserNetwork(chainId)}${ownerInfo?.id ?? ''}` - } - }; - }); - } - async getOrders(tokenAddress, tokenId, side, opts = {}) { - switch(side){ - case src/* NonFungibleTokenAPI.OrderSide.Buy */.x4.OrderSide.Buy: - return this.getOffers(tokenAddress, tokenId, opts); - case src/* NonFungibleTokenAPI.OrderSide.Sell */.x4.OrderSide.Sell: - return this.getListings(tokenAddress, tokenId, opts); - default: - return []; + }, [ + url, + JSON.stringify(erc721Token), + type1, + JSON.stringify(options), + playerState + ]); + // #region resource loaded error + const onMessage = (0,react.useCallback)(({ message })=>{ + if (message?.name === 'Error') { + setPlayerState(AssetPlayerState.ERROR); } - } - async getHistory(tokenAddress, tokenId) { - const response = await fetchFromRarible(RaribleMainnetURL, '/activity', { - method: 'POST', - body: JSON.stringify({ - // types: ['BID', 'BURN', 'BUY', 'CANCEL', 'CANCEL_BID', 'ORDER', 'MINT', 'TRANSFER', 'SALE'], - filter: { - '@type': 'by_item', - address: tokenAddress, - tokenId - }, - size: 100 - }), - headers: { - 'content-type': 'application/json' + if (message?.type === 'webglContextLost') { + setHidden(true); + setPlayerState(AssetPlayerState.LOADING); + setTimeout(()=>setHidden(false) + , 1000); + } + if (message.message?.type === 'name') { + props.setERC721TokenName?.(message.message.name); + } + if (message.message?.type === 'sourceType') { + props.setSourceType?.(message.message.name); + } + }, []); + // #endregion + (0,useUpdateEffect/* default */.Z)(()=>{ + setIframe(); + }, [ + setIframe + ]); + // Workaround for a bug of `iframe-resizer-react`: + // When the content of iframe loaded, `IframeResizer` triggers a `size` event, + // but the `height` and `width` value of that `size` event isn't equal to the content. + // (Sometimes it doesn't matter, if the size of iframe has been set fixed already) + // Meanwhile `IframeResizer` triggers a `resize` event when the size of + // parent of iframe changed, this time the returned `height` and `width` is right. + // So resize the parent manually. + (0,react.useEffect)(()=>{ + if (playerState !== AssetPlayerState.NORMAL && isFixedIframeSize) return; + const resize = (height)=>()=>{ + if (!ref.current?.parentElement) return; + ref.current.parentElement.style.height = height; } - }); - const histories = response.filter((x)=>Object.values(RaribleEventType).includes(x['@type']) - ); - const profiles = await getProfilesFromRarible((0,compact/* default */.Z)([ - ...histories.map((history)=>history.owner - ), - ...histories.map((history)=>history.buyer - ), - ...histories.map((history)=>history.from - ), - ])); - return histories.map((history)=>{ - const ownerInfo = profiles.find((profile)=>profile.id === history.owner - ); - const fromInfo = profiles.find((profile)=>profile.id === history.buyer || profile.id === history.from - ); - return { - id: history.id, - eventType: history['@type'], - timestamp: history.date.getTime() ?? 0, - price: { - quantity: '1', - price: history.price, - asset: { - id: fromInfo?.id, - decimals: 0, - image_url: fromInfo?.image, - image_original_url: '', - image_preview_url: '', - asset_contract: { - symbol: fromInfo?.type - }, - permalink: '' - } + ; + const noSenseHeight = '100px'; + const timerOne = setTimeout(resize(noSenseHeight), 100); + const timerTwo = setTimeout(resize(''), 150); + return ()=>{ + clearTimeout(timerOne); + clearTimeout(timerTwo); + }; + }, [ + playerState, + ref.current + ]); + (0,react.useEffect)(()=>{ + if (playerState === AssetPlayerState.NORMAL) { + ref.current?.iFrameResizer.sendMessage({ + loaded: true + }); + } + }, [ + playerState, + ref.current + ]); + const IframeResizerMemo = (0,react.useMemo)(()=>hidden ? null : /*#__PURE__*/ (0,jsx_runtime.jsx)(index_es/* default */.Z, { + src: src_constants/* mediaViewerUrl */.n2, + onInit: (iframe)=>{ + ref.current = iframe; + setPlayerState(AssetPlayerState.INIT); + setIframe(); + }, + className: ![ + AssetPlayerState.NORMAL, + AssetPlayerState.INIT + ].includes(playerState) ? classes.hidden : classes.iframe, + onResized: ({ type })=>{ + if (type === 'init' || playerState === AssetPlayerState.NORMAL) return; + setPlayerState(AssetPlayerState.NORMAL); + }, + style: { + width: playerState !== AssetPlayerState.NORMAL ? 0 : undefined, + height: playerState !== AssetPlayerState.NORMAL ? 0 : undefined + }, + checkOrigin: false, + onMessage: onMessage, + frameBorder: "0", + resizeFrom: "child", + allow: "autoplay", + allowFullScreen: true + }) + , [ + hidden, + playerState, + classes, + src_constants/* mediaViewerUrl */.n2 + ]); + return /*#__PURE__*/ (0,jsx_runtime.jsxs)(jsx_runtime.Fragment, { + children: [ + /*#__PURE__*/ (0,jsx_runtime.jsx)(Box/* default */.Z, { + className: playerState === AssetPlayerState.ERROR ? classes.errorPlaceholder : classes.loadingPlaceholder, + style: { + display: [ + AssetPlayerState.NORMAL, + AssetPlayerState.INIT + ].includes(playerState) ? 'none' : undefined }, - accountPair: { - from: { - username: fromInfo?.name, - address: fromInfo?.id, - imageUrl: fromInfo?.image, - link: '' - }, - to: { - username: ownerInfo?.name, - address: ownerInfo?.id, - imageUrl: ownerInfo?.image, - link: '' - } - } - }; - }); - } -} -function getRaribleNFTList(address, page, size, pageInfo) { - const rarible = new RaribleAPI(); - return rarible.getTokens(address, { - page, - size, - pageInfo + children: playerState === AssetPlayerState.ERROR ? props.fallbackResourceLoader ?? (props.fallbackImage ? /*#__PURE__*/ (0,jsx_runtime.jsx)("img", { + className: classes.loadingFailImage, + src: props.fallbackImage.toString() + }) : /*#__PURE__*/ (0,jsx_runtime.jsx)(MaskPlaceholder, { + className: classes.errorIcon, + ...iconProps + })) : props.loadingIcon ?? /*#__PURE__*/ (0,jsx_runtime.jsx)(AssetLoadingIcon, { + className: classes.loadingIcon + }) + }), + IframeResizerMemo + ] }); -} +}); /***/ }), -/***/ 43568: +/***/ 63352: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; // EXPORTS __webpack_require__.d(__webpack_exports__, { - "M": () => (/* binding */ RSS3API) + "C": () => (/* binding */ FungibleTokenList) }); -// EXTERNAL MODULE: ../../node_modules/.pnpm/urlcat@2.0.4/node_modules/urlcat/dist/index.js -var dist = __webpack_require__(19802); -var dist_default = /*#__PURE__*/__webpack_require__.n(dist); -// EXTERNAL MODULE: ../../node_modules/.pnpm/rss3-next@0.6.17_typescript@4.7.0-beta/node_modules/rss3-next/dist/browser/RSS3.js -var RSS3 = __webpack_require__(10868); -var RSS3_default = /*#__PURE__*/__webpack_require__.n(RSS3); -;// CONCATENATED MODULE: ../web3-providers/src/rss3/constants.ts -const RSS3_ENDPOINT = 'https://hub.pass3.me'; - -// EXTERNAL MODULE: ../web3-providers/src/types.ts -var types = __webpack_require__(41054); -// EXTERNAL MODULE: ../web3-providers/src/helpers.ts -var helpers = __webpack_require__(48073); -;// CONCATENATED MODULE: ../web3-providers/src/rss3/index.ts - +// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.1.0/node_modules/react/jsx-runtime.js +var jsx_runtime = __webpack_require__(35667); +// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.1.0/node_modules/react/index.js +var react = __webpack_require__(58757); +// EXTERNAL MODULE: ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/uniqBy.js +var uniqBy = __webpack_require__(18443); +// EXTERNAL MODULE: ../shared-base/src/index.ts + 2 modules +var src = __webpack_require__(44451); +// EXTERNAL MODULE: ../theme/src/entry.ts +var entry = __webpack_require__(31939); +// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.8.0_4xriuibr7qayay6mzcpq5f43me/node_modules/@mui/material/Stack/Stack.js +var Stack = __webpack_require__(73932); +// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.8.0_4xriuibr7qayay6mzcpq5f43me/node_modules/@mui/material/Typography/Typography.js + 1 modules +var Typography = __webpack_require__(21784); +// EXTERNAL MODULE: ../shared/src/locales/index.ts + 1 modules +var locales = __webpack_require__(18261); +// EXTERNAL MODULE: ../plugin-infra/src/entry-web3.ts + 1 modules +var entry_web3 = __webpack_require__(50719); +// EXTERNAL MODULE: ../web3-shared/base/src/index.ts + 1 modules +var base_src = __webpack_require__(67938); +// EXTERNAL MODULE: ../../node_modules/.pnpm/bignumber.js@9.0.2/node_modules/bignumber.js/bignumber.js +var bignumber = __webpack_require__(42263); +var bignumber_default = /*#__PURE__*/__webpack_require__.n(bignumber); +// EXTERNAL MODULE: ../../node_modules/.pnpm/classnames@2.3.1/node_modules/classnames/index.js +var classnames = __webpack_require__(83849); +var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames); +// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.8.0_4xriuibr7qayay6mzcpq5f43me/node_modules/@mui/material/ListItem/ListItem.js + 2 modules +var ListItem = __webpack_require__(82138); +// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.8.0_4xriuibr7qayay6mzcpq5f43me/node_modules/@mui/material/ListItemIcon/ListItemIcon.js +var ListItemIcon = __webpack_require__(23228); +// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.8.0_4xriuibr7qayay6mzcpq5f43me/node_modules/@mui/material/ListItemText/ListItemText.js +var ListItemText = __webpack_require__(63153); +// EXTERNAL MODULE: ../shared/src/UI/components/TokenIcon/index.tsx + 2 modules +var TokenIcon = __webpack_require__(95462); +// EXTERNAL MODULE: ../icons/general/Loading.tsx +var Loading = __webpack_require__(78258); +// EXTERNAL MODULE: ../shared/src/UI/components/LoadingAnimation/index.tsx +var LoadingAnimation = __webpack_require__(16332); +;// CONCATENATED MODULE: ../shared/src/UI/components/FungibleTokenList/FungibleTokenItem.tsx -class RSS3API { - createRSS3(address, sign = ()=>{ - throw new Error('Not supported.'); - }) { - return new (RSS3_default())({ - endpoint: RSS3_ENDPOINT, - address, - sign - }); - } - async getFileData(rss3, address, key) { - const file = await rss3.files.get(address); - if (!file) throw new Error('The account was not found.'); - const descriptor = Object.getOwnPropertyDescriptor(file, key); - return descriptor?.value; - } - async setFileData(rss3, address, key, data) { - const file = await rss3.files.get(address); - if (!file) throw new Error('The account was not found.'); - const descriptor = Object.getOwnPropertyDescriptor(file, key); - const value = { - ...descriptor?.value, - ...data - }; - rss3.files.set(Object.assign(file, { - [key]: value - })); - await rss3.files.sync(); - return value; - } - async getDonations(address) { - const url = dist_default()(RSS3_ENDPOINT, '/assets/list', { - personaID: address, - type: types/* RSS3BaseAPI.AssetType.GitcoinDonation */.b.AssetType.GitcoinDonation - }); - return (0,helpers/* fetchJSON */.ZV)(url); - } - async getFootprints(address) { - const url = dist_default()(RSS3_ENDPOINT, '/assets/list', { - personaID: address, - type: types/* RSS3BaseAPI.AssetType.POAP */.b.AssetType.POAP - }); - return (0,helpers/* fetchJSON */.ZV)(url); - } - async getNameInfo(id) { - if (!id) return; - const url = dist_default()('https://rss3.domains/name/:id', { - id - }); - return (0,helpers/* fetchJSON */.ZV)(url); - } - async getProfileInfo(address) { - if (!address) return; - const url = dist_default()(RSS3_ENDPOINT, '/:address', { - address - }); - const rsp = await (0,helpers/* fetchJSON */.ZV)(url); - return rsp?.profile; - } - async getAssets(address) { - const url = dist_default()(RSS3_ENDPOINT, '/assets/list', { - personaID: address, - type: types/* RSS3BaseAPI.AssetType.NFT */.b.AssetType.NFT - }); - const { status , assets =[] } = await (0,helpers/* fetchJSON */.ZV)(url); - if (!status) return []; - return assets.map((asset)=>{ - return { - is_verified: false, - is_auction: false, - image_url: asset.info.image_preview_url ?? '', - asset_contract: null, - current_price: null, - current_symbol: '', - owner: null, - creator: null, - token_id: asset.id.substr(asset.id.lastIndexOf('-') + 1), - token_address: asset.id.substr(0, asset.id.indexOf('-')), - traits: [], - safelist_request_status: '', - description: '', - name: asset.info.title ?? '', - collection_name: asset.info.collection ?? '', - animation_url: asset.info.animation_url ?? '', - end_time: asset.info.end_date ? new Date(asset.info.end_date) : null, - order_payment_tokens: [], - offer_payment_tokens: [], - slug: null, - top_ownerships: [], - response_: asset, - last_sale: null - }; - }); - } -} -/***/ }), -/***/ 70809: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -"use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "U": () => (/* binding */ TokenListAPI) -/* harmony export */ }); -/* harmony import */ var _dimensiondev_kit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(28807); -/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(65506); -/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(80526); -/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(66394); -/* harmony import */ var lodash_unified__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(70688); -const NATIVE_TOKEN_ADDRESS_IN_1INCH = '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee'; -const fetchTokenList = (0,_dimensiondev_kit__WEBPACK_IMPORTED_MODULE_0__/* .memoizePromise */ .J3)(async (url)=>{ - const response = await fetch(url, { - cache: 'force-cache' - }); - return response.json(); -}, (url)=>url +const useStyles = (0,entry/* makeStyles */.ZL)()((theme)=>({ + icon: { + width: 36, + height: 36 + }, + list: { + maxHeight: '100%', + padding: theme.spacing(1.5), + borderRadius: theme.spacing(1) + }, + text: { + display: 'flex', + alignItems: 'center', + justifyContent: 'space-between' + }, + primary: { + flex: 1, + whiteSpace: 'nowrap', + textOverflow: 'ellipsis', + overflow: 'hidden', + paddingRight: theme.spacing(1) + }, + name: { + display: 'block', + lineHeight: '20px', + fontSize: 16, + // TODO: Should align dashboard and twitter theme in common component, depend twitter theme + color: theme.palette.mode === 'dark' ? '#6E767D' : '#536471' + }, + symbol: { + lineHeight: '20px', + fontSize: 16 + }, + import: { + '&:before': { + content: '""', + display: 'inline-block', + position: 'absolute', + top: 0, + left: 0, + width: '100%', + height: '100%', + background: 'transparent' + } + }, + importButton: { + padding: '3px 0', + borderRadius: 15, + fontSize: 14, + fontWeight: 500, + lineHeight: '20px' + } + }) ); -/** - * Fetch tokens from 1inch token list - * @param url - * @param chainId - */ async function fetch1inchERC20TokensFromTokenList(url, chainId = _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Mainnet */ .a_.Mainnet) { - const tokens = (await fetchTokenList(url)).tokens; - const _tokens = Object.values(tokens); - return _tokens.filter((x)=>x.address.toLowerCase() !== NATIVE_TOKEN_ADDRESS_IN_1INCH - ).map((x)=>({ - type: _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .EthereumTokenType.ERC20 */ .Dr.ERC20, - ...x, - chainId: chainId, - logoURI: x.logoURI ? [ - x.logoURI - ] : [] - }) - ); -} -/** - * Fetch tokens from common token list - * @param url - * @param chainId - */ async function fetchCommonERC20TokensFromTokenList(url, chainId = _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Mainnet */ .a_.Mainnet) { - return (await fetchTokenList(url)).tokens.filter((x)=>x.chainId === chainId && ( true ? (0,_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .getChainDetailed */ .$G)(chainId)?.network === 'mainnet' : 0) - ).map((x)=>({ - type: _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .EthereumTokenType.ERC20 */ .Dr.ERC20, - ...x, - logoURI: x.logoURI ? [ - x.logoURI - ] : [] - }) - ); -} -/** - * Fetch tokens adapter - * @param urls - * @param chainId - */ async function fetchERC20TokensFromTokenList(urls, chainId = _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Mainnet */ .a_.Mainnet) { - const allRequest = urls.map(async (x)=>{ - if (x.includes('1inch')) { - const tokens = await fetch1inchERC20TokensFromTokenList(x, chainId); +const getFungibleTokenItem = (getSource, getBalance, isSelected, isLoading, importToken)=>({ data: token , onSelect })=>{ + const t = (0,locales/* useSharedI18N */.B)(); + const { classes } = useStyles(); + if (!token) return null; + const { chainId , address , name , symbol , decimals , logoURL } = token; + const { source , balance , selected , loading } = (0,react.useMemo)(()=>{ return { - tokens, - weight: 0 + source: getSource(address), + balance: getBalance(address), + selected: isSelected(address), + loading: isLoading(address) }; - } - const tokens = await fetchCommonERC20TokensFromTokenList(x, chainId); - return { - tokens, - weight: x.startsWith('https://tokens.r2d2.to') ? 1 : 0 + }, [ + address, + getSource, + getBalance, + isSelected, + isLoading + ]); + const onImport = (0,react.useCallback)(async (event)=>{ + event.stopPropagation(); + if (token) importToken(token); + }, [ + token, + importToken + ]); + const handleTokenSelect = (e)=>{ + e.stopPropagation(); + onSelect(token); }; - }); - const allListResponse = await Promise.allSettled(allRequest); - return allListResponse.map((x)=>x.status === 'fulfilled' ? x.value : { - tokens: [], - weight: 0 - } - ); -} -/** - * Fetch tokens from multiple token lists - * @param urls - * @param chainId - */ class TokenListAPI { - async fetchERC20TokensFromTokenLists(url, chainId1) { - const result = (0,_dimensiondev_kit__WEBPACK_IMPORTED_MODULE_0__/* .memoizePromise */ .J3)(async (urls, chainId = _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Mainnet */ .a_.Mainnet)=>{ - const tokens = (await fetchERC20TokensFromTokenList(urls, chainId)).sort((a, b)=>b.weight - a.weight - ).flatMap((x)=>x.tokens - ); - const groupedToken = (0,lodash_unified__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z)(tokens, (x)=>x.address.toLowerCase() - ); - return Object.values(groupedToken).map((tokenList)=>{ - const logoURIs = tokenList.map((token)=>token.logoURI - ).flat().filter((token)=>!!token - ); - return { - ...tokenList[0], - ...{ - address: (0,_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_4__/* .formatEthereumAddress */ .j8)(tokenList[0].address) - }, - ...{ - logoURI: logoURIs + const action = (0,react.useMemo)(()=>{ + return source !== 'external' ? /*#__PURE__*/ (0,jsx_runtime.jsx)("span", { + children: loading ? /*#__PURE__*/ (0,jsx_runtime.jsx)(LoadingAnimation/* LoadingAnimation */.p, {}) : Number.parseFloat(new (bignumber_default())((0,base_src/* formatBalance */.az)(balance ?? 0, decimals, 6)).toFixed(6)) + }) : /*#__PURE__*/ (0,jsx_runtime.jsx)(entry/* MaskLoadingButton */.b4, { + variant: "contained", + color: "primary", + onClick: onImport, + size: "small", + className: classes.importButton, + soloLoading: true, + loadingIndicator: /*#__PURE__*/ (0,jsx_runtime.jsx)(Loading/* LoadingIcon */.H, { + sx: { + fontSize: 14 } - }; + }), + children: t.import() }); - }, (urls, chainId)=>`${chainId}-${urls.join()}` - ); - return result(url, chainId1); + }, [ + balance, + decimals, + loading + ]); + return /*#__PURE__*/ (0,jsx_runtime.jsxs)(ListItem/* default */.ZP, { + title: address, + button: true, + className: `${classes.list} dashboard token-list`, + onClick: handleTokenSelect, + disabled: selected, + children: [ + /*#__PURE__*/ (0,jsx_runtime.jsx)(ListItemIcon/* default */.Z, { + children: /*#__PURE__*/ (0,jsx_runtime.jsx)(TokenIcon/* TokenIcon */.T, { + classes: { + icon: classes.icon + }, + chainId: chainId, + address: address, + name: name, + logoURL: logoURL + }) + }), + /*#__PURE__*/ (0,jsx_runtime.jsxs)(ListItemText/* default */.Z, { + classes: { + primary: classes.text + }, + children: [ + /*#__PURE__*/ (0,jsx_runtime.jsxs)(Typography/* default */.Z, { + className: classnames_default()(classes.primary, source === 'external' ? classes.import : ''), + color: "textPrimary", + component: "span", + children: [ + /*#__PURE__*/ (0,jsx_runtime.jsx)("span", { + className: classes.symbol, + children: symbol + }), + /*#__PURE__*/ (0,jsx_runtime.jsxs)("span", { + className: `${classes.name} dashboard token-list-symbol`, + children: [ + name, + source === 'personal' && /*#__PURE__*/ (0,jsx_runtime.jsx)("span", { + children: " \u2022 Added By User" + }) + ] + }) + ] + }), + /*#__PURE__*/ (0,jsx_runtime.jsx)(Typography/* default */.Z, { + sx: { + fontSize: 16 + }, + color: "textSecondary", + component: "span", + children: action + }) + ] + }) + ] + }, address); } -} +; +;// CONCATENATED MODULE: ../shared/src/UI/components/FungibleTokenList/index.tsx -/***/ }), -/***/ 95624: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -"use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "J": () => (/* binding */ TokenPriceAPI) -/* harmony export */ }); -const URL_BASE = 'https://api.coingecko.com/api/v3'; -class TokenPriceAPI { - async getTokenPrices(platform, contractAddresses, currency) { - const addressList = contractAddresses.join(','); - const requestPath = `${URL_BASE}/simple/token_price/${platform}?contract_addresses=${addressList}&vs_currencies=${currency}`; - const prices = await fetch(requestPath).then((r)=>r.json() - ); - return prices; - } - async getNativeTokenPrice(tokenIds, currency) { - const requestPath = `${URL_BASE}/simple/price?ids=${tokenIds.join(',')}&vs_currencies=${currency}`; - const prices = await fetch(requestPath).then((r)=>r.json() - ); - return prices; - } -} -/***/ }), -/***/ 79863: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -"use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "I": () => (/* binding */ TwitterAPI) -/* harmony export */ }); -/* harmony import */ var lodash_unified__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(39345); -/* harmony import */ var urlcat__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(19802); -/* harmony import */ var urlcat__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(urlcat__WEBPACK_IMPORTED_MODULE_0__); -const UPLOAD_AVATAR_URL = 'https://upload.twitter.com/i/media/upload.json'; -function getScriptURL(content, name) { - const matchURL = new RegExp(`https://abs.twimg.com/responsive-web/\(client-web|client-web-\\w+\)\{1\}/${(0,lodash_unified__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)(`${name}.`)}\\w+${(0,lodash_unified__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)('.js')}`, 'm'); - const [url] = content.match(matchURL) ?? []; - return url; -} -function getScriptContentMatched(content, regexp) { - const [, matched] = content.match(regexp) ?? []; - return matched; -} -function getCSRFToken() { - const ct0 = document.cookie.split('; ').find((x)=>x.includes('ct0') - ); - if (!ct0) return ''; - const [, value] = ct0.split('='); - return value; -} -async function getScriptContent(url) { - const response = await fetch(url); - return response.text(); -} -async function getTokens() { - const swContent = await getScriptContent('https://twitter.com/sw.js'); - const mainContent = await getScriptContent(getScriptURL(swContent ?? '', 'main')); - const nftContent = await getScriptContent(getScriptURL(swContent ?? '', 'bundle.UserNft')); - const bearerToken = getScriptContentMatched(mainContent ?? '', /s="(\w+%3D\w+)"/); - const queryToken = getScriptContentMatched(nftContent ?? '', /{\s?id:\s?"([\w-]+)"/); - const csrfToken = getCSRFToken(); - return { - bearerToken, - queryToken, - csrfToken - }; -} -async function getUserNftContainer(screenName, queryToken, bearerToken, csrfToken) { - const response = await fetch(urlcat__WEBPACK_IMPORTED_MODULE_0___default()(`https://twitter.com/i/api/graphql/:queryToken/userNftContainer_Query?variables=${encodeURIComponent(JSON.stringify({ - screenName - }))}`, { - queryToken - }), { - headers: { - authorization: `Bearer ${bearerToken}`, - 'x-csrf-token': csrfToken, - 'content-type': 'application/json', - 'x-twitter-auth-type': 'OAuth2Session', - 'x-twitter-active-user': 'yes', - referer: `https://twitter.com/${screenName}/nft` - } + +const DEFAULT_LIST_HEIGHT = 300; +const SEARCH_KEYS = [ + 'address', + 'symbol', + 'name' +]; +const Placeholder = /*#__PURE__*/ (0,react.memo)(({ message , height })=>/*#__PURE__*/ (0,jsx_runtime.jsx)(Stack/* default */.Z, { + minHeight: height ?? DEFAULT_LIST_HEIGHT, + justifyContent: "center", + alignContent: "center", + marginTop: "12px", + children: /*#__PURE__*/ (0,jsx_runtime.jsx)(Typography/* default */.Z, { + color: "textSecondary", + textAlign: "center", + children: message + }) + }) +); +function FungibleTokenList(props) { + const { tokens =src/* EMPTY_LIST */.rP , whitelist: includeTokens , blacklist: excludeTokens = src/* EMPTY_LIST */.rP , onSelect , FixedSizeListProps , selectedTokens =src/* EMPTY_LIST */.rP , } = props; + const t = (0,locales/* useSharedI18N */.B)(); + const pluginID = (0,entry_web3/* useCurrentWeb3NetworkPluginID */.$f)(props.pluginID); + const account = (0,entry_web3/* useAccount */.mA)(); + const chainId = (0,entry_web3/* useChainId */.xx)(pluginID, props.chainId); + const { Token , Others } = (0,entry_web3/* useWeb3State */.dM)(); + const { value: fungibleTokens = src/* EMPTY_LIST */.rP , loading: loadingFungibleTokens } = (0,entry_web3/* useFungibleTokensFromTokenList */.B8)(props.pluginID, { + chainId }); - return response.json(); -} -async function getSettings(bearerToken, csrfToken) { - const response = await fetch(urlcat__WEBPACK_IMPORTED_MODULE_0___default()('https://twitter.com/i/api/1.1/account/settings.json', { - include_mention_filter: false, - include_nsfw_user_flag: false, - include_nsfw_admin_flag: false, - include_ranked_timeline: false, - include_alt_text_compose: false, - include_country_code: false, - include_ext_dm_nsfw_media_filter: false - }), { - headers: { - authorization: `Bearer ${bearerToken}`, - 'x-csrf-token': csrfToken, - 'content-type': 'application/json', - 'x-twitter-auth-type': 'OAuth2Session', - 'x-twitter-active-user': 'yes', - referer: 'https://twitter.com/home' - } + const trustedFungibleTokens = (0,entry_web3/* useTrustedFungibleTokens */.Yg)(undefined, undefined, chainId); + const blockedFungibleTokens = (0,entry_web3/* useBlockedFungibleTokens */.v8)(); + const nativeToken = (0,react.useMemo)(()=>Others?.chainResolver.nativeCurrency(chainId) + , [ + chainId + ]); + const filteredFungibleTokens = (0,react.useMemo)(()=>{ + const allFungibleTokens = (0,uniqBy/* default */.Z)([ + ...nativeToken ? [ + nativeToken + ] : [], + ...tokens, + ...fungibleTokens, + ...trustedFungibleTokens + ], (x)=>x.address.toLowerCase() + ); + return allFungibleTokens.filter((token)=>(!includeTokens || includeTokens.some((0,base_src/* currySameAddress */.DC)(token.address))) && (!excludeTokens.length || !excludeTokens.some((0,base_src/* currySameAddress */.DC)(token.address))) + ); + }, [ + nativeToken, + tokens, + fungibleTokens, + trustedFungibleTokens, + includeTokens, + excludeTokens + ]); + const { value: fungibleTokensBalance = src/* EMPTY_OBJECT */.Nu , loading: loadingFungibleTokensBalance } = (0,entry_web3/* useFungibleTokensBalance */.YW)(pluginID, filteredFungibleTokens.map((x)=>x.address + ), { + account, + chainId }); - return response.json(); -} -class TwitterAPI { - async getSettings() { - const { bearerToken , queryToken , csrfToken } = await getTokens(); - if (!bearerToken || !csrfToken) return; - return getSettings(bearerToken, csrfToken); - } - async getUserNftContainer(screenName) { - const { bearerToken , queryToken , csrfToken } = await getTokens(); - if (!bearerToken || !queryToken || !csrfToken) return; - const result = await getUserNftContainer(screenName, queryToken, bearerToken, csrfToken); - if (!result?.data?.user?.result?.has_nft_avatar) return; - return { - address: result.data.user.result.nft_avatar_metadata.smart_contract.address, - token_id: result.data.user.result.nft_avatar_metadata.token_id, - type_name: result.data.user.result.nft_avatar_metadata.smart_contract.__typename - }; - } - async uploadUserAvatar(image) { - // INIT - const initURL = `${UPLOAD_AVATAR_URL}?command=INIT&total_bytes=${image.size}&media_type=${encodeURIComponent(image.type)}`; - const initRes = await request(initURL, { - method: 'POST', - credentials: 'include' + const { value: fungibleAssets = src/* EMPTY_LIST */.rP , loading: loadingFungibleAssets } = (0,entry_web3/* useFungibleAssets */.$U)(pluginID, undefined, { + chainId + }); + const sortedFungibleTokens = (0,react.useMemo)(()=>{ + const fungibleAssetsTable = Object.fromEntries(fungibleAssets.filter((x)=>x.chainId === chainId + ).map((x)=>[ + x.address, + x + ] + )); + const isTrustedToken = (0,base_src/* currySameAddress */.DC)(trustedFungibleTokens.map((x)=>x.address + )); + const isBlockedToken = (0,base_src/* currySameAddress */.DC)(blockedFungibleTokens.map((x)=>x.address + )); + return filteredFungibleTokens.filter((x)=>!isBlockedToken(x) + ).sort((a, z)=>{ + const aBalance = (0,base_src/* toZero */.ux)((0,base_src/* formatBalance */.az)(fungibleTokensBalance[a.address] ?? '0', a.decimals)); + const zBalance = (0,base_src/* toZero */.ux)((0,base_src/* formatBalance */.az)(fungibleTokensBalance[z.address] ?? '0', z.decimals)); + const aUSD = (0,base_src/* toZero */.ux)(fungibleAssetsTable[a.address]?.value?.[base_src/* CurrencyType.USD */.V2.USD] ?? '0'); + const zUSD = (0,base_src/* toZero */.ux)(fungibleAssetsTable[z.address]?.value?.[base_src/* CurrencyType.USD */.V2.USD] ?? '0'); + const isNativeTokenA = (0,base_src/* isSameAddress */.Wr)(a.address, Others?.getNativeTokenAddress(a.chainId)); + const isNativeTokenZ = (0,base_src/* isSameAddress */.Wr)(z.address, Others?.getNativeTokenAddress(z.chainId)); + const isMaskTokenA = (0,base_src/* isSameAddress */.Wr)(a.address, Others?.getMaskTokenAddress(a.chainId)); + const isMaskTokenZ = (0,base_src/* isSameAddress */.Wr)(z.address, Others?.getMaskTokenAddress(z.chainId)); + // the currently selected chain id + if (a.chainId !== z.chainId) { + if (a.chainId === chainId) return -1; + if (z.chainId === chainId) return 1; + } + // native token + if (isNativeTokenA) return -1; + if (isNativeTokenZ) return 1; + // mask token with position value + if (aUSD.isPositive() && isMaskTokenA) return -1; + if (zUSD.isPositive() && isMaskTokenZ) return 1; + // token value + if (!aUSD.isEqualTo(zUSD)) return (0,base_src/* minus */.h9)(zUSD, aUSD).isPositive() ? 1 : -1; + // token balance + if (!aBalance.isEqualTo(zBalance)) return (0,base_src/* minus */.h9)(zBalance, aBalance).isPositive() ? 1 : -1; + // trusted token + if (isTrustedToken(a.address)) return -1; + if (isTrustedToken(z.address)) return 1; + // mask token with position value + if (isMaskTokenA) return -1; + if (isMaskTokenZ) return 1; + // alphabet + if (a.name !== z.name) return a.name < z.name ? -1 : 1; + return 0; }); - const mediaId = initRes.media_id_string; - // APPEND - const appendURL = `${UPLOAD_AVATAR_URL}?command=APPEND&media_id=${mediaId}&segment_index=0`; - const formData = new FormData(); - formData.append('media', image); - await fetch(appendURL, { - method: 'POST', - credentials: 'include', - body: formData + }, [ + chainId, + fungibleAssets, + trustedFungibleTokens, + blockedFungibleTokens, + filteredFungibleTokens, + fungibleTokensBalance, + Others, + ]); + // #region add token by address + const [keyword, setKeyword] = (0,react.useState)(''); + const searchedTokenAddress = (0,react.useMemo)(()=>{ + return Others?.isValidAddress(keyword) && !sortedFungibleTokens.some((x)=>(0,base_src/* isSameAddress */.Wr)(x.address, keyword) + ) ? keyword : ''; + }, [ + keyword, + sortedFungibleTokens, + Others + ]); + const { value: searchedToken , loading: searchingToken } = (0,entry_web3/* useFungibleToken */.cf)(pluginID, searchedTokenAddress, { + chainId + }); + // #endregion + const getPlaceholder = ()=>{ + if (Object.keys(fungibleTokensBalance).length === 0 && includeTokens?.length === 0 && !searchedToken) return null; + if ((Object.keys(fungibleTokensBalance).length === 0 || loadingFungibleTokensBalance) && !searchedToken) return /*#__PURE__*/ (0,jsx_runtime.jsx)(Placeholder, { + height: FixedSizeListProps?.height, + message: t.erc20_token_list_loading() }); - // FINALIZE - const finalizeURL = `${UPLOAD_AVATAR_URL}?command=FINALIZE&media_id=${mediaId}`; - const data = await request(finalizeURL, { - method: 'POST', - credentials: 'include' + if (searchingToken) return /*#__PURE__*/ (0,jsx_runtime.jsx)(Placeholder, { + height: FixedSizeListProps?.height, + message: t.erc20_search_token_loading() }); - return data; - } -} -function request(url, // `RequestInit` is a type for configuring -// a `fetch` request. By default, an empty object. -config = {}) { - // Inside, we call the `fetch` function with - // a URL and config given: - return fetch(url, config)// When got a response call a `json` method on it - .then((response)=>response.json() - )// and return the result data. - .then((data)=>data - ); -// We also can use some post-response -// data-transformations in the last `then` clause. + if (searchedTokenAddress && !searchedToken) return /*#__PURE__*/ (0,jsx_runtime.jsx)(Placeholder, { + height: FixedSizeListProps?.height, + message: t.erc20_search_not_token_found() + }); + return null; + }; + return /*#__PURE__*/ (0,jsx_runtime.jsx)(entry/* SearchableList */.xV, { + onSelect: (token)=>onSelect?.(token) + , + onSearch: setKeyword, + data: searchedToken && (0,base_src/* isSameAddress */.Wr)(searchedToken.address, searchedTokenAddress) ? [ + searchedToken + ] : sortedFungibleTokens, + searchKey: SEARCH_KEYS, + disableSearch: !!props.disableSearch, + itemRender: getFungibleTokenItem((address)=>{ + if ((0,base_src/* isSameAddress */.Wr)(nativeToken?.address, address)) return 'official'; + const inOfficialList = fungibleTokens.some((x)=>(0,base_src/* isSameAddress */.Wr)(x.address, address) + ); + if (inOfficialList) return 'official'; + const inPersonaList = trustedFungibleTokens.some((x)=>(0,base_src/* isSameAddress */.Wr)(x.address, address) + ); + if (inPersonaList) return 'personal'; + return 'external'; + }, (address)=>fungibleTokensBalance[address] ?? '0' + , (address)=>selectedTokens.some((x)=>(0,base_src/* isSameAddress */.Wr)(x, address) + ) + , ()=>loadingFungibleTokensBalance || loadingFungibleAssets + , async (token)=>{ + await Token?.addToken?.(token); + await Token?.trustToken?.(account, token); + }), + placeholder: getPlaceholder(), + FixedSizeListProps: FixedSizeListProps, + SearchFieldProps: { + placeholder: t.erc20_token_list_placeholder(), + ...props.SearchTextFieldProps + } + }); } /***/ }), -/***/ 41054: +/***/ 16332: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "b": () => (/* binding */ RSS3BaseAPI), -/* harmony export */ "x": () => (/* binding */ NonFungibleTokenAPI) +/* harmony export */ "p": () => (/* binding */ LoadingAnimation) /* harmony export */ }); -var RSS3BaseAPI; -(function(RSS3BaseAPI1) { - let AssetType; - (function(AssetType) { - AssetType["GitcoinDonation"] = 'Gitcoin-Donation'; - AssetType["POAP"] = "POAP"; - AssetType["NFT"] = "NFT"; - })(AssetType = RSS3BaseAPI1.AssetType || (RSS3BaseAPI1.AssetType = {})); -})(RSS3BaseAPI || (RSS3BaseAPI = {})); -var NonFungibleTokenAPI; -(function(NonFungibleTokenAPI1) { - let OrderSide; - (function(OrderSide) { - OrderSide[OrderSide["Buy"] = 0] = "Buy"; - OrderSide[OrderSide["Sell"] = 1] = "Sell"; - })(OrderSide = NonFungibleTokenAPI1.OrderSide || (NonFungibleTokenAPI1.OrderSide = {})); -})(NonFungibleTokenAPI || (NonFungibleTokenAPI = {})); - +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35667); +/* harmony import */ var _masknet_icons__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(78258); +/* harmony import */ var _masknet_theme__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(31939); +/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(83849); +/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_2__); -/***/ }), -/***/ 34049: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -"use strict"; -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - "c": () => (/* binding */ ZoraAPI) +const useStyles = (0,_masknet_theme__WEBPACK_IMPORTED_MODULE_1__/* .makeStyles */ .ZL)()({ + animated: { + '@keyframes loadingAnimation': { + '0%': { + transform: 'rotate(0deg)' + }, + '100%': { + transform: 'rotate(360deg)' + } + }, + animation: 'loadingAnimation 1.6s linear infinite' + } }); +const LoadingAnimation = (props)=>{ + const { classes } = useStyles(); + return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_masknet_icons__WEBPACK_IMPORTED_MODULE_3__/* .LoadingIcon */ .H, { + ...props, + className: classnames__WEBPACK_IMPORTED_MODULE_2___default()(classes.animated, props.className) + }); +}; -// EXTERNAL MODULE: ../../node_modules/.pnpm/graphql-request@3.5.0/node_modules/graphql-request/dist/index.js -var dist = __webpack_require__(82593); -// EXTERNAL MODULE: ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/head.js -var head = __webpack_require__(29730); -// EXTERNAL MODULE: ../web3-shared/evm/pipes/index.ts -var pipes = __webpack_require__(55678); -// EXTERNAL MODULE: ../web3-shared/evm/utils/formatter.ts -var formatter = __webpack_require__(66394); -// EXTERNAL MODULE: ../web3-shared/evm/types/index.ts -var types = __webpack_require__(65506); -// EXTERNAL MODULE: ../web3-providers/src/index.ts -var src = __webpack_require__(92820); -;// CONCATENATED MODULE: ../web3-providers/src/zora/queries.ts -const getAssetQuery = dist.gql` - query getAsset($address: String!, $tokenId: String!) { - Token(where: { address: { _eq: $address }, tokenId: { _eq: $tokenId } }) { - tokenId - name - address - owner - metadata { - json - } - v3Ask { - askPrice - } - currentAuction { - expiresAt - } - symbol - tokenContract { - name - } - } - } -`; -const getTokenHistoryQuery = dist.gql` - query getTokenHistory($address: String!, $tokenId: String!) { - Token(where: { address: { _eq: $address }, tokenId: { _eq: $tokenId } }) { - transferEvents { - blockTimestamp - transaction { - mediaMints { - id - blockTimestamp - creator - address - } - auctionCreatedEvents { - id - reservePrice - tokenOwner - blockTimestamp - auctionCurrency - } - marketBidEvents(where: { status: { _eq: "FINALIZED" } }) { - id - blockTimestamp - amount - currencyAddress - bidder - recipient - } - auctionEndedEvents { - id - transaction { - blockTimestamp - } - tokenOwner - winner - auction { - lastBidAmount - auctionCurrency - } - } - } - } - } - } -`; -const getBidsQuery = dist.gql` - query getBidEvents($tokenAddress: String!, $tokenId: String!) { - Token(where: { address: { _eq: $tokenAddress }, tokenId: { _eq: $tokenId } }) { - transferEvents { - transaction { - marketBidEvents(where: { status: { _eq: "FINALIZED" } }) { - blockTimestamp - amount - currencyAddress - transactionHash - recipient - } - } - } - } - } -`; -const getAsksQuery = dist.gql` - query getAskEvents($tokenAddress: String!, $tokenId: String!) { - Token(where: { address: { _eq: $tokenAddress }, tokenId: { _eq: $tokenId } }) { - transferEvents { - transaction { - auctionCreatedEvents { - auctionCurrency - reservePrice - tokenOwner - blockTimestamp - transactionHash - } - } - } - } - } -`; +/***/ }), + +/***/ 17428: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -;// CONCATENATED MODULE: ../web3-providers/src/zora/constants.ts -const ZORA_MAINNET_GRAPHQL_URL = 'https://cors.r2d2.to/?https://indexer-prod-mainnet.zora.co/v1/graphql'; +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "s": () => (/* binding */ QRCode) +/* harmony export */ }); +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35667); +/* harmony import */ var _masknet_theme__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(31939); +/* harmony import */ var qrcode__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(86099); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(58757); +/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(21784); +/* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(62266); +/* harmony import */ var _mui_material_colors__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(94362); +/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(44451); -;// CONCATENATED MODULE: ../web3-providers/src/zora/index.ts -function createNFTAsset(asset) { - const image_url = ((asset.metadata.json.image ?? asset.metadata.json.animation_url) ?? asset.metadata.json.image_url) ?? ''; - const animation_url = (asset.metadata.json.image ?? asset.metadata.json.animation_url) ?? ''; - return { - is_verified: false, - is_auction: asset.currentAuction !== null, - image_url: (0,pipes/* resolveIPFSLinkFromURL */.Yx)(image_url), - asset_contract: { - name: asset.tokenContract.name, - description: '', - schemaName: '' - }, - current_price: asset.v3Ask ? (0,formatter/* formatWeiToEther */.yp)(asset.v3Ask.askPrice).toNumber() : null, - current_symbol: asset.symbol ?? 'ETH', - owner: asset.owner ? { - address: asset.owner, - profile_img_url: '', - user: { - username: asset.owner - }, - link: `https://zora.co/${asset?.owner}` - } : null, - creator: asset.metadata.json.created_by ? { - address: asset.metadata.json.created_by, - profile_img_url: '', - user: { - username: asset.metadata.json.created_by - }, - link: `https://zora.co/${asset?.metadata.json.created_by}` - } : null, - token_id: asset.tokenId, - token_address: asset.address, - traits: asset.metadata.json.attributes, - safelist_request_status: '', - description: asset.metadata.json.description, - name: asset.name ?? asset.metadata.json.name, - collection_name: '', - animation_url: (0,pipes/* resolveIPFSLinkFromURL */.Yx)(animation_url), - end_time: asset.currentAuction ? new Date(asset.currentAuction.expiresAt) : null, - order_payment_tokens: [], - offer_payment_tokens: [], - slug: '', - top_ownerships: asset.owner ? [ - { - owner: { - address: asset.owner, - profile_img_url: '', - user: { - username: asset.owner - }, - link: `https://zora.co/${asset.owner}` - } - }, - ] : [], - response_: asset, - last_sale: null - }; -} -function createERC721TokenFromAsset(tokenAddress, tokenId, asset) { - return { - contractDetailed: { - type: types/* EthereumTokenType.ERC721 */.Dr.ERC721, - chainId: types/* ChainId.Mainnet */.a_.Mainnet, - address: tokenAddress, - name: asset?.tokenContract.name ?? '', - symbol: '' + +const CACHE_SCOPE = 'qrcode'; +const useStyles = (0,_masknet_theme__WEBPACK_IMPORTED_MODULE_1__/* .makeStyles */ .ZL)()((theme)=>({ + text: { + paddingTop: 50 }, info: { - name: asset?.metadata.json.name ?? '', - description: asset?.metadata.json.description ?? '', - mediaUrl: (asset?.metadata.json.animation_url ?? asset?.metadata.json.image_url) ?? '', - owner: asset?.owner - }, - tokenId: tokenId - }; -} -class ZoraAPI { - async getAsset(address, tokenId) { - const variables = { - address, - tokenId - }; - const assetData = await this.client.request(getAssetQuery, variables); - if (!assetData) return; - return createNFTAsset(assetData.Token[0]); - } - async getToken(address, tokenId) { - const variables = { - address, - tokenId - }; - const asset = await this.client.request(getAssetQuery, variables); - if (!asset) return; - return createERC721TokenFromAsset(address, tokenId, asset.Token[0]); - } - async getHistory(address, tokenId) { - const variables = { - address, - tokenId - }; - const nftEventHistory = await this.client.request(getTokenHistoryQuery, variables); - const history = nftEventHistory.Token[0].transferEvents.map((event)=>{ - if (event.transaction.mediaMints?.length !== 0) { - const mint = (0,head/* default */.Z)(event.transaction.mediaMints); - return { - id: mint?.id || '', - eventType: 'mint', - timestamp: new Date(`${event.blockTimestamp}Z`).getTime(), - price: { - quantity: '0', - price: '0', - paymentToken: { - name: 'Ether', - symbol: 'ETH', - decimals: 18, - address: '0x0000000000000000000000000000000000000000' - } - }, - accountPair: { - from: { - username: '', - address: mint?.address, - imageUrl: '', - link: `https://zora.co/${mint?.address}` - }, - to: { - username: '', - address: mint?.creator, - imageUrl: '', - link: `https://zora.co/${mint?.creator}` - } - } - }; - } - if (event.transaction.auctionCreatedEvents?.length !== 0) { - const list = (0,head/* default */.Z)(event.transaction.auctionCreatedEvents); - return { - id: list?.id || '', - eventType: 'List', - timestamp: new Date(`${event.blockTimestamp}Z`).getTime(), - price: { - quantity: list?.reservePrice ? (0,formatter/* formatWeiToEther */.yp)(list?.reservePrice).toFixed(4) : '', - price: '1', - paymentToken: { - name: 'Ether', - symbol: 'ETH', - decimals: 18, - address: list?.auctionCurrency || '' - } - }, - accountPair: { - from: { - username: list?.tokenOwner, - address: list?.tokenOwner, - imageUrl: '', - link: `https://zora.co/${list?.tokenOwner}` - }, - to: { - username: '', - address: '', - imageUrl: '', - link: '' - } - } - }; - } - if (event.transaction.marketBidEvents?.length !== 0) { - const bid = (0,head/* default */.Z)(event.transaction.marketBidEvents); - return { - id: bid?.id || '', - eventType: 'Bid', - timestamp: new Date(`${event.blockTimestamp}Z`).getTime(), - price: { - quantity: bid?.amount ? (0,formatter/* formatWeiToEther */.yp)(bid?.amount).toFixed(4) : '', - price: '1', - paymentToken: { - name: 'Ether', - symbol: 'ETH', - decimals: 18, - address: bid?.currencyAddress || '' - } - }, - accountPair: { - from: { - username: bid?.bidder, - address: bid?.bidder, - imageUrl: '', - link: `https://zora.co/${bid?.bidder}` - }, - to: { - username: bid?.recipient, - address: bid?.recipient, - imageUrl: '', - link: `https://zora.co/${bid?.recipient}` - } - } - }; - } - if (event.transaction.auctionEndedEvents?.length !== 0) { - const buy = (0,head/* default */.Z)(event.transaction.auctionEndedEvents); - return { - id: buy?.id || '', - eventType: 'Buy', - timestamp: new Date(`${event.blockTimestamp}Z`).getTime(), - price: { - quantity: buy?.auction.lastBidAmount ? (0,formatter/* formatWeiToEther */.yp)(buy?.auction.lastBidAmount).toFixed(4) : '', - price: '1', - paymentToken: { - name: 'Ether', - symbol: 'ETH', - decimals: 18, - address: buy?.auction.auctionCurrency || '' - } - }, - accountPair: { - from: { - username: buy?.tokenOwner, - address: buy?.tokenOwner, - imageUrl: '', - link: `https://zora.co/${buy?.tokenOwner}` - }, - to: { - username: buy?.winner, - address: buy?.winner, - imageUrl: '', - link: `https://zora.co/${buy?.winner}` - } - } - }; + color: theme.palette.mode === 'dark' ? _mui_material_colors__WEBPACK_IMPORTED_MODULE_5__/* ["default"][500] */ .Z[500] : _mui_material_colors__WEBPACK_IMPORTED_MODULE_5__/* ["default"][800] */ .Z[800], + extDecoration: 'underline', + cursor: 'pointer' + } + }) +); +function QRCode({ text , options ={} , canvasProps }) { + const ref = (0,react__WEBPACK_IMPORTED_MODULE_3__.useRef)(null); + const [error, setError] = (0,react__WEBPACK_IMPORTED_MODULE_3__.useState)(false); + const image = _masknet_shared_base__WEBPACK_IMPORTED_MODULE_4__/* .SessionStorageCache.get */ .Hd.get(CACHE_SCOPE, text); + const { classes } = useStyles(); + (0,react__WEBPACK_IMPORTED_MODULE_3__.useEffect)(()=>{ + if (!ref.current || error) return; + qrcode__WEBPACK_IMPORTED_MODULE_2__.toCanvas(ref.current, text, options, (err)=>{ + if (err) { + setError(true); + _masknet_shared_base__WEBPACK_IMPORTED_MODULE_4__/* .SessionStorageCache.remove */ .Hd.remove(CACHE_SCOPE, text); + throw err; } - return; - }); - return history.filter((event)=>event !== undefined - ); - } - async getOffers(tokenAddress, tokenId) { - const variables = { - tokenAddress, - tokenId - }; - const nftBids = await this.client.request(getBidsQuery, variables); - const offers = nftBids.Token[0].transferEvents.map((event)=>{ - if (event.transaction.marketBidEvents?.length !== 0) { - const bid = (0,head/* default */.Z)(event.transaction.marketBidEvents); - return { - created_time: new Date(`${bid?.blockTimestamp}Z`).getTime().toString(), - current_price: bid?.amount, - payment_token: bid?.currencyAddress || '', - payment_token_contract: { - name: 'Ether', - symbol: 'ETH', - decimals: 18, - address: bid?.currencyAddress || '' - }, - listing_time: 0, - side: src/* NonFungibleTokenAPI.OrderSide.Buy */.x4.OrderSide.Buy, - quantity: '1', - expiration_time: 0, - order_hash: bid?.transactionHash || '', - approved_on_chain: false, - maker_account: { - user: { - username: bid?.recipient || '' - }, - address: bid?.recipient || '', - profile_img_url: '', - link: `https://zora.co/${bid?.recipient}` - } - }; + const dataURL = ref.current?.toDataURL(); + if (dataURL) { + _masknet_shared_base__WEBPACK_IMPORTED_MODULE_4__/* .SessionStorageCache.set */ .Hd.set(CACHE_SCOPE, text, dataURL); } - return; }); - return offers.filter((offer)=>offer !== undefined - ); - } - async getListings(tokenAddress, tokenId) { - const variables = { - tokenAddress, - tokenId - }; - const nftAsks = await this.client.request(getAsksQuery, variables); - const orders = nftAsks.Token[0].transferEvents.map((event)=>{ - if (event.transaction.auctionCreatedEvents?.length !== 0) { - const ask = (0,head/* default */.Z)(event.transaction.auctionCreatedEvents); - return { - created_time: new Date(`${ask?.blockTimestamp}Z`).getTime().toString(), - approved_on_chain: false, - current_price: (0,formatter/* formatWeiToEther */.yp)(ask?.reservePrice || 0).toString(), - payment_token: ask?.auctionCurrency, - payment_token_contract: { - name: 'Ether', - symbol: 'ETH', - decimals: 18, - address: ask?.auctionCurrency || '' - }, - listing_time: 0, - side: src/* NonFungibleTokenAPI.OrderSide.Sell */.x4.OrderSide.Sell, - quantity: '1', - expiration_time: 0, - order_hash: ask?.transactionHash || '', - maker_account: { - user: { - username: ask?.tokenOwner || '' + }, [ + options, + text, + error + ]); + return error ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, { + children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, { + color: "textPrimary", + variant: "body1", + className: classes.text, + children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(react_i18next__WEBPACK_IMPORTED_MODULE_7__/* .Trans */ .c, { + i18nKey: "backup_qrcode_error", + components: { + again: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("span", { + onClick: ()=>{ + setError(false); }, - address: ask?.tokenOwner || '', - profile_img_url: '', - link: `https://zora.co/${ask?.tokenOwner}` - } - }; - } - return; - }); - return orders.filter((order)=>order !== undefined - ); - } - async getOrders(tokenAddress, tokenId, side) { - switch(side){ - case src/* NonFungibleTokenAPI.OrderSide.Buy */.x4.OrderSide.Buy: - return this.getOffers(tokenAddress, tokenId); - case src/* NonFungibleTokenAPI.OrderSide.Sell */.x4.OrderSide.Sell: - return this.getListings(tokenAddress, tokenId); - default: - return []; - } - } - constructor(){ - this.client = new dist.GraphQLClient(ZORA_MAINNET_GRAPHQL_URL); - } + className: classes.info + }) + } + }) + }) + }) : image ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("img", { + src: image, + ...canvasProps + }) : /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("canvas", { + ...canvasProps, + ref: ref + }); } /***/ }), -/***/ 89260: +/***/ 73798: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "x": () => (/* binding */ SelectTokenChip) +/* harmony export */ }); +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35667); +/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(83849); +/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(11142); +/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(69314); +/* harmony import */ var _masknet_theme__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(31939); +/* harmony import */ var _mui_icons_material_ExpandMore__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(96209); +/* harmony import */ var _mui_icons_material_Error__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(72388); +/* harmony import */ var lodash_unified__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(21122); +/* harmony import */ var _locales__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(18261); +/* harmony import */ var _TokenIcon__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(95462); -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - "ry": () => (/* reexport */ ONE), - "xE": () => (/* reexport */ ZERO), - "FG": () => (/* reexport */ createLookupTableResolver), - "bu": () => (/* reexport */ proxy/* getProxyWebsocketInstance */.bu), - "SL": () => (/* reexport */ hookTransform), - "T1": () => (/* reexport */ isGreaterThan), - "KH": () => (/* reexport */ isGreaterThanOrEqualTo), - "FI": () => (/* reexport */ isLessThan), - "PW": () => (/* reexport */ isLessThanOrEqualTo), - "P$": () => (/* reexport */ isOne), - "xP": () => (/* reexport */ isPositive), - "Fr": () => (/* reexport */ isZero), - "w5": () => (/* reexport */ leftShift), - "$q": () => (/* reexport */ multipliedBy), - "wA": () => (/* reexport */ pow10), - "pu": () => (/* reexport */ rightShift), - "FH": () => (/* reexport */ toFixed), - "vs": () => (/* reexport */ transform), - "UU": () => (/* reexport */ useBeat), - "ND": () => (/* reexport */ useBeatRetry) -}); - -// UNUSED EXPORTS: ProviderProxy, dividedBy, getWebSocketInstance, scale10, sendMessageToProxy, transformFromJSON - -// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.0.0/node_modules/react/index.js -var react = __webpack_require__(86248); -// EXTERNAL MODULE: ../../node_modules/.pnpm/react-use@17.3.2_react-dom@18.0.0+react@18.0.0/node_modules/react-use/esm/useTimeoutFn.js -var useTimeoutFn = __webpack_require__(5710); -// EXTERNAL MODULE: ../../node_modules/.pnpm/react-use@17.3.2_react-dom@18.0.0+react@18.0.0/node_modules/react-use/esm/useAsyncRetry.js -var useAsyncRetry = __webpack_require__(64452); -;// CONCATENATED MODULE: ../web3-shared/base/src/hooks/useBeat.ts - - -function useBeat(delay = 1000) { - const [beat, setBeat] = (0,react.useState)(0); - const [, , reset] = (0,useTimeoutFn/* default */.Z)(()=>{ - setBeat((x)=>(x + 1) % Number.MAX_SAFE_INTEGER - ); - reset(); - }, delay); - return beat; -} -function useBeatRetry(fn, delay = 1000, deps = []) { - const beat = useBeat(delay); - return (0,useAsyncRetry/* default */.Z)(fn, deps.concat(beat)); -} -;// CONCATENATED MODULE: ../web3-shared/base/src/hooks/index.ts -// EXTERNAL MODULE: ../../node_modules/.pnpm/bignumber.js@9.0.2/node_modules/bignumber.js/bignumber.js -var bignumber = __webpack_require__(42263); -var bignumber_default = /*#__PURE__*/__webpack_require__.n(bignumber); -;// CONCATENATED MODULE: ../web3-shared/base/src/utils/number.ts -const ZERO = new (bignumber_default())('0'); -const ONE = new (bignumber_default())('1'); -/** n === 0 */ function isZero(n) { - return n === 0 || n === '0' || new (bignumber_default())(n).isZero(); -} -/** n === 1 */ function isOne(n) { - return n === 1 || n === '1' || new (bignumber_default())(n).isEqualTo(ONE); -} -/** a > b */ function isGreaterThan(a, b) { - return new (bignumber_default())(a).isGreaterThan(b); -} -/** a >= b */ function isGreaterThanOrEqualTo(a, b) { - return new (bignumber_default())(a).isGreaterThanOrEqualTo(b); -} -/** a < b */ function isLessThan(a, b) { - return new (bignumber_default())(a).isLessThan(b); -} -/** a <= b */ function isLessThanOrEqualTo(a, b) { - return new (bignumber_default())(a).isLessThanOrEqualTo(b); -} -/** a > 0 */ function isPositive(n) { - return new (bignumber_default())(n).isPositive(); -} -/** a * b */ function multipliedBy(a, b) { - return new (bignumber_default())(a).multipliedBy(b); -} -/** 10 ** n */ /** @deprecated use scale10 */ function pow10(n) { - return new (bignumber_default())(10).pow(n); -} -/** scale 10 ** n * m */ function scale10(m, n = 1) { - const x = new BigNumber(10).shiftedBy(n); - return n === 1 ? x : x.multipliedBy(m); -} -/** n * (10 ** m) */ function rightShift(n, m) { - return new (bignumber_default())(n).shiftedBy(+(m ?? 0)); -} -/** n / (10 ** m) */ function leftShift(n, m) { - return new (bignumber_default())(n).shiftedBy(-(m ?? 0)); -} -/** a / b */ function dividedBy(a, b) { - return new BigNumber(a).dividedBy(b); -} -function toFixed(value = 0, decimalPlaces) { - const n = new (bignumber_default())(value); - return decimalPlaces ? n.toFixed(decimalPlaces) : n.toFixed(); -} -;// CONCATENATED MODULE: ../web3-shared/base/src/utils/index.ts -// EXTERNAL MODULE: ../web3-shared/base/src/proxy/index.ts -var proxy = __webpack_require__(19296); -;// CONCATENATED MODULE: ../web3-shared/base/src/helpers/constants.ts -function transform(chainIdEnum, constants, environment = {}) { - return (chainId = 1)=>{ - const chainName = chainIdEnum[chainId]; - // unknown chain id - if (!chainName) return Object.freeze({}); - const entries = Object.keys(constants).map((name)=>{ - let value = constants[name][chainName]; - if (Array.isArray(value)) { - value = value.map((item)=>{ - if (typeof item === 'string') { - return replaceAll(item, environment); - } - return item; - }); - } else if (typeof value === 'string') { - value = replaceAll(value, environment); - } - return [ - name, - value - ]; - }); - return Object.freeze(Object.fromEntries(entries)); +const useStyles = (0,_masknet_theme__WEBPACK_IMPORTED_MODULE_2__/* .makeStyles */ .ZL)()((theme)=>{ + return { + chip: { + border: 'none', + borderRadius: 8, + paddingLeft: theme.spacing(0.5), + fontSize: 12 + }, + loadingChip: { + marginRight: theme.spacing(-0.5), + fontSize: 12 + }, + icon: { + color: theme.palette.text.primary, + pointerEvents: 'none' + }, + tokenIcon: { + width: 16, + height: 16 + }, + noToken: {} }; +}); +// todo: merge into one with SelectTokenChip +function SelectTokenChip(props) { + const t = (0,_locales__WEBPACK_IMPORTED_MODULE_3__/* .useSharedI18N */ .B)(); + const { token , error , loading =false , readonly =false , ChipProps , chainId } = props; + const classes = (0,_masknet_theme__WEBPACK_IMPORTED_MODULE_2__/* .useStylesExtends */ .Bc)(useStyles(), props); + if (loading) return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z, { + className: classnames__WEBPACK_IMPORTED_MODULE_1___default()(classes.chip, classes.loadingChip), + icon: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, { + size: 16 + }), + size: "small", + clickable: false, + variant: "outlined" + }); + if (!token) return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z, { + className: classnames__WEBPACK_IMPORTED_MODULE_1___default()(classes.chip, classes.noToken), + label: t.select_token(), + size: "small", + clickable: !readonly, + ...ChipProps + }); + if (token && error) return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z, { + className: classes.chip, + icon: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_TokenIcon__WEBPACK_IMPORTED_MODULE_4__/* .TokenIcon */ .T, { + address: token.address, + name: token.name, + logoURL: token.logoURL + }), + deleteIcon: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_icons_material_Error__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z, { + className: classes.icon + }), + label: token.symbol, + color: "default", + size: "small", + variant: "outlined", + clickable: !readonly, + // the delete icon only visible when this callback provided + onDelete: lodash_unified__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, + ...ChipProps + }); + return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z, { + className: classes.chip, + icon: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_TokenIcon__WEBPACK_IMPORTED_MODULE_4__/* .TokenIcon */ .T, { + classes: { + icon: classes.tokenIcon + }, + address: token.address, + name: token.name, + logoURL: token.logoURL, + chainId: chainId + }), + deleteIcon: readonly ? undefined : /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_icons_material_ExpandMore__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .Z, { + className: classes.icon + }), + color: "default", + size: "small", + variant: "outlined", + clickable: !readonly, + label: token.symbol, + // the delete icon only visible when this callback provided + onDelete: readonly ? undefined : lodash_unified__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, + ...ChipProps + }); } -function transformFromJSON(chainIdEnum, json, fallbackConstants, environment = {}) { - try { - const constants = JSON.parse(json); - return transform(chainIdEnum, constants, environment); - } catch { - return transform(chainIdEnum, fallbackConstants, environment); - } -} -function hookTransform(getConstants) { - return function useConstants(chainId) { - return (0,react.useMemo)(()=>getConstants(chainId) - , [ - chainId - ]); - }; -} -function replaceAll(input, values) { - return input.replace(/\${([^}]+)}/g, (match, p1)=>values[p1] ?? match - ); -} - -;// CONCATENATED MODULE: ../web3-shared/base/src/helpers/lookupTable.ts -function createLookupTableResolver(map, fallback) { - function resolveFallback(key) { - if (typeof fallback === 'function') return fallback(key); - return fallback; - } - return (key)=>map[key] ?? resolveFallback(key) - ; -} - -;// CONCATENATED MODULE: ../web3-shared/base/src/helpers/index.ts +/***/ }), +/***/ 58407: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -;// CONCATENATED MODULE: ../web3-shared/base/src/index.ts - - - +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "W": () => (/* binding */ SettingSwitch) +/* harmony export */ }); +/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35878); +/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(23465); +/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(62365); +const SettingSwitch = (0,_mui_material__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .ZP)(_mui_material__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)(({ size })=>{ + const isSmall = size === 'small'; + const base = isSmall ? 16 : 24; + return { + [`&.${_mui_material__WEBPACK_IMPORTED_MODULE_2__/* ["default"].root */ .Z.root}`]: { + width: base * 3, + height: base * 2, + padding: isSmall ? 8 : 12 + }, + [`& .${_mui_material__WEBPACK_IMPORTED_MODULE_2__/* ["default"].thumb */ .Z.thumb}`]: { + width: base, + height: base + }, + [`& .${_mui_material__WEBPACK_IMPORTED_MODULE_2__/* ["default"].checked */ .Z.checked}`]: { + [`&.${_mui_material__WEBPACK_IMPORTED_MODULE_2__/* ["default"].switchBase */ .Z.switchBase}`]: { + transform: `translateX(${isSmall ? 20 : 28}px)` + }, + [`&+.${_mui_material__WEBPACK_IMPORTED_MODULE_2__/* ["default"].track */ .Z.track}`]: { + opacity: '0.1 !important' + } + }, + [`& .${_mui_material__WEBPACK_IMPORTED_MODULE_2__/* ["default"].track */ .Z.track}`]: { + borderRadius: base / 2 + }, + [`& .${_mui_material__WEBPACK_IMPORTED_MODULE_2__/* ["default"].switchBase */ .Z.switchBase}`]: { + top: isSmall ? 4 : 3, + transform: `translateX(${isSmall ? 4 : 2}px)` + } + }; +}); /***/ }), -/***/ 26223: +/***/ 44092: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "x": () => (/* binding */ TokenAmountPanel) +/* harmony export */ }); +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35667); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(58757); +/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(83849); +/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var bignumber_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(42263); +/* harmony import */ var bignumber_js__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(bignumber_js__WEBPACK_IMPORTED_MODULE_3__); +/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(96436); +/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(21784); +/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(11142); +/* harmony import */ var _masknet_theme__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(31939); +/* harmony import */ var _masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(67938); +/* harmony import */ var _SelectTokenChip__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(73798); +/* harmony import */ var _locales__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(18261); +/* harmony import */ var _wallet__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(96274); -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - "wG": () => (/* binding */ getAaveConstants), - "V6": () => (/* binding */ getCoinGeckoConstants), - "fN": () => (/* binding */ getCoinMarketCapConstants), - "Bx": () => (/* binding */ getDeBankConstants), - "Wt": () => (/* binding */ getEthereumConstants), - "i1": () => (/* binding */ getExplorerConstants), - "af": () => (/* binding */ getITOConstants), - "Hk": () => (/* binding */ getLBPConstants), - "oO": () => (/* binding */ getLidoConstants), - "pS": () => (/* binding */ getNftRedPacketConstants), - "hc": () => (/* binding */ getOpenOceanConstants), - "jk": () => (/* binding */ getOpenseaAPIConstants), - "t0": () => (/* binding */ getRPCConstants), - "GV": () => (/* binding */ getRedPacketConstants), - "h6": () => (/* binding */ getSpaceStationGalaxyConstants), - "aV": () => (/* binding */ getTokenConstants), - "Gr": () => (/* binding */ getTraderConstants), - "$o": () => (/* binding */ getTrendingConstants), - "oV": () => (/* binding */ getZerionConstants), - "Qq": () => (/* binding */ useArtBlocksConstants), - "ZK": () => (/* binding */ useCryptoArtAIConstants), - "HV": () => (/* binding */ useEthereumConstants), - "N_": () => (/* binding */ useGitcoinConstants), - "JH": () => (/* binding */ useGoodGhostingConstants), - "mg": () => (/* binding */ useITOConstants), - "kt": () => (/* binding */ useMaskBoxConstants), - "uq": () => (/* binding */ useNftRedPacketConstants), - "$Y": () => (/* binding */ useOpenseaAPIConstants), - "tL": () => (/* binding */ usePoolTogetherConstants), - "j8": () => (/* binding */ useRPCConstants), - "AA": () => (/* binding */ useRedPacketConstants), - "gE": () => (/* binding */ useSpaceStationGalaxyConstants), - "hy": () => (/* binding */ useTokenAssetBaseURLConstants), - "kd": () => (/* binding */ useTokenConstants), - "HQ": () => (/* binding */ useTokenListConstants), - "L7": () => (/* binding */ useTraderConstants) -}); - -// UNUSED EXPORTS: getAirdropConstants, getArtBlocksConstants, getCryptoArtAIConstants, getGitcoinConstants, getGoodGhostingConstants, getMaskBoxConstants, getPoolTogetherConstants, getTokenAssetBaseURLConstants, getTokenListConstants, useAaveConstants, useAirdropConstants, useCoinGeckoConstants, useCoinMarketCapConstants, useDeBankConstants, useExplorerConstants, useLBPConstants, useLidoConstants, useOpenOceanConstants, useTrendingConstants, useZerionConstants -;// CONCATENATED MODULE: ../web3-constants/evm/airdrop.json -const airdrop_namespaceObject = JSON.parse('{"AIRDROP_CONTRACT_ADDRESS":{"Mainnet":"0x7adcfcafb69aae283f4268e59209ba64a5db4d91","Ropsten":"0xf1276B659FF28EDf92accFb013B1E6c9F782bFfF","Rinkeby":"0x2189D088927bfc1563d0b3E447F6472402FED6DD","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""}}'); -;// CONCATENATED MODULE: ../web3-constants/evm/ethereum.json -const ethereum_namespaceObject = JSON.parse('{"BALANCE_CHECKER_ADDRESS":{"Mainnet":"0xb1F8e55c7f64D203C1400B9D8555d050F94aDF39","Ropsten":"0xD5C432dFbDEcB6068583BC5241D1b308D70721a4","Rinkeby":"0x0987506Bc4C4167E1a6d0Be0e007E4A9609d5c77","Kovan":"","Gorli":"","BSC":"0xC119574D5Fb333F5AC018658D4d8b5035E16bf39","BSCT":"0x7f004a42D760Eb68eB95Fa50f739917675181fCA","Matic":"0x6cc1b1058F9153358278C35E0b2D382f1585854B","Mumbai":"0xFEd05EE9b7DdbAb97Abc55e27EF95C7c14688Aad","Arbitrum":"0xAb7B1bE4233A04e5C43a810E75657ECED8E5463B","Arbitrum_Rinkeby":"0xF98dC9391273c5ab9fa2c980A8d4F875ece802db","xDai":"0x96c7D011cdFD467f551605f0f5Fce279F86F4186","Avalanche":"0xC119574D5Fb333F5AC018658D4d8b5035E16bf39","Avalanche_Fuji":"","Celo":"0x8e28F1d64ceD52b9A09aB1AA3071Aa3c05802d1F","Fantom":"0xc119574d5fb333f5ac018658d4d8b5035e16bf39","Aurora":"0xC119574D5Fb333F5AC018658D4d8b5035E16bf39","Aurora_Testnet":"","Conflux":""},"MULTICALL_ADDRESS":{"Mainnet":"0x1F98415757620B543A52E61c46B32eB19261F984","Ropsten":"0x1F98415757620B543A52E61c46B32eB19261F984","Rinkeby":"0x1F98415757620B543A52E61c46B32eB19261F984","Kovan":"0x1F98415757620B543A52E61c46B32eB19261F984","Gorli":"0x1F98415757620B543A52E61c46B32eB19261F984","BSC":"0x5211fe40fE49a13CC86E3bC77855152457eDE585","BSCT":"","Matic":"0x54c06a5D7C6447BE47E07390eD7da7e6994585f4","Mumbai":"","Arbitrum":"0xadF885960B47eA2CD9B55E6DAc6B42b7Cb2806dB","Arbitrum_Rinkeby":"0xa501c031958F579dB7676fF1CE78AD305794d579","xDai":"0xAb7B1bE4233A04e5C43a810E75657ECED8E5463B","Avalanche":"0x6cc1b1058F9153358278C35E0b2D382f1585854B","Avalanche_Fuji":"","Celo":"0x072453AdEC16cFC7FB6Af1517c3f25407180cccC","Fantom":"0x913975af2Bb8a6Be4100D7dc5e9765B77F6A5d6c","Aurora":"0x6cc1b1058F9153358278C35E0b2D382f1585854B","Aurora_Testnet":"","Conflux":"0x19f179d7e0d7d9f9d5386afff64271d98a91615b"},"ENS_REGISTRAR_ADDRESS":{"Mainnet":"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e","Ropsten":"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e","Rinkeby":"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e","Kovan":"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e","Gorli":"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"ENS_REVERSE_RECORDS_ADDRESS":{"Mainnet":"0x3671aE578E63FdF66ad4F3E12CC0c0d71Ac7510C","Ropsten":"0x3671aE578E63FdF66ad4F3E12CC0c0d71Ac7510C","Rinkeby":"0x3671aE578E63FdF66ad4F3E12CC0c0d71Ac7510C","Kovan":"0x3671aE578E63FdF66ad4F3E12CC0c0d71Ac7510C","Gorli":"0x3671aE578E63FdF66ad4F3E12CC0c0d71Ac7510C","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""}}'); -// EXTERNAL MODULE: ../web3-constants/evm/debank.json -var debank = __webpack_require__(60816); -;// CONCATENATED MODULE: ../web3-constants/evm/coingecko.json -const coingecko_namespaceObject = JSON.parse('{"PLATFORM_ID":{"Mainnet":"ethereum","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"binance-smart-chain","BSCT":"","Matic":"polygon-pos","Mumbai":"","Arbitrum":"arbitrum-one","Arbitrum_Rinkeby":"","xDai":"xdai","Avalanche":"avalanche","Avalanche_Fuji":"","Celo":"celo","Fantom":"fantom","Aurora":"aurora","Aurora_Testnet":"","Conflux":""},"COIN_ID":{"Mainnet":"ethereum","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"binancecoin","BSCT":"","Matic":"matic-network","Mumbai":"arbitrum-one","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"xdai","Avalanche":"avalanche-2","Avalanche_Fuji":"","Celo":"celo","Fantom":"fantom","Aurora":"ethereum","Aurora_Testnet":"","Conflux":"conflux-token"}}'); -;// CONCATENATED MODULE: ../web3-constants/evm/coinmarketcap.json -const coinmarketcap_namespaceObject = JSON.parse('{"CHAIN_ID":{"Mainnet":"1027","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"1839","BSCT":"","Matic":"3890","Mumbai":"","Arbitrum":"11841","Arbitrum_Rinkeby":"","xDai":"5601","Avalanche":"43114","Avalanche_Fuji":"","Celo":"5567","Fantom":"3513","Aurora":"1313161554","Aurora_Testnet":"","Conflux":""}}'); -;// CONCATENATED MODULE: ../web3-constants/evm/zerion.json -const zerion_namespaceObject = JSON.parse('{"ASSETS_SCOPE_NAME":{"Mainnet":"assets","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"bsc-assets","BSCT":"","Matic":"polygon-assets","Mumbai":"","Arbitrum":"arbitrum-assets","Arbitrum_Rinkeby":"","xDai":"xdai-assets","Avalanche":"avalanche-assets","Avalanche_Fuji":"","Celo":"celo-assets","Fantom":"fantom-assets","Aurora":"aurora-assets","Aurora_Testnet":"","Conflux":""},"TRANSACTIONS_SCOPE_NAME":{"Mainnet":"transactions","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"bsc-transactions","BSCT":"","Matic":"polygon-transactions","Mumbai":"","Arbitrum":"arbitrum-transactions","Arbitrum_Rinkeby":"","xDai":"xdai-transactions","Avalanche":"avalanche-transactions","Avalanche_Fuji":"","Celo":"celo-transactions","Fantom":"fantom-transactions","Aurora":"aurora-transactions","Aurora_Testnet":"","Conflux":""}}'); -;// CONCATENATED MODULE: ../web3-constants/evm/gitcoin.json -const gitcoin_namespaceObject = JSON.parse('{"GITCOIN_MAINTAINER_ADDRESS":{"Mainnet":"0x00De4B13153673BCAE2616b67bf822500d325Fc3","Ropsten":"","Rinkeby":"0x00De4B13153673BCAE2616b67bf822500d325Fc3","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"0x00De4B13153673BCAE2616b67bf822500d325Fc3","Mumbai":"0x00De4B13153673BCAE2616b67bf822500d325Fc3","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"BULK_CHECKOUT_ADDRESS":{"Mainnet":"0x7d655c57f71464B6f83811C55D84009Cd9f5221C","Ropsten":"","Rinkeby":"0x7d655c57f71464B6f83811C55D84009Cd9f5221C","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"0xb99080b9407436eBb2b8Fe56D45fFA47E9bb8877","Mumbai":"0x3E2849E2A489C8fE47F52847c42aF2E8A82B9973","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"GITCOIN_ETH_ADDRESS":{"Mainnet":"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE","Ropsten":"","Rinkeby":"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE","Mumbai":"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"GITCOIN_TIP_PERCENTAGE":{"Mainnet":5,"Ropsten":5,"Rinkeby":5,"Kovan":5,"Gorli":5,"BSC":5,"BSCT":5,"Matic":5,"Mumbai":5,"Arbitrum":5,"Arbitrum_Rinkeby":5,"xDai":5,"Avalanche":5,"Avalanche_Fuji":0,"Celo":0,"Fantom":0,"Aurora":0,"Aurora_Testnet":0,"Conflux":0}}'); -;// CONCATENATED MODULE: ../web3-constants/evm/openocean.json -const openocean_namespaceObject = JSON.parse('{"REFERRER_ADDRESS":{"Mainnet":"0x934B510D4C9103E6a87AEf13b816fb080286D649","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"0x934B510D4C9103E6a87AEf13b816fb080286D649","BSCT":"","Matic":"0x934B510D4C9103E6a87AEf13b816fb080286D649","Mumbai":"","Arbitrum":"0x934B510D4C9103E6a87AEf13b816fb080286D649","Arbitrum_Rinkeby":"","xDai":"0x934B510D4C9103E6a87AEf13b816fb080286D649","Avalanche":"0x934B510D4C9103E6a87AEf13b816fb080286D649","Avalanche_Fuji":"0x934B510D4C9103E6a87AEf13b816fb080286D649","Celo":"0x934B510D4C9103E6a87AEf13b816fb080286D649","Fantom":"0x934B510D4C9103E6a87AEf13b816fb080286D649","Aurora":"","Aurora_Testnet":"","Conflux":""}}'); -;// CONCATENATED MODULE: ../web3-constants/evm/ito.json -const ito_namespaceObject = JSON.parse('{"ITO_CONTRACT_ADDRESS":{"Mainnet":"0xf110fec3075d7531141b6bf16b11604cb028a17b","Ropsten":"","Rinkeby":"0x7751b8c715d1Df74D181C86aE01801330211f370","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"MASK_ITO_CONTRACT_ADDRESS":{"Mainnet":"0x86812da3A623ab9606976078588b80C315E55FA3","Ropsten":"","Rinkeby":"0x0aC41A27bA9F132D5687CAC986f5302Da6f5F9f6","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"ITO2_CONTRACT_ADDRESS":{"Mainnet":"0xc2CFbF22d6Dc87D0eE18d38d73733524c109Ff46","Ropsten":"0xBD4c3Cf084B6F4d25430Ee5d44436e860Cc58Ee4","Rinkeby":"","Kovan":"","Gorli":"","BSC":"0x96c7D011cdFD467f551605f0f5Fce279F86F4186","BSCT":"","Matic":"0xF9F7C1496c21bC0180f4B64daBE0754ebFc8A8c0","Mumbai":"","Arbitrum":"0x71834a3FDeA3E70F14a93ED85c6be70925D0CAd9","Arbitrum_Rinkeby":"0x9b3649eC8C9f68484acC76D437B145a4e58Bf2A2","xDai":"0x913975af2Bb8a6Be4100D7dc5e9765B77F6A5d6c","Avalanche":"0x02Ea0720254F7fa4eca7d09A1b9C783F1020EbEF","Avalanche_Fuji":"0xf5056B96ab242C566002852d0b98ce0BcDf1af51","Celo":"0xaA5bfd7355637eA7405CB194a55303e821c4c569","Fantom":"0x981be454a930479d92C91a0092D204b64845A5D6","Aurora":"0x2cf91AD8C175305EBe6970Bd8f81231585EFbd77","Aurora_Testnet":"0xdcA6F476EebCDE8FE8b072e3fC80dBC28dC209b3","Conflux":"0x066804d9123bf2609ed4a4a40b1177a9c5a9ed51"},"ITO2_CONTRACT_CREATION_BLOCK_HEIGHT":{"Mainnet":12766513,"Ropsten":10572050,"Rinkeby":0,"Kovan":0,"Gorli":0,"BSC":8885927,"BSCT":0,"Matic":16516643,"Mumbai":0,"Arbitrum":102022,"Arbitrum_Rinkeby":708696,"xDai":17865755,"Avalanche":8289892,"Avalanche_Fuji":4751103,"Celo":10278776,"Fantom":25071597,"Aurora":57350598,"Aurora_Testnet":77919102,"Conflux":37722805},"DEFAULT_QUALIFICATION_ADDRESS":{"Mainnet":"0x81b6ae377e360dcad63611846a2516f4ba8c88ac","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"0x5B966f3a32Db9C180843bCb40267A66b73E4f022","BSCT":"","Matic":"0x02Ea0720254F7fa4eca7d09A1b9C783F1020EbEF","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"0x02Ea0720254F7fa4eca7d09A1b9C783F1020EbEF","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"DEFAULT_QUALIFICATION2_ADDRESS":{"Mainnet":"0x4dC5f343Fe57E4fbDA1B454d125D396A3181272c","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"0xAb7B1bE4233A04e5C43a810E75657ECED8E5463B","BSCT":"","Matic":"0x2cf91AD8C175305EBe6970Bd8f81231585EFbd77","Mumbai":"","Arbitrum":"0x913975af2Bb8a6Be4100D7dc5e9765B77F6A5d6c","Arbitrum_Rinkeby":"0xEbd753E66649C824241E63894301BA8Db5DBF5Bb","xDai":"0x71834a3FDeA3E70F14a93ED85c6be70925D0CAd9","Avalanche":"0x54a0A221C25Fc0a347EC929cFC5db0be17fA2a2B","Avalanche_Fuji":"","Celo":"0x2cB220F925E603A04BEE05F210252120deBA29d7","Fantom":"0x83D6b366f21e413f214EB077D5378478e71a5eD2","Aurora":"0x578a7Fee5f0D8CEc7d00578Bf37374C5b95C4b98","Aurora_Testnet":"","Conflux":"0x05ee315e407c21a594f807d61d6cc11306d1f149"},"SUBGRAPH_URL":{"Mainnet":"https://api.thegraph.com/subgraphs/name/dimensiondev/mask-ito-mainnet","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"https://api.thegraph.com/subgraphs/name/dimensiondev/mask-ito-bsc-mainnet","BSCT":"","Matic":"https://api.thegraph.com/subgraphs/name/dimensiondev/mask-ito-polygon","Mumbai":"","Arbitrum":"https://api.thegraph.com/subgraphs/name/dimensiondev/mask-ito-arbitrum-one","Arbitrum_Rinkeby":"","xDai":"https://api.thegraph.com/subgraphs/name/dimensiondev/mask-ito-xdai","Avalanche":"https://api.thegraph.com/subgraphs/name/dimensiondev/mask-ito-avalanche","Avalanche_Fuji":"","Celo":"https://api.thegraph.com/subgraphs/name/dimensiondev/mask-ito-celo","Fantom":"https://api.thegraph.com/subgraphs/name/dimensiondev/mask-ito-fantom","Aurora":"https://api.thegraph.com/subgraphs/name/dimensiondev/mask-ito-aurora","Aurora_Testnet":"","Conflux":""}}'); -;// CONCATENATED MODULE: ../web3-constants/evm/lbp.json -const lbp_namespaceObject = JSON.parse('{"BALANCER_POOLS_SUBGRAPH_URL":{"Mainnet":"https://api.thegraph.com/subgraphs/name/balancer-labs/balancer-beta","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""}}'); -;// CONCATENATED MODULE: ../web3-constants/evm/red-packet.json -const red_packet_namespaceObject = JSON.parse('{"HAPPY_RED_PACKET_ADDRESS_V1":{"Mainnet":"0x26760783c12181efa3c435aee4ae686c53bdddbb","Ropsten":"0x6d84e4863c0530bc0bb4291ef0ff454a40660ca3","Rinkeby":"0x575f906db24154977c7361c2319e2b25e897e3b6","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"HAPPY_RED_PACKET_ADDRESS_V2":{"Mainnet":"0x8D8912E1237F9FF3EF661F32743CFB276E052F98","Ropsten":"0x2E37676de88aD97f2BdBAa24d1421b4E3f3a63c8","Rinkeby":"0x575f906db24154977c7361c2319e2b25e897e3b6","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"HAPPY_RED_PACKET_ADDRESS_V3":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"0x71834a3FDeA3E70F14a93ED85c6be70925D0CAd9","BSCT":"","Matic":"0x913975af2bb8a6be4100d7dc5e9765b77f6a5d6c","Mumbai":"0x0061E06c9f640a03C4981f43762d2AE5e03873c5","Arbitrum":"0x02Ea0720254F7fa4eca7d09A1b9C783F1020EbEF","Arbitrum_Rinkeby":"0x6B70EC653c4331bdD0D0DCC7C941eb594e69a91d","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"HAPPY_RED_PACKET_ADDRESS_V4":{"Mainnet":"0xaBBe1101FD8fa5847c452A6D70C8655532B03C33","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"0x0ca42C178e14c618c81B8438043F27d9D38145f6","BSCT":"","Matic":"0x93e0b87A0aD0C991dc1B5176ddCD850c9a78aabb","Mumbai":"","Arbitrum":"0x83D6b366f21e413f214EB077D5378478e71a5eD2","Arbitrum_Rinkeby":"0x4A77E797031257db72F7D2C3Ec08a4FAc5c8CfE9","xDai":"0x54a0A221C25Fc0a347EC929cFC5db0be17fA2a2B","Avalanche":"0xF9F7C1496c21bC0180f4B64daBE0754ebFc8A8c0","Avalanche_Fuji":"0x3f64DFB6009d138DfD7b62916f3322A438d8b00D","Celo":"0xAb7B1bE4233A04e5C43a810E75657ECED8E5463B","Fantom":"0x578a7Fee5f0D8CEc7d00578Bf37374C5b95C4b98","Aurora":"0x19f179D7e0D7d9F9d5386afFF64271D98A91615B","Aurora_Testnet":"0xdB93cCd481012bB5D1E2c8d0aF7C5f2940c00fdC","Conflux":"0x96c7d011cdfd467f551605f0f5fce279f86f4186"},"HAPPY_RED_PACKET_ADDRESS_V4_BLOCK_HEIGHT":{"Mainnet":12939427,"Ropsten":0,"Rinkeby":0,"Kovan":0,"Gorli":0,"BSC":9657240,"BSCT":0,"Matic":17494774,"Mumbai":0,"Arbitrum":909051,"Arbitrum_Rinkeby":0,"xDai":18101937,"Avalanche":8306507,"Avalanche_Fuji":4751550,"Celo":10413552,"Fantom":25112473,"Aurora":57552338,"Aurora_Testnet":77918765,"Conflux":37670572},"SUBGRAPH_URL":{"Mainnet":"https://api.thegraph.com/subgraphs/name/dimensiondev/mask-red-packet-mainnet","Ropsten":"https://api.thegraph.com/subgraphs/name/dimensiondev/mask-red-packet-ropsten","Rinkeby":"","Kovan":"","Gorli":"","BSC":"https://api.thegraph.com/subgraphs/name/dimensiondev/mask-red-packet-bsc-mainnet","BSCT":"","Matic":"https://api.thegraph.com/subgraphs/name/dimensiondev/mask-red-packet-polygon","Mumbai":"https://api.thegraph.com/subgraphs/name/dimensiondev/mask-red-packet-mumbai","Arbitrum":"https://api.thegraph.com/subgraphs/name/dimensiondev/mask-red-packet-arbitrum-one","Arbitrum_Rinkeby":"","xDai":"https://api.thegraph.com/subgraphs/name/dimensiondev/mask-red-packet-xdai","Avalanche":"https://api.thegraph.com/subgraphs/name/dimensiondev/mask-red-packet-avalanche","Avalanche_Fuji":"","Celo":"https://api.thegraph.com/subgraphs/name/dimensiondev/mask-red-packet-celo","Fantom":"https://api.thegraph.com/subgraphs/name/dimensiondev/mask-red-packet-fantom","Aurora":"https://api.thegraph.com/subgraphs/name/dimensiondev/mask-red-packet-aurora","Aurora_Testnet":"","Conflux":""}}'); -;// CONCATENATED MODULE: ../web3-constants/evm/nft-red-packet.json -const nft_red_packet_namespaceObject = JSON.parse('{"RED_PACKET_NFT_ADDRESS":{"Mainnet":"0x8d285739523FC2Ac8eC9c9C229ee863C8C9bF8C8","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"0xf8968e1Fcf1440Be5Cec7Bb495bcee79753d5E06","BSCT":"","Matic":"0xf6Dc042717EF4C097348bE00f4BaE688dcaDD4eA","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"0x96c7D011cdFD467f551605f0f5Fce279F86F4186","Avalanche_Fuji":"0x5de932BD252DD79231C9eDB5F2e30D488B785109","Celo":"","Fantom":"","Aurora":"0x05ee315E407C21a594f807D61d6CC11306D1F149","Aurora_Testnet":"0x97369fEE7db34E0BfE47861f2ec44b4378d13eB4","Conflux":"0x5b966f3a32db9c180843bcb40267a66b73e4f022"},"SUBGRAPH_URL":{"Mainnet":"https://api.thegraph.com/subgraphs/name/dimensiondev/mask-nft-red-packet-mainnet","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"https://api.thegraph.com/subgraphs/name/dimensiondev/mask-nft-red-packet-bsc-mainnet","BSCT":"","Matic":"https://api.thegraph.com/subgraphs/name/dimensiondev/mask-nft-red-packet-polygon","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"https://api.thegraph.com/subgraphs/name/dimensiondev/mask-nft-red-packet-avalanche","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"https://api.thegraph.com/subgraphs/name/dimensiondev/mask-nft-red-packet-aurora","Aurora_Testnet":"","Conflux":""}}'); -;// CONCATENATED MODULE: ../web3-constants/evm/token.json -const token_namespaceObject = JSON.parse('{"WNATIVE_ADDRESS":{"Mainnet":"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2","Ropsten":"0xc778417E063141139Fce010982780140Aa0cD5Ab","Rinkeby":"0xc778417E063141139Fce010982780140Aa0cD5Ab","Kovan":"0xd0A1E359811322d97991E03f863a0C30C2cF029C","Gorli":"0xb4fbf271143f4fbf7b91a5ded31805e42b2208d6","BSC":"0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c","BSCT":"0xaE8E19eFB41e7b96815649A6a60785e1fbA84C1e","Matic":"0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270","Mumbai":"0x9c3C9283D3e44854697Cd22D3Faa240Cfb032889","Arbitrum":"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1","Arbitrum_Rinkeby":"0xB47e6A5f8b33b3F17603C83a0535A9dcD7E32681","xDai":"0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d","Avalanche":"0xb31f66aa3c1e785363f0875a1b74e27b85fd66c7","Avalanche_Fuji":"","Celo":"0x471EcE3750Da237f93B8E339c536989b8978a438","Fantom":"0x21be370d5312f44cb42ce377bc9b8a0cef1a4c83","Aurora":"0xC9BdeEd33CD01541e1eeD10f90519d2C06Fe3feB","Aurora_Testnet":"","Conflux":""},"LDO_stETH_ADDRESS":{"Mainnet":"0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"0x1643E812aE58766192Cf7D2Cf9567dF2C37e9B7F","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"USDC_ADDRESS":{"Mainnet":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","Ropsten":"0x0D9C8723B343A8368BebE0B5E89273fF8D712e3C","Rinkeby":"0x4DBCdF9B62e891a7cec5A2568C3F4FAF9E8Abe2b","Kovan":"0x2F375e94FC336Cdec2Dc0cCB5277FE59CBf1cAe5","Gorli":"","BSC":"0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d","BSCT":"","Matic":"0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174","Mumbai":"","Arbitrum":"0xe865dF68133fcEd7c2285ff3896B406CAfAa2dB8","Arbitrum_Rinkeby":"","xDai":"0xDDAfbb505ad214D7b80b1f830fcCc89B60fb7A83","Avalanche":"0xA7D7079b0FEaD91F3e65f86E8915Cb59c1a4C664","Avalanche_Fuji":"","Celo":"0x2A3684e9Dc20B857375EA04235F2F7edBe818FA7","Fantom":"0x04068da6c83afcfa0e13ba15a6696662335d5b75","Aurora":"0xb12bfca5a55806aaf64e99521918a4bf0fc40802","Aurora_Testnet":"","Conflux":""},"USDT_ADDRESS":{"Mainnet":"0xdAC17F958D2ee523a2206206994597C13D831ec7","Ropsten":"0x516de3a7A567d81737e3a46ec4FF9cFD1fcb0136","Rinkeby":"0xD9BA894E0097f8cC2BBc9D24D308b98e36dc6D02","Kovan":"","Gorli":"","BSC":"0x55d398326f99059fF775485246999027B3197955","BSCT":"","Matic":"0xc2132D05D31c914a87C6611C10748AEb04B58e8F","Mumbai":"","Arbitrum":"0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9","Arbitrum_Rinkeby":"","xDai":"0x4ECaBa5870353805a9F068101A40E0f32ed605C6","Avalanche":"0xc7198437980c041c805A1EDcbA50c1Ce5db95118","Avalanche_Fuji":"","Celo":"0xb020d981420744f6b0fedd22bb67cd37ce18a1d5","Fantom":"","Aurora":"0x4988a896b1227218e4a686fde5eabdcabd91571f","Aurora_Testnet":"","Conflux":""},"aUSDT_ADDRESS":{"Mainnet":"0x71fc860F7D3A592A4a98740e39dB31d25db65ae8","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"0x1643E812aE58766192Cf7D2Cf9567dF2C37e9B7F","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"HUSD_ADDRESS":{"Mainnet":"0xdf574c24545e5ffecb9a659c229253d4111d87e1","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"0x1e37E5b504F7773460d6eB0e24D2e7C223B66EC7","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"BUSD_ADDRESS":{"Mainnet":"0x4fabb145d64652a948d72533023f6e7a623c7c53","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"0xe9e7CEA3DedcA5984780Bafc599bD69ADd087D56","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"0xdd96B45877d0E8361a4DDb732da741e97f3191Ff","Avalanche":"0x19860ccb0a68fd4213ab9d8266f7bbf05a8dde98","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"COMP_ADDRESS":{"Mainnet":"0xc00e94Cb662C3520282E6f5717214004A7f26888","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"0x8505b9d2254A7Ae468c0E9dd10Ccea3A837aef5c","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"0xc3048e19e76cb9a3aa9d77d8c03c29fc906e2437","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"EASY_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"0xDb3b3b147A030F032633f6C4BEBf9a2fB5a882B5","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"MKR_ADDRESS":{"Mainnet":"0x9f8F72aA9304c8B593d555F12eF6589cC3A579A2","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"MASK_ADDRESS":{"Mainnet":"0x69af81e73A73B40adF4f3d4223Cd9b1ECE623074","Ropsten":"0x5B966f3a32Db9C180843bCb40267A66b73E4f022","Rinkeby":"0xFD9Eb54f6aC885079e7bB3E207922Bb7256E3fcb","Kovan":"","Gorli":"","BSC":"0x2eD9a5C8C13b93955103B9a7C167B67Ef4d568a3","BSCT":"","Matic":"0x2B9E7ccDF0F4e5B24757c1E1a80e311E34Cb10c7","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"MSKA_ADDRESS":{"Mainnet":"","Ropsten":"0xe54bf69054da160c597f8b5177924b9e4b81e930","Rinkeby":"0x960B816d6dD03eD514c03F56788279154348Ea37","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"MSKB_ADDRESS":{"Mainnet":"","Ropsten":"0xe379c7a6ba07575a5a49d8f8ebfd04921b86917d","Rinkeby":"0xFa4Bddbc85c0aC7a543c4b59dCfb5deB17F67D8E","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"MSKC_ADDRESS":{"Mainnet":"","Ropsten":"0xb1465b954f893d921566d8bb4092b6f03fc8c313","Rinkeby":"0xbE88c0E7029929f50c81690275395Da1d05745B0","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"MSKD_ADDRESS":{"Mainnet":"","Ropsten":"0x49A6D6FE38405e21C4402CcEacd23636AbE301bf","Rinkeby":"0x57b9bD626507421d82C7542e2877D72fE7815aFd","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"MSKE_ADDRESS":{"Mainnet":"","Ropsten":"0xE8f4dDB8c8b655B4e161d3480522d1d576561A4D","Rinkeby":"0xB46e44E06B89798Af11b8fE456b4796dc9026cE0","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"DAI_ADDRESS":{"Mainnet":"0x6B175474E89094C44Da98b954EedeAC495271d0F","Ropsten":"0x31f42841c2db5173425b5223809cf3a38fede360","Rinkeby":"0x5592ec0cfb4dbc12d3ab100b257153436a1f0fea","Kovan":"0x1528F3FCc26d13F7079325Fb78D9442607781c8C","Gorli":"","BSC":"0x1AF3F329e8BE154074D8769D1FFa4eE058B1DBc3","BSCT":"","Matic":"0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"0xd586E7F844cEa2F87f50152665BCbc2C279D8d70","Avalanche_Fuji":"","Celo":"","Fantom":"0x8D11eC38a3EB5E956B052f67Da8Bdc9bef8Abf3E","Aurora":"0xe3520349f477a5f6eb06107066048508498a291b","Aurora_Testnet":"","Conflux":""},"AMPL_ADDRESS":{"Mainnet":"0xD46bA6D942050d489DBd938a2C909A5d5039A161","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"OKB_ADDRESS":{"Mainnet":"0x75231F58b43240C9718Dd58B4967c5114342a86c","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"UST_ADDRESS":{"Mainnet":"0xa47c8bf37f92aBed4A126BDA807A7b7498661acD","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"0x23396cF899Ca06c4472205fC903bDB4de249D6fC","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"eUSDC_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"0x4eBdE54ba404bE158262EDe801744b92b9878c61","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"eUSDT_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"0xfc39742Fe9420a7Af23757Fc7E78D1c3AE4A9474","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"fUSDT_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"0x049d68029688eAbF473097a2fC38ef61633A3C7A","Aurora":"","Aurora_Testnet":"","Conflux":""},"eDAI_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"0xa1C09C8F4f5D03fcC27b456475d53d988e98D7C5","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"UNITOKEN_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"0xb33EaAd8d922B1083446DC23f610c2567fB5180f","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"TT01_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"0x1DBb7f76CDC5413eE211ff4100723791B2d98c05","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"TT02_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"0xd07B432B565AE10C6Dc0739989Ee3CF36A8dFf29","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"QUICK_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"0x831753DD7087CaC61aB5644b308642cc1c33Dc13","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"WANNA_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"0x7faA64Faf54750a2E3eE621166635fEAF406Ab22","Aurora_Testnet":"","Conflux":""},"WBTC_ADDRESS":{"Mainnet":"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"0x1BFD67037B42Cf73acF2047067bd4F2C47D9BfD6","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"0x8e5bBbb09Ed1ebdE8674Cda39A0c169401db4252","Avalanche":"0x50b7545627a5162F82A992c33b87aDc75187B218","Avalanche_Fuji":"","Celo":"0xBe50a3013A1c94768A1ABb78c3cB79AB28fc1aCE","Fantom":"0x321162Cd933E2Be498Cd2267a90534A804051b11","Aurora":"0xf4eb217ba2454613b15dbdea6e5f22276410e89e","Aurora_Testnet":"","Conflux":""},"IGG_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"0xe6FC6C7CB6d2c31b359A49A33eF08aB87F4dE7CE","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"OM_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"0x9f5755D47fB80100E7ee65Bf7e136FCA85Dd9334","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"SUSHI_ADDRESS":{"Mainnet":"0x6B3595068778DD592e39A122f4f5a5cF09C90fE2","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"YAM_ADDRESS":{"Mainnet":"0x0e2298E3B3390e3b945a5456fBf59eCc3f55DA16","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"RUNE_ADDRESS":{"Mainnet":"0x3155BA85D5F96b2d030a4966AF206230e46849cb","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"YFI_ADDRESS":{"Mainnet":"0x0bc529c00C6401aEF6D220BE8C6Ea1667F6Ad93e","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"sUSD_ADDRESS":{"Mainnet":"0x57ab1ec28d129707052df4df418d58a2d46d5f51","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"0xF81b4Bec6Ca8f9fe7bE01CA734F55B2b6e03A7a0","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"BTCB_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"0x7130d2A12B9BCbFAe4f2634d864A1Ee1Ce3Ead9c","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"CAKE_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"0x0E09FaBB73Bd3Ade0a17ECC321fD13a19e81cE82","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"maUSDC_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"0x9719d867A500Ef117cC201206B8ab51e794d3F82","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"stETH_ADDRESS":{"Mainnet":"0xDFe66B14D37C77F4E9b180cEb433d1b164f0281D","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"NFTX_ADDRESS":{"Mainnet":"0x87d73E916D7057945c9BcD8cdd94e42A6F47f776","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"cUSD_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"0x765de816845861e75a25fca122bb6898b8b1282a","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"cEUR_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"0x765de816845861e75a25fca122bb6898b8b1282a","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"xTRI_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"0x802119e4e253D5C19aA06A5d567C5a41596D6803","Aurora_Testnet":"","Conflux":""},"JOE_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"0xce347E069B68C53A9ED5e7DA5952529cAF8ACCd4","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"PNG_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"0x60781C2586D68229fde47564546784ab3fACA982","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"ETHER_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"0x2170Ed0880ac9A755fd29B2688956BD959F933F8","BSCT":"","Matic":"0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"0x49D5c2BdFfac6CE2BFdB6640F4F80f226bc10bAB","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"NATIVE_TOKEN_ADDRESS":{"Mainnet":"0x0000000000000000000000000000000000000000","Ropsten":"0x0000000000000000000000000000000000000000","Rinkeby":"0x0000000000000000000000000000000000000000","Kovan":"0x0000000000000000000000000000000000000000","Gorli":"0x0000000000000000000000000000000000000000","BSC":"0x0000000000000000000000000000000000000000","BSCT":"0x0000000000000000000000000000000000000000","Matic":"0x0000000000000000000000000000000000000000","Mumbai":"0x0000000000000000000000000000000000000000","Arbitrum":"0x0000000000000000000000000000000000000000","Arbitrum_Rinkeby":"0x0000000000000000000000000000000000000000","xDai":"0x0000000000000000000000000000000000000000","Avalanche":"0x0000000000000000000000000000000000000000","Avalanche_Fuji":"0x0000000000000000000000000000000000000000","Celo":"0x471ece3750da237f93b8e339c536989b8978a438","Fantom":"0x0000000000000000000000000000000000000000","Aurora":"0x0000000000000000000000000000000000000000","Aurora_Testnet":"","Conflux":"0x0000000000000000000000000000000000000000"},"WETH_ADDRESS":{"Mainnet":"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"aWETH_ADDRESS":{"Mainnet":"0x030bA81f1c18d280636F32af80b9AAd02Cf0854e","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"ZRX_ADDRESS":{"Mainnet":"0xE41d2489571d322189246DaFA5ebDe1F4699F498","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"aZRX_ADDRESS":{"Mainnet":"0xDf7FF54aAcAcbFf42dfe29DD6144A69b629f8C9e","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"UNI_ADDRESS":{"Mainnet":"0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"aUNI_ADDRESS":{"Mainnet":"0xB9D7CB55f463405CDfBe4E90a6D2Df01C2B92BF1","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"LIDO_ADDRESS":{"Mainnet":"0x5A98FcBEA516Cf06857215779Fd812CA3beF1B32","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"0x56340274fB5a72af1A3C6609061c451De7961Bd4","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"AAVE_ADDRESS":{"Mainnet":"0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE9","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"aAAVE_ADDRESS":{"Mainnet":"0xFFC97d72E13E01096502Cb8Eb52dEe56f74DAD7B","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"BAT_ADDRESS":{"Mainnet":"0x0D8775F648430679A709E98d2b0Cb6250d2887EF","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"aBAT_ADDRESS":{"Mainnet":"0x05Ec93c0365baAeAbF7AefFb0972ea7ECdD39CF1","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"ENJ_ADDRESS":{"Mainnet":"0xF629cBd94d3791C9250152BD8dfBDF380E2a3B9c","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"aENJ_ADDRESS":{"Mainnet":"0xaC6Df26a590F08dcC95D5a4705ae8abbc88509Ef","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"KNC_ADDRESS":{"Mainnet":"0xdd974D5C2e2928deA5F71b9825b8b646686BD200","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"aKNC_ADDRESS":{"Mainnet":"0x39C6b3e42d6A679d7D776778Fe880BC9487C2EDA","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"LINK_ADDRESS":{"Mainnet":"0x514910771AF9Ca656af840dff83E8264EcF986CA","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"aLINK_ADDRESS":{"Mainnet":"0xa06bC25B5805d5F8d82847D191Cb4Af5A3e873E0","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"MANA_ADDRESS":{"Mainnet":"0x0F5D2fB29fb7d3CFeE444a200298f468908cC942","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"aMANA_ADDRESS":{"Mainnet":"0xa685a61171bb30d4072B338c80Cb7b2c865c873E","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"REN_ADDRESS":{"Mainnet":"0x408e41876cCCDC0F92210600ef50372656052a38","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"aREN_ADDRESS":{"Mainnet":"0xCC12AbE4ff81c9378D670De1b57F8e0Dd228D77a","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"SNX_ADDRESS":{"Mainnet":"0xC011a73ee8576Fb46F5E1c5751cA3B9Fe0af2a6F","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"aSNX_ADDRESS":{"Mainnet":"0x35f6B052C598d933D69A4EEC4D04c73A191fE6c2","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"TUSD_ADDRESS":{"Mainnet":"0x0000000000085d4780B73119b644AE5ecd22b376","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"aTUSD_ADDRESS":{"Mainnet":"0x101cc05f4A51C0319f570d5E146a8C625198e636","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"CRV_ADDRESS":{"Mainnet":"0xD533a949740bb3306d119CC777fa900bA034cd52","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"aCRV_ADDRESS":{"Mainnet":"0x8dAE6Cb04688C62d939ed9B68d32Bc62e49970b1","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"GUSD_ADDRESS":{"Mainnet":"0x056Fd409E1d7A124BD7017459dFEa2F387b6d5Cd","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"aGUSD_ADDRESS":{"Mainnet":"0xD37EE7e4f452C6638c96536e68090De8cBcdb583","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"BAL_ADDRESS":{"Mainnet":"0xba100000625a3754423978a60c9317c58a424e3D","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"aBAL_ADDRESS":{"Mainnet":"0x272F97b7a56a387aE942350bBC7Df5700f8a4576","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"xSUSHI_ADDRESS":{"Mainnet":"0x8798249c2E607446EfB7Ad49eC89dD1865Ff4272","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"aXSUSHI_ADDRESS":{"Mainnet":"0xF256CC7847E919FAc9B808cC216cAc87CCF2f47a","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"renFIL_ADDRESS":{"Mainnet":"0xD5147bc8e386d91Cc5DBE72099DAC6C9b99276F5","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"aRENFIL_ADDRESS":{"Mainnet":"0x514cd6756CCBe28772d4Cb81bC3156BA9d1744aa","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"RAI_ADDRESS":{"Mainnet":"0x03ab458634910AaD20eF5f1C8ee96F1D6ac54919","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"aRAI_ADDRESS":{"Mainnet":"0xc9BC48c72154ef3e5425641a3c747242112a46AF","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"USDP_ADDRESS":{"Mainnet":"0x8E870D67F660D95d5be530380D0eC0bd388289E1","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"aUSDP_ADDRESS":{"Mainnet":"0x2e8F4bdbE3d47d7d7DE490437AeA9915D930F1A3","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"DPI_ADDRESS":{"Mainnet":"0x1494CA1F11D487c2bBe4543E90080AeBa4BA3C2b","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"aDPI_ADDRESS":{"Mainnet":"0x6F634c6135D2EBD550000ac92F494F9CB8183dAe","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"FRAX_ADDRESS":{"Mainnet":"0x853d955aCEf822Db058eb8505911ED77F175b99e","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"aFRAX_ADDRESS":{"Mainnet":"0xd4937682df3C8aEF4FE912A96A74121C0829E664","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"FEI_ADDRESS":{"Mainnet":"0x956F47F50A910163D8BF957Cf5846D573E7f87CA","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"aFEI_ADDRESS":{"Mainnet":"0x683923dB55Fead99A79Fa01A27EeC3cB19679cC3","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"aWBTC_ADDRESS":{"Mainnet":"0x9ff58f4fFB29fA2266Ab25e75e2A8b3503311656","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"aYFI_ADDRESS":{"Mainnet":"0x5165d24277cD063F5ac44Efd447B27025e888f37","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"aBUSD_ADDRESS":{"Mainnet":"0xA361718326c15715591c299427c62086F69923D9","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"aDAI_ADDRESS":{"Mainnet":"0x028171bCA77440897B824Ca71D1c56caC55b68A3","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"aMKR_ADDRESS":{"Mainnet":"0xc713e5E149D5D0715DcD1c156a020976e7E56B88","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"aSUSD_ADDRESS":{"Mainnet":"0x6C5024Cd4F8A59110119C56f8933403A539555EB","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"aUSDC_ADDRESS":{"Mainnet":"0xBcca60bB61934080951369a648Fb03DF4F96263C","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"aAMPL_ADDRESS":{"Mainnet":"0x1E6bb68Acec8fefBD87D192bE09bb274170a0548","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"0x0000000000000000000000000000000000000000"}}'); -;// CONCATENATED MODULE: ../web3-constants/evm/trader.json -const trader_namespaceObject = JSON.parse('{"UNISWAP_V2_ROUTER_ADDRESS":{"Mainnet":"0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D","Ropsten":"0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D","Rinkeby":"0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D","Kovan":"0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D","Gorli":"0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D","Avalanche_Fuji":"0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"UNISWAP_V2_FACTORY_ADDRESS":{"Mainnet":"0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f","Ropsten":"0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f","Rinkeby":"0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f","Kovan":"0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f","Gorli":"0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f","Avalanche_Fuji":"0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"UNISWAP_V2_THEGRAPH":{"Mainnet":"https://api.thegraph.com/subgraphs/name/uniswap/uniswap-v2","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"UNISWAP_V2_INIT_CODE_HASH":{"Mainnet":"0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f","Ropsten":"0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f","Rinkeby":"0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f","Kovan":"0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f","Gorli":"0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f","Avalanche_Fuji":"0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"UNISWAP_SWAP_ROUTER_ADDRESS":{"Mainnet":"0xe592427a0aece92de3edee1f18e0157c05861564","Ropsten":"0xe592427a0aece92de3edee1f18e0157c05861564","Rinkeby":"0xe592427a0aece92de3edee1f18e0157c05861564","Kovan":"0xe592427a0aece92de3edee1f18e0157c05861564","Gorli":"0xe592427a0aece92de3edee1f18e0157c05861564","BSC":"","BSCT":"","Matic":"0xe592427a0aece92de3edee1f18e0157c05861564","Mumbai":"0xe592427a0aece92de3edee1f18e0157c05861564","Arbitrum":"0xE592427A0AEce92De3Edee1F18E0157C05861564","Arbitrum_Rinkeby":"0xE592427A0AEce92De3Edee1F18E0157C05861564","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"UNISWAP_V3_FACTORY_ADDRESS":{"Mainnet":"0x1F98431c8aD98523631AE4a59f267346ea31F984","Ropsten":"0x1F98431c8aD98523631AE4a59f267346ea31F984","Rinkeby":"0x1F98431c8aD98523631AE4a59f267346ea31F984","Kovan":"0x1F98431c8aD98523631AE4a59f267346ea31F984","Gorli":"0x1F98431c8aD98523631AE4a59f267346ea31F984","BSC":"","BSCT":"","Matic":"0x1F98431c8aD98523631AE4a59f267346ea31F984","Mumbai":"0x1F98431c8aD98523631AE4a59f267346ea31F984","Arbitrum":"0x1F98431c8aD98523631AE4a59f267346ea31F984","Arbitrum_Rinkeby":"0x1F98431c8aD98523631AE4a59f267346ea31F984","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"UNISWAP_V3_QUOTER_ADDRESS":{"Mainnet":"0xb27308f9F90D607463bb33eA1BeBb41C27CE5AB6","Ropsten":"0xb27308f9F90D607463bb33eA1BeBb41C27CE5AB6","Rinkeby":"0xb27308f9F90D607463bb33eA1BeBb41C27CE5AB6","Kovan":"0xb27308f9F90D607463bb33eA1BeBb41C27CE5AB6","Gorli":"0xb27308f9F90D607463bb33eA1BeBb41C27CE5AB6","BSC":"","BSCT":"","Matic":"0xb27308f9F90D607463bb33eA1BeBb41C27CE5AB6","Mumbai":"0xb27308f9F90D607463bb33eA1BeBb41C27CE5AB6","Arbitrum":"0xb27308f9F90D607463bb33eA1BeBb41C27CE5AB6","Arbitrum_Rinkeby":"0xb27308f9F90D607463bb33eA1BeBb41C27CE5AB6","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"UNISWAP_V3_THEGRAPH":{"Mainnet":"https://api.thegraph.com/subgraphs/name/uniswap/uniswap-v3","Ropsten":"https://api.thegraph.com/subgraphs/name/uniswap/uniswap-v3","Rinkeby":"https://api.thegraph.com/subgraphs/name/uniswap/uniswap-v3","Kovan":"https://api.thegraph.com/subgraphs/name/uniswap/uniswap-v3","Gorli":"https://api.thegraph.com/subgraphs/name/uniswap/uniswap-v3","BSC":"","BSCT":"","Matic":"https://api.thegraph.com/subgraphs/name/uniswap/uniswap-v3","Mumbai":"https://api.thegraph.com/subgraphs/name/uniswap/uniswap-v3","Arbitrum":"https://api.thegraph.com/subgraphs/name/uniswap/uniswap-v3","Arbitrum_Rinkeby":"https://api.thegraph.com/subgraphs/name/uniswap/uniswap-v3","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"UNISWAP_V3_INIT_CODE_HASH":{"Mainnet":"0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54","Ropsten":"0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54","Rinkeby":"0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54","Kovan":"0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54","Gorli":"0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54","BSC":"","BSCT":"","Matic":"0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54","Mumbai":"0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"SUSHISWAP_ROUTER_ADDRESS":{"Mainnet":"0xd9e1cE17f2641f24aE83637ab66a2cca9C378B9F","Ropsten":"0xd9e1cE17f2641f24aE83637ab66a2cca9C378B9F","Rinkeby":"0xd9e1cE17f2641f24aE83637ab66a2cca9C378B9F","Kovan":"0xd9e1cE17f2641f24aE83637ab66a2cca9C378B9F","Gorli":"0xd9e1cE17f2641f24aE83637ab66a2cca9C378B9F","BSC":"0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506","BSCT":"0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506","Matic":"0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506","Mumbai":"0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506","Arbitrum":"0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506","Arbitrum_Rinkeby":"0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506","xDai":"0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506","Avalanche":"0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506","Avalanche_Fuji":"0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506","Celo":"0x1421bDe4B10e8dd459b3BCb598810B1337D56842","Fantom":"0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506","Aurora":"0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506","Aurora_Testnet":"","Conflux":""},"SUSHISWAP_FACTORY_ADDRESS":{"Mainnet":"0xC0AEe478e3658e2610c5F7A4A2E1777cE9e4f2Ac","Ropsten":"0xC0AEe478e3658e2610c5F7A4A2E1777cE9e4f2Ac","Rinkeby":"0xC0AEe478e3658e2610c5F7A4A2E1777cE9e4f2Ac","Kovan":"0xC0AEe478e3658e2610c5F7A4A2E1777cE9e4f2Ac","Gorli":"0xC0AEe478e3658e2610c5F7A4A2E1777cE9e4f2Ac","BSC":"0xc35DADB65012eC5796536bD9864eD8773aBc74C4","BSCT":"0xc35DADB65012eC5796536bD9864eD8773aBc74C4","Matic":"0xc35DADB65012eC5796536bD9864eD8773aBc74C4","Mumbai":"0xc35DADB65012eC5796536bD9864eD8773aBc74C4","Arbitrum":"0xc35DADB65012eC5796536bD9864eD8773aBc74C4","Arbitrum_Rinkeby":"0xc35DADB65012eC5796536bD9864eD8773aBc74C4","xDai":"0xc35DADB65012eC5796536bD9864eD8773aBc74C4","Avalanche":"0xc35DADB65012eC5796536bD9864eD8773aBc74C4","Avalanche_Fuji":"0xc35DADB65012eC5796536bD9864eD8773aBc74C4","Celo":"0xc35DADB65012eC5796536bD9864eD8773aBc74C4","Fantom":"0xc35DADB65012eC5796536bD9864eD8773aBc74C4","Aurora":"","Aurora_Testnet":"","Conflux":""},"SUSHISWAP_THEGRAPH":{"Mainnet":"https://api.thegraph.com/subgraphs/name/zippoxer/sushiswap-subgraph-fork","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"SUSHISWAP_INIT_CODE_HASH":{"Mainnet":"0xe18a34eb0e04b04f7a0ac29a6e80748dca96319b42c54d679cb821dca90c6303","Ropsten":"0xe18a34eb0e04b04f7a0ac29a6e80748dca96319b42c54d679cb821dca90c6303","Rinkeby":"0xe18a34eb0e04b04f7a0ac29a6e80748dca96319b42c54d679cb821dca90c6303","Kovan":"0xe18a34eb0e04b04f7a0ac29a6e80748dca96319b42c54d679cb821dca90c6303","Gorli":"0xe18a34eb0e04b04f7a0ac29a6e80748dca96319b42c54d679cb821dca90c6303","BSC":"0xe18a34eb0e04b04f7a0ac29a6e80748dca96319b42c54d679cb821dca90c6303","BSCT":"0xe18a34eb0e04b04f7a0ac29a6e80748dca96319b42c54d679cb821dca90c6303","Matic":"0xe18a34eb0e04b04f7a0ac29a6e80748dca96319b42c54d679cb821dca90c6303","Mumbai":"0xe18a34eb0e04b04f7a0ac29a6e80748dca96319b42c54d679cb821dca90c6303","Arbitrum":"0xe18a34eb0e04b04f7a0ac29a6e80748dca96319b42c54d679cb821dca90c6303","Arbitrum_Rinkeby":"0xe18a34eb0e04b04f7a0ac29a6e80748dca96319b42c54d679cb821dca90c6303","xDai":"0xe18a34eb0e04b04f7a0ac29a6e80748dca96319b42c54d679cb821dca90c6303","Avalanche":"0xe18a34eb0e04b04f7a0ac29a6e80748dca96319b42c54d679cb821dca90c6303","Avalanche_Fuji":"0xe18a34eb0e04b04f7a0ac29a6e80748dca96319b42c54d679cb821dca90c6303","Celo":"0xe18a34eb0e04b04f7a0ac29a6e80748dca96319b42c54d679cb821dca90c6303","Fantom":"0xe18a34eb0e04b04f7a0ac29a6e80748dca96319b42c54d679cb821dca90c6303","Aurora":"","Aurora_Testnet":"","Conflux":""},"SASHIMISWAP_ROUTER_ADDRESS":{"Mainnet":"0xe4fe6a45f354e845f954cddee6084603cedb9410","Ropsten":"0xe4fe6a45f354e845f954cddee6084603cedb9410","Rinkeby":"0xe4fe6a45f354e845f954cddee6084603cedb9410","Kovan":"0xe4fe6a45f354e845f954cddee6084603cedb9410","Gorli":"0xe4fe6a45f354e845f954cddee6084603cedb9410","BSC":"0x24cefa86fc1826fd31b4cb911034907735f8085a","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"SASHIMISWAP_FACTORY_ADDRESS":{"Mainnet":"0xF028F723ED1D0fE01cC59973C49298AA95c57472","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"0x1daed74ed1dd7c9dabbe51361ac90a69d851234d","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"SASHIMISWAP_THEGRAPH":{"Mainnet":"https://api.thegraph.com/subgraphs/name/sashimiproject/sashimi","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"SASHIMISWAP_INIT_CODE_HASH":{"Mainnet":"0xb465bbe4edb8c9b0da8ff0b2b36ce0065de9fcd5a33f32c6856ea821779c8b72","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"0xb7b88947a6a423e784cb5512eccdfee6426797f5f681f521bc1687e844ef15be","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"QUICKSWAP_ROUTER_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"0xa5E0829CaCEd8fFDD4De3c43696c57F7D7A678ff","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"QUICKSWAP_FACTORY_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"0x5757371414417b8C6CAad45bAeF941aBc7d3Ab32","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"QUICKSWAP_THEGRAPH":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"https://api.thegraph.com/subgraphs/name/sameepsi/quickswap","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"QUICKSWAP_INIT_CODE_HASH":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"PANCAKESWAP_ROUTER_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"0x10ED43C718714eb63d5aA57B78B54704E256024E","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"PANCAKESWAP_FACTORY_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"0xcA143Ce32Fe78f1f7019d7d551a6402fC5350c73","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"PANCAKESWAP_THEGRAPH":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"https://thegraph.com/explorer/subgraph/pancakeswap/exchange","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"PANCAKESWAP_INIT_CODE_HASH":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"0x00fb7f630766e6a796048ea87d01acd3068e8ff67d078148a3fa3f4a84f69bd5","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"BALANCER_ETH_ADDRESS":{"Mainnet":"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE","Ropsten":"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE","Rinkeby":"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE","Kovan":"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE","Gorli":"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"BALANCER_EXCHANGE_PROXY_ADDRESS":{"Mainnet":"0x3E66B66Fd1d0b02fDa6C811Da9E0547970DB2f21","Ropsten":"","Rinkeby":"","Kovan":"0x4e67bf5bD28Dd4b570FBAFe11D0633eCbA2754Ec","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"BALANCER_POOLS_URL":{"Mainnet":"https://ipfs.fleek.co/ipns/balancer-bucket.storage.fleek.co/balancer-exchange/pools","Ropsten":"","Rinkeby":"","Kovan":"https://ipfs.fleek.co/ipns/balancer-team-bucket.storage.fleek.co/balancer-exchange-kovan/pools","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"DODO_ETH_ADDRESS":{"Mainnet":"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE","Ropsten":"","Rinkeby":"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE","Kovan":"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE","Gorli":"","BSC":"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE","BSCT":"","Matic":"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE","Aurora_Testnet":"","Conflux":""},"DODO_EXCHANGE_PROXY_ADDRESS":{"Mainnet":"0xCB859eA579b28e02B87A1FDE08d087ab9dbE5149","Ropsten":"","Rinkeby":"0xcC8d87A7C747eeE4242045C47Ef25e0A81D56ae3","Kovan":"0xa375b128e139ae54EF7F189BC8fEb4624f1c2Afa","Gorli":"","BSC":"0xa128Ba44B2738A558A1fdC06d6303d52D3Cef8c1","BSCT":"","Matic":"0x6D310348d5c12009854DFCf72e0DF9027e8cb4f4","Mumbai":"","Arbitrum":"0xA867241cDC8d3b0C07C85cC06F25a0cD3b5474d8","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"0x335aC99bb3E51BDbF22025f092Ebc1Cf2c5cC619","Aurora_Testnet":"","Conflux":""},"BANCOR_ETH_ADDRESS":{"Mainnet":"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE","Ropsten":"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"BANCOR_EXCHANGE_PROXY_ADDRESS":{"Mainnet":"0x2F9EC37d6CcFFf1caB21733BdaDEdE11c823cCB0","Ropsten":"0xA6DB4B0963C37Bc959CbC0a874B5bDDf2250f26F","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"TRADERJOE_ROUTER_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"0x7E2528476b14507f003aE9D123334977F5Ad7B14","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506","Avalanche":"0x60aE616a2155Ee3d9A68541Ba4544862310933d4","Avalanche_Fuji":"0x5db0735cf88F85E78ed742215090c465979B5006","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"TRADERJOE_FACTORY_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"0x86f83be9770894d8e46301b12E88e14AdC6cdb5F","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"0x9Ad6C38BE94206cA50bb0d90783181662f0Cfa10","Avalanche_Fuji":"0x7eeccb3028870540EEc3D88C2259506f2d34fEE0","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"TRADERJOE_THEGRAPH":{"Mainnet":"https://api.thegraph.com/subgraphs/name/traderjoe-xyz/exchange","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"TRADERJOE_INIT_CODE_HASH":{"Mainnet":"","Ropsten":"","Rinkeby":"0x0bbca9af0511ad1a1da383135cf3a8d2ac620e549ef9f6ae3a4c33c2fed0af91","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"0x0bbca9af0511ad1a1da383135cf3a8d2ac620e549ef9f6ae3a4c33c2fed0af91","Avalanche_Fuji":"0x0bbca9af0511ad1a1da383135cf3a8d2ac620e549ef9f6ae3a4c33c2fed0af91","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"OPENOCEAN_ETH_ADDRESS":{"Mainnet":"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE","BSCT":"","Matic":"0x0000000000000000000000000000000000001010","Mumbai":"","Arbitrum":"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE","Arbitrum_Rinkeby":"","xDai":"0x0000000000000000000000000000000000000000","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"OPENOCEAN_EXCHANGE_PROXY_ADDRESS":{"Mainnet":"0x6352a56caadC4F1E25CD6c75970Fa768A3304e64","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"0x6352a56caadC4F1E25CD6c75970Fa768A3304e64","BSCT":"","Matic":"0x6352a56caadc4f1e25cd6c75970fa768a3304e64","Mumbai":"","Arbitrum":"0x6352a56caadc4f1e25cd6c75970fa768a3304e64","Arbitrum_Rinkeby":"","xDai":"0x6352a56caadC4F1E25CD6c75970Fa768A3304e64","Avalanche":"0x6352a56caadC4F1E25CD6c75970Fa768A3304e64","Avalanche_Fuji":"0x6352a56caadC4F1E25CD6c75970Fa768A3304e64","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"PANGOLIN_ROUTER_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"0x7E2528476b14507f003aE9D123334977F5Ad7B14","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"0xE54Ca86531e17Ef3616d22Ca28b0D458b6C89106","Avalanche_Fuji":"0xE54Ca86531e17Ef3616d22Ca28b0D458b6C89106","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"PANGOLIN_FACTORY_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"0xefa94DE7a4656D787667C749f7E1223D71E9FD88","Avalanche_Fuji":"0xE4A575550C2b460d2307b82dCd7aFe84AD1484dd","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"PANGOLIN_THEGRAPH":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"https://api.thegraph.com/subgraphs/name/dasconnor/pangolin-dex\'","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"PANGOLIN_INIT_CODE_HASH":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"0x40231f6b438bce0797c9ada29b718a87ea0a5cea3fe9a771abdd76bd41a3e545","Avalanche_Fuji":"0x40231f6b438bce0797c9ada29b718a87ea0a5cea3fe9a771abdd76bd41a3e545","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"WANNASWAP_ROUTER_V2_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"0xa3a1eF5Ae6561572023363862e238aFA84C72ef5","Aurora_Testnet":"","Conflux":""},"WANNASWAP_ROUTER_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"0x8f1E0Cf0f9f269Bc977C38635E560aa5b0E63323","Aurora_Testnet":"","Conflux":""},"WANNASWAP_FACTORY_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"0x7928D4FeA7b2c90C732c10aFF59cf403f0C38246","Aurora_Testnet":"","Conflux":""},"WANNASWAP_THEGRAPH":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"https://thegraph.com/explorer/subgraph/pancakeswap/exchange","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"WANNASWAP_INIT_CODE_HASH":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"0xa06b8b0642cf6a9298322d0c8ac3c68c291ca24dc66245cf23aa2abc33b57e21","Aurora_Testnet":"","Conflux":""},"TRISOLARIS_ROUTER_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"0x60913758635b54e6C9685f92201A5704eEe74748","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"0x2CB45Edb4517d5947aFdE3BEAbF95A582506858B","Aurora_Testnet":"","Conflux":""},"TRISOLARIS_FACTORY_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"0x10475e37cF1D006b56A4E4739Bcb478361564D22","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"0xc66F594268041dB60507F00703b152492fb176E7","Aurora_Testnet":"","Conflux":""},"TRISOLARIS_THEGRAPH":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"https://thegraph.com/explorer/subgraph/pancakeswap/exchange","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"TRISOLARIS_INIT_CODE_HASH":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"0x4a697f690d1f46e0f1a897a8662acae31ced3039b00c052392ed0bc179f9f28c","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"0x754e1d90e536e4c1df81b7f030f47b4ca80c87120e145c294f098c83a6cb5ace","Aurora_Testnet":"","Conflux":""},"MDEX_ROUTER_ADDRESS":{"Mainnet":"0x74119c3bca85bEA0538A62319a79b4a372590B47","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"0x0384E9ad329396C3A6A401243Ca71633B2bC4333","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"MDEX_FACTORY_ADDRESS":{"Mainnet":"0x7DAe51BD3E3376B8c7c4900E9107f12Be3AF1bA8","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"0x3CD1C46068dAEa5Ebb0d3f55F6915B10648062B8","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"MDEX_THEGRAPH":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"MDEX_INIT_CODE_HASH":{"Mainnet":"0x8ecc069c645df696f2ca5116ab459c5c2889f299e73c1b208aaa3cdd7d110b16","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"0x0d994d996174b05cfc7bed897dc1b20b4c458fc8d64fe98bc78b3c64a6b4d093","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""}}'); -;// CONCATENATED MODULE: ../web3-constants/evm/trending.json -const trending_namespaceObject = JSON.parse('{"UNISWAP_V2_SUBGRAPH_URL":{"Mainnet":"https://api.thegraph.com/subgraphs/name/uniswap/uniswap-v2","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"UNISWAP_V2_HEALTH_URL":{"Mainnet":"https://api.thegraph.com/index-node/graphql","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"ETHEREUM_BLOCKS_SUBGRAPH_URL":{"Mainnet":"https://api.thegraph.com/subgraphs/name/blocklytics/ethereum-blocks","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""}}'); -;// CONCATENATED MODULE: ../web3-constants/evm/mask-box.json -const mask_box_namespaceObject = JSON.parse('{"MASK_BOX_CONTRACT_ADDRESS":{"Mainnet":"0x294428f04b0F9EbC49B7Ad61E2736ebD6808c145","Ropsten":"","Rinkeby":"0xF8ED169BC0cdA735A88d32AC10b88AA5B69181ac","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"0x02F98667b3A1202a320F67a669a5e4e451fD0cc1","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"0x05ee315E407C21a594f807D61d6CC11306D1F149","Avalanche_Fuji":"0xae5c53294003f72b27cef476680979453193673d","Celo":"","Fantom":"","Aurora":"0xf5056B96ab242C566002852d0b98ce0BcDf1af51","Aurora_Testnet":"0xB4D669bc117735FdA44e90e52795132187705B21","Conflux":""},"MASK_BOX_CONTRACT_FROM_BLOCK":{"Mainnet":13687866,"Ropsten":0,"Rinkeby":9369286,"Kovan":0,"Gorli":0,"BSC":0,"BSCT":0,"Matic":21774098,"Mumbai":0,"Arbitrum":0,"Arbitrum_Rinkeby":0,"xDai":0,"Avalanche":8351767,"Avalanche_Fuji":4752026,"Celo":0,"Fantom":0,"Aurora":57259004,"Aurora_Testnet":77919118,"Conflux":0}}'); -;// CONCATENATED MODULE: ../web3-constants/evm/rpc.json -const rpc_namespaceObject = JSON.parse('{"RPC":{"Mainnet":["https://mainnet.infura.io/v3/d65858b010d249419cf8687eca12b094","https://mainnet.infura.io/v3/d74bd8586b9e44449cef131d39ceeefb","https://mainnet.infura.io/v3/a9d66980bf334e59a42ca19095f3daeb","https://mainnet.infura.io/v3/f39cc8734e294fba9c3938486df2b1bc","https://mainnet.infura.io/v3/659123dd11294baf8a294d7a11cec92c"],"Ropsten":["https://ropsten.infura.io/v3/d65858b010d249419cf8687eca12b094","https://ropsten.infura.io/v3/d74bd8586b9e44449cef131d39ceeefb","https://ropsten.infura.io/v3/a9d66980bf334e59a42ca19095f3daeb","https://ropsten.infura.io/v3/f39cc8734e294fba9c3938486df2b1bc","https://ropsten.infura.io/v3/659123dd11294baf8a294d7a11cec92c"],"Rinkeby":["https://rinkeby.infura.io/v3/d65858b010d249419cf8687eca12b094","https://rinkeby.infura.io/v3/d74bd8586b9e44449cef131d39ceeefb","https://rinkeby.infura.io/v3/a9d66980bf334e59a42ca19095f3daeb","https://rinkeby.infura.io/v3/f39cc8734e294fba9c3938486df2b1bc","https://rinkeby.infura.io/v3/659123dd11294baf8a294d7a11cec92c"],"Kovan":["https://kovan.infura.io/v3/d65858b010d249419cf8687eca12b094","https://kovan.infura.io/v3/d74bd8586b9e44449cef131d39ceeefb","https://kovan.infura.io/v3/a9d66980bf334e59a42ca19095f3daeb","https://kovan.infura.io/v3/f39cc8734e294fba9c3938486df2b1bc","https://kovan.infura.io/v3/659123dd11294baf8a294d7a11cec92c"],"Gorli":["https://goerli.infura.io/v3/d65858b010d249419cf8687eca12b094","https://goerli.infura.io/v3/d74bd8586b9e44449cef131d39ceeefb","https://goerli.infura.io/v3/a9d66980bf334e59a42ca19095f3daeb","https://goerli.infura.io/v3/f39cc8734e294fba9c3938486df2b1bc","https://goerli.infura.io/v3/659123dd11294baf8a294d7a11cec92c"],"BSC":["https://bsc-dataseed.binance.org/"],"BSCT":["https://data-seed-prebsc-1-s1.binance.org:8545/"],"Matic":["https://polygon-mainnet.infura.io/v3/d65858b010d249419cf8687eca12b094","https://polygon-mainnet.infura.io/v3/d74bd8586b9e44449cef131d39ceeefb","https://polygon-mainnet.infura.io/v3/a9d66980bf334e59a42ca19095f3daeb","https://polygon-mainnet.infura.io/v3/f39cc8734e294fba9c3938486df2b1bc","https://polygon-mainnet.infura.io/v3/659123dd11294baf8a294d7a11cec92c"],"Mumbai":["https://polygon-mumbai.infura.io/v3/d65858b010d249419cf8687eca12b094","https://polygon-mumbai.infura.io/v3/d74bd8586b9e44449cef131d39ceeefb","https://polygon-mumbai.infura.io/v3/a9d66980bf334e59a42ca19095f3daeb","https://polygon-mumbai.infura.io/v3/f39cc8734e294fba9c3938486df2b1bc","https://polygon-mumbai.infura.io/v3/659123dd11294baf8a294d7a11cec92c"],"Arbitrum":["https://arb1.arbitrum.io/rpc"],"Arbitrum_Rinkeby":["https://rinkeby.arbitrum.io/rpc"],"xDai":["https://rpc.xdaichain.com/"],"Avalanche":["https://api.avax.network/ext/bc/C/rpc"],"Avalanche_Fuji":["https://api.avax-test.network/ext/bc/C/rpc"],"Celo":["https://forno.celo.org"],"Fantom":["https://rpc.ftm.tools/"],"Aurora":["https://mainnet.aurora.dev"],"Aurora_Testnet":["https://testnet.aurora.dev"],"Conflux":["https://evm.confluxrpc.com"]},"RPC_WEIGHTS":{"Mainnet":[0,1,2,3,4],"Ropsten":[0,1,2,3,4],"Rinkeby":[0,1,2,3,4],"Kovan":[0,1,2,3,4],"Gorli":[0,1,2,3,4],"BSC":[0,0,0,0,0],"BSCT":[0,0,0,0,0],"Matic":[0,1,2,3,4],"Mumbai":[0,1,2,3,4],"Arbitrum":[0,0,0,0,0],"Arbitrum_Rinkeby":[0,0,0,0,0],"xDai":[0,0,0,0,0],"Avalanche":[0,0,0,0,0],"Avalanche_Fuji":[0,0,0,0,0],"Celo":[0,0,0,0,0],"Fantom":[0,0,0,0,0],"Aurora":[0,0,0,0,0],"Aurora_Testnet":[0,0,0,0,0],"Conflux":[0,0,0,0,0]}}'); -;// CONCATENATED MODULE: ../web3-constants/evm/explorer.json -const explorer_namespaceObject = JSON.parse('{"API_KEYS":{"Mainnet":["26GHYKIAZREN4HWJ5NCICTGKC183IGXY9A"],"Ropsten":[],"Rinkeby":[],"Kovan":[],"Gorli":[],"BSC":["5FQ5JHS1BEK4186QCZASE3SD23YD8FIMM8"],"BSCT":[],"Matic":["5HVFKYFPQXWNQ2TFHCAYJJZ3YIYPWQ5HP8"],"Mumbai":[],"Arbitrum":["BE8VU1P9FUKRT15FBHKQMU84829VITWWF2"],"Arbitrum_Rinkeby":[],"xDai":[],"Avalanche":[],"Avalanche_Fuji":[],"Celo":[],"Fantom":["AST4WWPNEYDURUXG2GH32JZMYWEFDP999S"],"Aurora":[],"Aurora_Testnet":[],"Conflux":[]},"EXPLORER_API":{"Mainnet":"https://api.etherscan.io/api","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"https://api.bscscan.com/api","BSCT":"","Matic":"https://api.polygonscan.com/api","Mumbai":"","Arbitrum":"https://api.arbiscan.io/api","Arbitrum_Rinkeby":"","xDai":"https://blockscout.com/xdai/mainnet/api","Avalanche":"https://api.snowtrace.io/api","Avalanche_Fuji":"https://api-testnet.snowtrace.io/api","Celo":"https://explorer.celo.org/api","Fantom":"https://api.ftmscan.com/api","Aurora":"https://explorer.mainnet.aurora.dev/api","Aurora_Testnet":"https://explorer.testnet.aurora.dev/api","Conflux":""}}'); -;// CONCATENATED MODULE: ../web3-constants/evm/pooltogether.json -const pooltogether_namespaceObject = JSON.parse('{"MASK_POOL_SUBGRAPH":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"https://api.thegraph.com/subgraphs/name/pooltogether/polygon-v3_3_8","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"MASK_POOL_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"0x345dc966180d5cf6b57a476362e9c859b725991e","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""}}'); -;// CONCATENATED MODULE: ../web3-constants/evm/token-list.json -const token_list_namespaceObject = JSON.parse('{"ERC20":{"Mainnet":["https://tokens.r2d2.to/latest/1/tokens.json"],"Ropsten":["https://tokens.r2d2.to/latest/3/tokens.json"],"Rinkeby":["https://tokens.r2d2.to/latest/4/tokens.json"],"Kovan":["https://irhonin.github.io/kovan-token-list/kovan-token-list.json"],"Gorli":[],"BSC":["https://tokens.r2d2.to/latest/56/tokens.json"],"BSCT":["https://tokens.r2d2.to/latest/97/tokens.json"],"Matic":["https://tokens.r2d2.to/latest/137/tokens.json"],"Mumbai":["https://tokens.r2d2.to/latest/80001/tokens.json"],"Arbitrum":["https://tokens.r2d2.to/latest/42161/tokens.json"],"Arbitrum_Rinkeby":["https://tokens.r2d2.to/latest/421611/tokens.json"],"xDai":["https://tokens.r2d2.to/latest/100/tokens.json"],"Avalanche":["https://tokens.r2d2.to/latest/43114/tokens.json"],"Avalanche_Fuji":[],"Celo":["https://tokens.r2d2.to/latest/42220/tokens.json"],"Fantom":["https://tokens.r2d2.to/latest/250/tokens.json"],"Aurora":["https://tokens.r2d2.to/latest/1313161554/tokens.json"],"Aurora_Testnet":[],"Conflux":["https://tokens.r2d2.to/latest/1030/tokens.json"]}}'); -;// CONCATENATED MODULE: ../web3-constants/evm/token-asset-base-url.json -const token_asset_base_url_namespaceObject = JSON.parse('{"TOKEN_ASSET_BASE_URI":{"Mainnet":["https://raw.githubusercontent.com/dimensiondev/assets/master/blockchains/ethereum","https://rawcdn.githack.com/dimensiondev/assets/master/blockchains/ethereum"],"Ropsten":["https://raw.githubusercontent.com/dimensiondev/assets/master/blockchains/ethereum","https://rawcdn.githack.com/dimensiondev/assets/master/blockchains/ethereum"],"Rinkeby":["https://raw.githubusercontent.com/dimensiondev/assets/master/blockchains/ethereum","https://rawcdn.githack.com/dimensiondev/assets/master/blockchains/ethereum"],"Kovan":["https://raw.githubusercontent.com/dimensiondev/assets/master/blockchains/ethereum","https://rawcdn.githack.com/dimensiondev/assets/master/blockchains/ethereum"],"Gorli":["https://raw.githubusercontent.com/dimensiondev/assets/master/blockchains/ethereum","https://rawcdn.githack.com/dimensiondev/assets/master/blockchains/ethereum"],"BSC":["https://raw.githubusercontent.com/dimensiondev/assets/master/blockchains/smartchain","https://rawcdn.githack.com/dimensiondev/assets/master/blockchains/smartchain"],"BSCT":["https://raw.githubusercontent.com/dimensiondev/assets/master/blockchains/smartchain","https://rawcdn.githack.com/dimensiondev/assets/master/blockchains/smartchain"],"Matic":["https://raw.githubusercontent.com/dimensiondev/assets/master/blockchains/polygon","https://rawcdn.githack.com/dimensiondev/assets/master/blockchains/polygon"],"Mumbai":["https://raw.githubusercontent.com/dimensiondev/assets/master/blockchains/polygon","https://rawcdn.githack.com/dimensiondev/assets/master/blockchains/polygon"],"Arbitrum":[],"Arbitrum_Rinkeby":[],"xDai":[],"Avalanche":["https://raw.githubusercontent.com/dimensiondev/assets/master/blockchains/avalanchec","https://rawcdn.githack.com/dimensiondev/assets/master/blockchains/avalanchec"],"Avalanche_Fuji":[],"Celo":[],"Fantom":[],"Aurora":[],"Aurora_Testnet":[],"Conflux":[]}}'); -;// CONCATENATED MODULE: ../web3-constants/evm/good-ghosting.json -const good_ghosting_namespaceObject = JSON.parse('{"GOOD_GHOSTING_CONTRACT_ADDRESS_FILE":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"https://raw.githubusercontent.com/Good-Ghosting/mask-plugin-integration/master/games.json","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"GOOD_GHOSTING_INCENTIVES_CONTRACT_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"0x357D51124f59836DeD84c8a1730D72B749d8BC23","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""}}'); -;// CONCATENATED MODULE: ../web3-constants/evm/space-station-galaxy.json -const space_station_galaxy_namespaceObject = JSON.parse('{"CONTRACT_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"0xdeb1F826c512EEE2FA9398225A3401A0Dd5311E2","Mumbai":"0x1e82cFbcF7292DEf91a2A5736265555883FF0289","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"SUBGRAPH_URL":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"https://graphigo.prd.galaxy.eco/query","Mumbai":"https://graphigo.stg.galaxy.eco/query","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""}}'); -;// CONCATENATED MODULE: ../web3-constants/evm/opensea-api.json -const opensea_api_namespaceObject = JSON.parse('{"GET_CONTRACT_URL":{"Mainnet":"https://api.opensea.io/api/v1/asset_contract","Ropsten":"","Rinkeby":"https://rinkeby-api.opensea.io/api/v1/asset_contract","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"GET_SINGLE_ASSET_URL":{"Mainnet":"https://api.opensea.io/api/v1/asset","Ropsten":"","Rinkeby":"https://rinkeby-api.opensea.io/api/v1/asset","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"GET_ASSETS_URL":{"Mainnet":"https://api.opensea.io/api/v1/assets","Ropsten":"","Rinkeby":"https://rinkeby-api.opensea.io/api/v1/assets","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""}}'); -;// CONCATENATED MODULE: ../web3-constants/evm/cryptoartai.json -const cryptoartai_namespaceObject = JSON.parse('{"KNOWN_ORIGIN_DIGITAL_ASSET_V2":{"Mainnet":"0x3AD503084f1bD8d15A7F5EbE7A038C064e1E3Fa1","Ropsten":"","Rinkeby":"","Kovan":"0x54395e6c737734d3de29fc62c10a3ed51efa2e8a","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"ARTIST_ACCEPTING_BIDS_V2":{"Mainnet":"0x78C889749f29D2965a76Ede3BBb232A9729Ccf0b","Ropsten":"","Rinkeby":"","Kovan":"0x7bd41f5c8cb6225e7415f1406e117701a40626e0","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"CANFT_MARKET":{"Mainnet":"0x72d081953957723e540780a0C6bA31725469238E","Ropsten":"","Rinkeby":"","Kovan":"0xf690444aae2371da6f83af442f52535530702ab4","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""}}'); -;// CONCATENATED MODULE: ../web3-constants/evm/artblocks.json -const artblocks_namespaceObject = JSON.parse('{"GEN_ART_721_MINTER":{"Mainnet":"0x47e312d99C09Ce61A866c83cBbbbED5A4b9d33E7","Ropsten":"0x58727f5Fc3705C30C9aDC2bcCC787AB2BA24c441","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""}}'); -;// CONCATENATED MODULE: ../web3-constants/evm/aave.json -const aave_namespaceObject = JSON.parse('{"AAVE_SUBGRAPHS":{"Mainnet":"https://api.thegraph.com/subgraphs/name/aave/protocol-v2","Ropsten":"","Rinkeby":"","Kovan":"https://api.thegraph.com/subgraphs/name/aave/protocol-v2-kovan","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"AAVE_LENDING_POOL_ADDRESSES_PROVIDER_CONTRACT_ADDRESS":{"Mainnet":"0xb53c1a33016b2dc2ff3653530bff1848a515c8c5","Ropsten":"","Rinkeby":"","Kovan":"0x88757f2f99175387ab4c6a4b3067c77a695b0349","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"AAVE_PROTOCOL_DATA_PROVIDER_CONTRACT_ADDRESS":{"Mainnet":"0x057835Ad21a177dbdd3090bB1CAE03EaCF78Fc6d","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""}}'); -;// CONCATENATED MODULE: ../web3-constants/evm/lido.json -const lido_namespaceObject = JSON.parse('{"LIDO_stETH_ADDRESS":{"Mainnet":"0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"0x1643E812aE58766192Cf7D2Cf9567dF2C37e9B7F","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":""},"LIDO_REFERRAL_ADDRESS":{"Mainnet":"0x934b510d4c9103e6a87aef13b816fb080286d649","Ropsten":"0x934b510d4c9103e6a87aef13b816fb080286d649","Rinkeby":"0x934b510d4c9103e6a87aef13b816fb080286d649","Kovan":"0x934b510d4c9103e6a87aef13b816fb080286d649","Gorli":"0x934b510d4c9103e6a87aef13b816fb080286d649","BSC":"0x934b510d4c9103e6a87aef13b816fb080286d649","BSCT":"0x934b510d4c9103e6a87aef13b816fb080286d649","Matic":"0x934b510d4c9103e6a87aef13b816fb080286d649","Mumbai":"0x934b510d4c9103e6a87aef13b816fb080286d649","Arbitrum":"0x934b510d4c9103e6a87aef13b816fb080286d649","Arbitrum_Rinkeby":"0x934b510d4c9103e6a87aef13b816fb080286d649","xDai":"0x934b510d4c9103e6a87aef13b816fb080286d649","Avalanche":"0x934b510d4c9103e6a87aef13b816fb080286d649","Avalanche_Fuji":"0x934b510d4c9103e6a87aef13b816fb080286d649","Celo":"0x934b510d4c9103e6a87aef13b816fb080286d649","Fantom":"0x934b510d4c9103e6a87aef13b816fb080286d649","Aurora":"0x934b510d4c9103e6a87aef13b816fb080286d649","Aurora_Testnet":"0x934b510d4c9103e6a87aef13b816fb080286d649","Conflux":""}}'); -// EXTERNAL MODULE: ../web3-shared/evm/constants/utils.ts -var utils = __webpack_require__(75460); -;// CONCATENATED MODULE: ../web3-shared/evm/constants/constants.ts @@ -36519,17 +36847,257 @@ var utils = __webpack_require__(75460); +const MIN_AMOUNT_LENGTH = 1; +const MAX_AMOUNT_LENGTH = 79; +const useStyles = (0,_masknet_theme__WEBPACK_IMPORTED_MODULE_4__/* .makeStyles */ .ZL)()((theme)=>{ + return { + root: {}, + input: { + '&::-webkit-outer-spin-button, &::-webkit-inner-spin-button': { + '-webkit-appearance': 'none', + margin: 0 + }, + '-moz-appearance': 'textfield' + }, + max: { + marginRight: theme.spacing(0.2), + borderRadius: 8, + fontSize: 12, + height: 18 + }, + token: { + whiteSpace: 'pre', + maxWidth: 300, + paddingLeft: theme.spacing(1), + fontSize: 12 + }, + balance: { + whiteSpace: 'nowrap', + textOverflow: 'ellipsis', + overflow: 'hidden', + maxWidth: '80%', + fontSize: 12, + top: theme.spacing(0.5), + position: 'absolute' + }, + inputShrinkLabel: { + transform: 'translate(17px, -3px) scale(0.75) !important' + } + }; +}); +// todo: merge into one with TokenAmountPanel +function TokenAmountPanel(props) { + const { amount , maxAmount , balance , token , onAmountChange , maxAmountShares =1 , label , disableToken =false , disableBalance =false , MaxChipProps , } = props; + const t = (0,_locales__WEBPACK_IMPORTED_MODULE_7__/* .useSharedI18N */ .B)(); + const classes = (0,_masknet_theme__WEBPACK_IMPORTED_MODULE_4__/* .useStylesExtends */ .Bc)(useStyles(), props); + // #region update amount by self + const { RE_MATCH_WHOLE_AMOUNT , RE_MATCH_FRACTION_AMOUNT } = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>({ + RE_MATCH_FRACTION_AMOUNT: new RegExp(`^\\.\\d{0,${token?.decimals}}$`), + RE_MATCH_WHOLE_AMOUNT: new RegExp(`^\\d*\\.?\\d{0,${token?.decimals}}$`) + }) + , [ + token?.decimals + ]); + const onChange = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)((ev)=>{ + const amount_ = ev.currentTarget.value.replace(/,/g, '.'); + if (RE_MATCH_FRACTION_AMOUNT.test(amount_)) onAmountChange(`0${amount_}`); + else if (amount_ === '' || RE_MATCH_WHOLE_AMOUNT.test(amount_)) onAmountChange(amount_); + }, [ + onAmountChange, + RE_MATCH_WHOLE_AMOUNT, + RE_MATCH_FRACTION_AMOUNT + ]); + // #endregion + return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_masknet_theme__WEBPACK_IMPORTED_MODULE_4__/* .MaskTextField */ .FU, { + className: classes.root, + label: label, + fullWidth: true, + required: true, + type: "text", + value: amount, + onChange: onChange, + placeholder: "0.0", + InputProps: { + inputProps: { + autoComplete: 'off', + autoCorrect: 'off', + title: 'Token Amount', + inputMode: 'decimal', + min: 0, + minLength: MIN_AMOUNT_LENGTH, + maxLength: MAX_AMOUNT_LENGTH, + pattern: '^[0-9]*[.,]?[0-9]*$', + spellCheck: false, + className: classes.input + }, + endAdornment: disableToken ? null : token ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_mui_material__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .Z, { + className: classes.token, + sx: { + display: 'flex', + flexDirection: 'column', + justifyContent: 'center', + alignItems: 'flex-end' + }, + children: [ + !disableBalance ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_mui_material__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .Z, { + className: classes.balance, + color: "textSecondary", + variant: "body2", + component: "span", + children: [ + t.balance(), + ":", + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_wallet__WEBPACK_IMPORTED_MODULE_8__/* .FormattedBalance */ .BV, { + value: balance, + decimals: token.decimals, + significant: 6, + formatter: _masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_5__/* .formatBalance */ .az + }) + ] + }) : null, + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_mui_material__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .Z, { + sx: { + display: 'flex', + alignItems: 'center', + marginTop: 2 + }, + children: [ + balance !== '0' && !disableBalance ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_11__/* ["default"] */ .Z, { + classes: { + root: classnames__WEBPACK_IMPORTED_MODULE_2___default()(classes.max, MaxChipProps?.classes?.root), + ...MaxChipProps?.classes + }, + size: "small", + label: "MAX", + clickable: true, + color: "primary", + variant: "outlined", + onClick: ()=>{ + onAmountChange((0,_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_5__/* .formatBalance */ .az)(new (bignumber_js__WEBPACK_IMPORTED_MODULE_3___default())(maxAmount ?? balance).dividedBy(maxAmountShares).decimalPlaces(0, 1), token.decimals)); + }, + ...MaxChipProps + }) : null, + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_SelectTokenChip__WEBPACK_IMPORTED_MODULE_6__/* .SelectTokenChip */ .x, { + token: token, + ...props.SelectTokenChip + }) + ] + }) + ] + }) : /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_mui_material__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .Z, { + className: classes.token, + sx: { + display: 'flex', + flexDirection: 'column', + justifyContent: 'center', + alignItems: 'flex-end', + marginTop: 2 + }, + children: [ + !disableBalance ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .Z, { + className: classes.balance, + color: "textSecondary", + variant: "body2", + component: "span", + children: "-" + }) : null, + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_SelectTokenChip__WEBPACK_IMPORTED_MODULE_6__/* .SelectTokenChip */ .x, { + token: token, + ...props.SelectTokenChip + }) + ] + }), + ...props.InputProps + }, + InputLabelProps: { + shrink: true, + classes: { + shrink: classes.inputShrinkLabel + } + }, + ...props.TextFieldProps + }); +} +/***/ }), +/***/ 95462: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { +"use strict"; +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "T": () => (/* binding */ TokenIcon) +}); +// UNUSED EXPORTS: TokenIconUI +// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.1.0/node_modules/react/jsx-runtime.js +var jsx_runtime = __webpack_require__(35667); +// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.1.0/node_modules/react/index.js +var react = __webpack_require__(58757); +// EXTERNAL MODULE: ../../node_modules/.pnpm/react-use@17.4.0/node_modules/react-use/esm/useAsyncRetry.js +var useAsyncRetry = __webpack_require__(58500); +// EXTERNAL MODULE: ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/head.js +var head = __webpack_require__(29730); +// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.8.0_4xriuibr7qayay6mzcpq5f43me/node_modules/@mui/material/Avatar/Avatar.js + 2 modules +var Avatar = __webpack_require__(3808); +// EXTERNAL MODULE: ../theme/src/entry.ts +var entry = __webpack_require__(31939); +;// CONCATENATED MODULE: ../shared/src/UI/components/TokenIcon/constants.ts +const NO_IMAGE_COLOR = [ + '#ea7262', + '#f3c76b', + '#62c1ea', + '#627eea', + '#a662ea' +]; +/* harmony default export */ const constants = (NO_IMAGE_COLOR); +// EXTERNAL MODULE: ../plugin-infra/src/entry-web3.ts + 1 modules +var entry_web3 = __webpack_require__(50719); +// EXTERNAL MODULE: ../shared-base/src/index.ts + 2 modules +var src = __webpack_require__(44451); +;// CONCATENATED MODULE: ../shared/src/hooks/useImageBase64.ts +function readAsDataURL(blob) { + return new Promise((resolve, reject)=>{ + const reader = new FileReader(); + reader.addEventListener('load', ()=>resolve(reader.result) + ); + reader.addEventListener('error', reject); + reader.readAsDataURL(blob); + }); +} +const cache = new Map(); +function useImageBase64(key, url, options) { + const fetch = options?.fetch ?? globalThis.fetch; + const [base64, setBase64] = (0,react.useState)(cache.get(key ?? '') ?? ''); + (0,useAsyncRetry/* default */.Z)(async ()=>{ + if (!key) return; + const hit = cache.get(key); + if (hit) { + setBase64(hit); + return; + } + if (!url || !fetch) return; + const response = await fetch(`https://cors.r2d2.to/?${url}`); + if (!response) return; + const blob = await response.blob(); + const dataURL = await readAsDataURL(blob); + cache.set(key, dataURL); + setBase64(dataURL); + }, [ + key, + url + ]); + return base64; +} +;// CONCATENATED MODULE: ../shared/src/UI/components/TokenIcon/index.tsx @@ -36540,521 +37108,409 @@ var utils = __webpack_require__(75460); -function getEnvConstants(key) { - try { - const map = { - WEB3_CONSTANTS_RPC: "{\"RPC\":{\"Mainnet\":[\"https://damp-holy-water.quiknode.pro/d5bcb6c5e265afd11fecb0d52275afa961487a29/\",\"https://mainnet.infura.io/v3/50676f4e9b9d4780a34fc8a503ff7f4f\",\"https://throbbing-blue-bird.quiknode.io/73e66978-1a45-4f91-97f3-25d59b51a00e/YScEAjYfzZqNphokjzn-Zt3sZsOd0Nav5sauA3j03se0LOseR8PQFyBfINzhYStWrg44VfLLfCFE34FR2CA_kQ==/\"],\"Ropsten\":[\"https://ropsten.infura.io/v3/11f8b6b36f4a408e85d8a4e52d31edc5\"],\"Rinkeby\":[\"https://rinkeby.infura.io/v3/11f8b6b36f4a408e85d8a4e52d31edc5\"],\"Kovan\":[\"https://kovan.infura.io/v3/11f8b6b36f4a408e85d8a4e52d31edc5\"],\"Gorli\":[\"https://goerli.infura.io/v3/11f8b6b36f4a408e85d8a4e52d31edc5\"],\"BSC\":[\"https://bsc-dataseed.binance.org/\"],\"BSCT\":[\"https://data-seed-prebsc-1-s1.binance.org:8545/\"],\"Matic\":[\"https://polygon-mainnet.infura.io/v3/50676f4e9b9d4780a34fc8a503ff7f4f\"],\"Mumbai\":[\"https://polygon-mumbai.infura.io/v3/50676f4e9b9d4780a34fc8a503ff7f4f\"],\"Arbitrum\":[\"https://arb1.arbitrum.io/rpc\"],\"Arbitrum_Rinkeby\":[\"https://rinkeby.arbitrum.io/rpc\"],\"xDai\":[\"https://rpc.gnosischain.com\"],\"Avalanche\":[\"https://api.avax.network/ext/bc/C/rpc\"],\"Avalanche_Fuji\":[\"https://api.avax-test.network/ext/bc/C/rpc\"],\"Celo\":[\"https://forno.celo.org\"],\"Fantom\":[\"https://rpc.ftm.tools/\"],\"Aurora\":[\"https://mainnet.aurora.dev\"],\"Aurora_Testnet\":[\"https://testnet.aurora.dev\"],\"Conflux\":[\"https://evm.confluxrpc.com\"],\"Harmony\":[\"https://api.harmony.one\"],\"Harmony_Test\":[\"https://api.s0.b.hmny.io\"]},\"RPC_WEIGHTS\":{\"Mainnet\":[0,1,1,2],\"Ropsten\":[0,0,0,0],\"Rinkeby\":[0,0,0,0],\"Kovan\":[0,0,0,0],\"Gorli\":[0,0,0,0],\"BSC\":[0,0,0,0],\"BSCT\":[0,0,0,0],\"Matic\":[0,0,0,0],\"Mumbai\":[0,0,0,0],\"Arbitrum\":[0,0,0,0],\"Arbitrum_Rinkeby\":[0,0,0,0],\"xDai\":[0,0,0,0],\"Avalanche\":[0,0,0,0],\"Avalanche_Fuji\":[0,0,0,0],\"Celo\":[0,0,0,0],\"Fantom\":[0,0,0,0],\"Aurora\":[0,0,0,0],\"Aurora_Testnet\":[0,0,0,0],\"Conflux\":[0,0,0,0],\"Harmony\":[0,0,0,0],\"Harmony_Test\":[0,0,0,0]}}" +const useStyles = (0,entry/* makeStyles */.ZL)()((theme)=>({ + icon: { + backgroundColor: theme.palette.common.white, + margin: 0 + } + }) +); +function TokenIcon(props) { + const { address , logoURL , name , AvatarProps , classes } = props; + const chainId = (0,entry_web3/* useChainId */.xx)(props.pluginID, props.chainId); + const hub = (0,entry_web3/* useWeb3Hub */.hh)(props.pluginID); + const { value } = (0,useAsyncRetry/* default */.Z)(async ()=>{ + const logoURLs = await hub?.getFungibleTokenIconURLs?.(chainId, address); + return { + key: `${address}_${chainId}`, + urls: [ + logoURL, + ...logoURLs ?? [] + ].filter(Boolean) }; - return map[key] ?? ''; - } catch { - return ''; - } + }, [ + chainId, + address, + logoURL, + hub + ]); + const { urls =src/* EMPTY_LIST */.rP , key } = value ?? {}; + const base64 = useImageBase64(key, (0,head/* default */.Z)(urls)); + return /*#__PURE__*/ (0,jsx_runtime.jsx)(TokenIconUI, { + logoURL: base64, + AvatarProps: AvatarProps, + classes: classes, + name: name + }); } -const getAirdropConstants = (0,utils/* transform */.vs)(airdrop_namespaceObject); -const useAirdropConstants = (0,utils/* hookTransform */.SL)(getAirdropConstants); -const getEthereumConstants = (0,utils/* transform */.vs)(ethereum_namespaceObject); -const useEthereumConstants = (0,utils/* hookTransform */.SL)(getEthereumConstants); -const getDeBankConstants = (0,utils/* transform */.vs)(debank); -const useDeBankConstants = (0,utils/* hookTransform */.SL)(getDeBankConstants); -const getCoinGeckoConstants = (0,utils/* transform */.vs)(coingecko_namespaceObject); -const useCoinGeckoConstants = (0,utils/* hookTransform */.SL)(getCoinGeckoConstants); -const getCoinMarketCapConstants = (0,utils/* transform */.vs)(coinmarketcap_namespaceObject); -const useCoinMarketCapConstants = (0,utils/* hookTransform */.SL)(getCoinMarketCapConstants); -const getZerionConstants = (0,utils/* transform */.vs)(zerion_namespaceObject); -const useZerionConstants = (0,utils/* hookTransform */.SL)(getZerionConstants); -const getGitcoinConstants = (0,utils/* transform */.vs)(gitcoin_namespaceObject); -const useGitcoinConstants = (0,utils/* hookTransform */.SL)(getGitcoinConstants); -const getOpenOceanConstants = (0,utils/* transform */.vs)(openocean_namespaceObject); -const useOpenOceanConstants = (0,utils/* hookTransform */.SL)(getOpenOceanConstants); -const getITOConstants = (0,utils/* transform */.vs)(ito_namespaceObject); -const useITOConstants = (0,utils/* hookTransform */.SL)(getITOConstants); -const getLBPConstants = (0,utils/* transform */.vs)(lbp_namespaceObject); -const useLBPConstants = (0,utils/* hookTransform */.SL)(getLBPConstants); -const getRedPacketConstants = (0,utils/* transform */.vs)(red_packet_namespaceObject); -const useRedPacketConstants = (0,utils/* hookTransform */.SL)(getRedPacketConstants); -const getTokenConstants = (0,utils/* transform */.vs)(token_namespaceObject); -const useTokenConstants = (0,utils/* hookTransform */.SL)(getTokenConstants); -const getTraderConstants = (0,utils/* transform */.vs)(trader_namespaceObject); -const useTraderConstants = (0,utils/* hookTransform */.SL)(getTraderConstants); -const getTrendingConstants = (0,utils/* transform */.vs)(trending_namespaceObject); -const useTrendingConstants = (0,utils/* hookTransform */.SL)(getTrendingConstants); -const getMaskBoxConstants = (0,utils/* transform */.vs)(mask_box_namespaceObject); -const useMaskBoxConstants = (0,utils/* hookTransform */.SL)(getMaskBoxConstants); -const getRPCConstants = (0,utils/* transformFromJSON */.rm)(getEnvConstants('WEB3_CONSTANTS_RPC'), rpc_namespaceObject); -const useRPCConstants = (0,utils/* hookTransform */.SL)(getRPCConstants); -const getExplorerConstants = (0,utils/* transform */.vs)(explorer_namespaceObject); -const useExplorerConstants = (0,utils/* hookTransform */.SL)(getExplorerConstants); -const getTokenListConstants = (0,utils/* transform */.vs)(token_list_namespaceObject); -const useTokenListConstants = (0,utils/* hookTransform */.SL)(getTokenListConstants); -const getTokenAssetBaseURLConstants = (0,utils/* transform */.vs)(token_asset_base_url_namespaceObject); -const useTokenAssetBaseURLConstants = (0,utils/* hookTransform */.SL)(getTokenAssetBaseURLConstants); -const getPoolTogetherConstants = (0,utils/* transform */.vs)(pooltogether_namespaceObject); -const usePoolTogetherConstants = (0,utils/* hookTransform */.SL)(getPoolTogetherConstants); -const getGoodGhostingConstants = (0,utils/* transform */.vs)(good_ghosting_namespaceObject); -const useGoodGhostingConstants = (0,utils/* hookTransform */.SL)(getGoodGhostingConstants); -const getSpaceStationGalaxyConstants = (0,utils/* transform */.vs)(space_station_galaxy_namespaceObject); -const useSpaceStationGalaxyConstants = (0,utils/* hookTransform */.SL)(getSpaceStationGalaxyConstants); -const getOpenseaAPIConstants = (0,utils/* transform */.vs)(opensea_api_namespaceObject); -const useOpenseaAPIConstants = (0,utils/* hookTransform */.SL)(getOpenseaAPIConstants); -const getCryptoArtAIConstants = (0,utils/* transform */.vs)(cryptoartai_namespaceObject); -const useCryptoArtAIConstants = (0,utils/* hookTransform */.SL)(getCryptoArtAIConstants); -const getArtBlocksConstants = (0,utils/* transform */.vs)(artblocks_namespaceObject); -const useArtBlocksConstants = (0,utils/* hookTransform */.SL)(getArtBlocksConstants); -const getNftRedPacketConstants = (0,utils/* transform */.vs)(nft_red_packet_namespaceObject); -const useNftRedPacketConstants = (0,utils/* hookTransform */.SL)(getNftRedPacketConstants); -const getAaveConstants = (0,utils/* transform */.vs)(aave_namespaceObject); -const useAaveConstants = (0,utils/* hookTransform */.SL)(getAaveConstants); -const getLidoConstants = (0,utils/* transform */.vs)(lido_namespaceObject); -const useLidoConstants = (0,utils/* hookTransform */.SL)(getLidoConstants); - - -/***/ }), - -/***/ 35827: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "D": () => (/* binding */ FAKE_SIGN_PASSWORD), -/* harmony export */ "r": () => (/* binding */ ZERO_ADDRESS) -/* harmony export */ }); -const ZERO_ADDRESS = '0x0000000000000000000000000000000000000000'; -// for estimate gas -const FAKE_SIGN_PASSWORD = '0x75466cc969717b172b14253aaeebdc958f2b5037a852c1337650ed4978242dd9'; +const TokenIconUI = /*#__PURE__*/ (0,react.memo)((props)=>{ + const { logoURL , AvatarProps , name } = props; + // add background color to no-img token icon + const defaultBackgroundColorNumber = name?.split('')?.reduce((total, cur)=>total + Number(cur?.charCodeAt(0)) + , 0); + const defaultBackgroundColor = defaultBackgroundColorNumber ? constants?.[defaultBackgroundColorNumber % 5] : undefined; + const classes = (0,entry/* useStylesExtends */.Bc)(useStyles(), props); + return /*#__PURE__*/ (0,jsx_runtime.jsx)(Avatar/* default */.Z, { + className: classes.icon, + src: logoURL, + style: { + backgroundColor: logoURL ? undefined : defaultBackgroundColor + }, + ...AvatarProps, + children: name?.slice(0, 1).toUpperCase() + }); +}); /***/ }), -/***/ 10466: +/***/ 58437: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "AA": () => (/* binding */ USDT), -/* harmony export */ "FX": () => (/* binding */ WNATIVE), -/* harmony export */ "HL": () => (/* binding */ WNATIVE_ONLY), -/* harmony export */ "Hh": () => (/* binding */ fUSDT), -/* harmony export */ "J6": () => (/* binding */ maUSDC), -/* harmony export */ "Lq": () => (/* binding */ DAIe), -/* harmony export */ "MI": () => (/* binding */ WBTCe), -/* harmony export */ "ML": () => (/* binding */ WBTC), -/* harmony export */ "PX": () => (/* binding */ CUSD), -/* harmony export */ "TP": () => (/* binding */ COMP), -/* harmony export */ "Th": () => (/* binding */ CEUR), -/* harmony export */ "Ti": () => (/* binding */ MKR), -/* harmony export */ "_S": () => (/* binding */ STETH), -/* harmony export */ "_c": () => (/* binding */ USDTe), -/* harmony export */ "bi": () => (/* binding */ UST), -/* harmony export */ "c0": () => (/* binding */ ETHER), -/* harmony export */ "gn": () => (/* binding */ USDC), -/* harmony export */ "h1": () => (/* binding */ DAI), -/* harmony export */ "lB": () => (/* binding */ WANNA), -/* harmony export */ "lK": () => (/* binding */ NFTX), -/* harmony export */ "lz": () => (/* binding */ BUSD), -/* harmony export */ "nB": () => (/* binding */ BTCB), -/* harmony export */ "s5": () => (/* binding */ AMPL), -/* harmony export */ "tB": () => (/* binding */ USDCe), -/* harmony export */ "uj": () => (/* binding */ RUNE), -/* harmony export */ "xZ": () => (/* binding */ QUICK), -/* harmony export */ "yI": () => (/* binding */ PNG) +/* harmony export */ "o": () => (/* binding */ WalletIcon) /* harmony export */ }); -/* unused harmony exports HUSD, OKB, EASY, eUSDC, eUSDT, eDAI, sUSD, UNITOKEN, TT01, TT02, IGG, OM, SUSHI, YAM, YFI, CAKE, JOE */ -/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(65506); -/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(33690); -/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(80526); - - -const USDC = (0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .createERC20Tokens */ .vs)('USDC_ADDRESS', 'USD Coin', 'USDC', 6); -const USDCe = (0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .createERC20Tokens */ .vs)('USDC_ADDRESS', 'USD Coin', 'USDCe', 6); -const USDT = (0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .createERC20Tokens */ .vs)('USDT_ADDRESS', 'Tether USD', 'USDT', 6); -const USDTe = (0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .createERC20Tokens */ .vs)('USDT_ADDRESS', 'Tether USD', 'USDT.e', 6); -const fUSDT = (0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .createERC20Tokens */ .vs)('fUSDT_ADDRESS', 'Frapped USDT', 'fUSDT', 6); -const HUSD = (0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .createERC20Tokens */ .vs)('HUSD_ADDRESS', 'Huobi USD', 'HUSD', 6); -const BUSD = (0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .createERC20Tokens */ .vs)('BUSD_ADDRESS', 'Huobi USD', 'BUSD', 6); -const COMP = (0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .createERC20Tokens */ .vs)('COMP_ADDRESS', 'Compound', 'COMP', 18); -const MKR = (0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .createERC20Tokens */ .vs)('MKR_ADDRESS', 'Maker', 'MKR', 18); -const DAI = (0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .createERC20Tokens */ .vs)('DAI_ADDRESS', 'Dai Stablecoin', 'DAI', 18); -const DAIe = (0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .createERC20Tokens */ .vs)('DAI_ADDRESS', 'Dai Stablecoin', 'DAI.e', 18); -const AMPL = (0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .createERC20Tokens */ .vs)('AMPL_ADDRESS', 'Ampleforth', 'AMPL', 18); -const OKB = (0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .createERC20Tokens */ .vs)('OKB_ADDRESS', 'Ampleforth', 'OKB', 18); -const UST = (0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .createERC20Tokens */ .vs)('UST_ADDRESS', 'Wrapped UST Token', 'UST', 18); -const EASY = (0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .createERC20Tokens */ .vs)('EASY_ADDRESS', 'EASY', 'EASY', 18); -const eUSDC = (0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .createERC20Tokens */ .vs)('eUSDC_ADDRESS', 'Easy USDC', 'eUSDC', 18); -const eUSDT = (0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .createERC20Tokens */ .vs)('eUSDT_ADDRESS', 'Easy USDT', 'eUSDT', 18); -const eDAI = (0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .createERC20Tokens */ .vs)('eDAI_ADDRESS', 'Easy DAI', 'eDAI', 18); -const sUSD = (0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .createERC20Tokens */ .vs)('sUSD_ADDRESS', 'Synth sUSD', 'sUSD', 18); -const UNITOKEN = (0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .createERC20Tokens */ .vs)('UNITOKEN_ADDRESS', 'Uniswap', 'UNI', 18); -const TT01 = (0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .createERC20Tokens */ .vs)('TT01_ADDRESS', 'Test Token 01', 'TT01', 18); -const TT02 = (0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .createERC20Tokens */ .vs)('TT02_ADDRESS', 'Test Token 02', 'TT02', 18); -const ETHER = (0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .createERC20Tokens */ .vs)('ETHER_ADDRESS', 'Ether', 'ETH', 18); -const QUICK = (0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .createERC20Tokens */ .vs)('QUICK_ADDRESS', 'Quickswap', 'QUICK', 18); -const WANNA = (0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .createERC20Tokens */ .vs)('WANNA_ADDRESS', 'Wannaswap', 'WANNA', 18); -const WBTC = (0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .createERC20Tokens */ .vs)('WBTC_ADDRESS', 'Wrapped Bitcoin', 'WBTC', 18); -const WBTCe = (0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .createERC20Tokens */ .vs)('WBTC_ADDRESS', 'Wrapped Bitcoin', 'WBTCe', 18); -const IGG = (0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .createERC20Tokens */ .vs)('IGG_ADDRESS', 'IG Gold', 'IGG', 18); -const OM = (0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .createERC20Tokens */ .vs)('OM_ADDRESS', 'OM Token', 'OM', 18); -const SUSHI = (0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .createERC20Tokens */ .vs)('SUSHI_ADDRESS', 'SushiToken', 'SUSHI', 18); -const YAM = (0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .createERC20Tokens */ .vs)('YAM_ADDRESS', 'YAM', 'YAM', 18); -const RUNE = (0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .createERC20Tokens */ .vs)('RUNE_ADDRESS', 'RUNE.ETH', 'RUNE', 18); -const YFI = (0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .createERC20Tokens */ .vs)('YFI_ADDRESS', 'Yearn', 'YFI', 18); -const BTCB = (0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .createERC20Tokens */ .vs)('BTCB_ADDRESS', 'Binance BTC', 'BTCB', 18); -const CAKE = (0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .createERC20Tokens */ .vs)('CAKE_ADDRESS', 'PancakeSwap Token', 'CAKE', 18); -const maUSDC = (0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .createERC20Tokens */ .vs)('maUSDC_ADDRESS', 'Matic Aave interest bearing USDC', 'maUSDC', 6); -const NFTX = (0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .createERC20Tokens */ .vs)('NFTX_ADDRESS', 'NFTX', 'NFTX', 18); -const STETH = (0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .createERC20Tokens */ .vs)('stETH_ADDRESS', 'stakedETH', 'stETH', 18); -const CUSD = (0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .createERC20Tokens */ .vs)('cUSD_ADDRESS', 'Celo Dollar', 'cUSD', 18); -const CEUR = (0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .createERC20Tokens */ .vs)('cEUR_ADDRESS', 'Celo Euro', 'cEUR', 18); -const JOE = (0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .createERC20Tokens */ .vs)('JOE_ADDRESS', 'JoeToken', 'JOE', 18); -const PNG = (0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .createERC20Tokens */ .vs)('PNG_ADDRESS', 'Pangolin', 'PNG', 18); -const WNATIVE = (0,_utils__WEBPACK_IMPORTED_MODULE_0__/* .createERC20Tokens */ .vs)('WNATIVE_ADDRESS', (chainId)=>`Wrapped ${(0,_utils__WEBPACK_IMPORTED_MODULE_1__/* .getChainDetailed */ .$G)(chainId)?.nativeCurrency.name ?? 'Ether'}` -, (chainId)=>`W${(0,_utils__WEBPACK_IMPORTED_MODULE_1__/* .getChainDetailed */ .$G)(chainId)?.nativeCurrency.symbol ?? 'ETH'}` -, 18); -const WNATIVE_ONLY = { - [_types__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Mainnet */ .a_.Mainnet]: [ - WNATIVE[_types__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Mainnet */ .a_.Mainnet] - ], - [_types__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Ropsten */ .a_.Ropsten]: [ - WNATIVE[_types__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Ropsten */ .a_.Ropsten] - ], - [_types__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Rinkeby */ .a_.Rinkeby]: [ - WNATIVE[_types__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Rinkeby */ .a_.Rinkeby] - ], - [_types__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Kovan */ .a_.Kovan]: [ - WNATIVE[_types__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Kovan */ .a_.Kovan] - ], - [_types__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Gorli */ .a_.Gorli]: [ - WNATIVE[_types__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Gorli */ .a_.Gorli] - ], - [_types__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.BSC */ .a_.BSC]: [ - WNATIVE[_types__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.BSC */ .a_.BSC] - ], - [_types__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.BSCT */ .a_.BSCT]: [ - WNATIVE[_types__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.BSCT */ .a_.BSCT] - ], - [_types__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Matic */ .a_.Matic]: [ - WNATIVE[_types__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Matic */ .a_.Matic] - ], - [_types__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Mumbai */ .a_.Mumbai]: [ - WNATIVE[_types__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Mumbai */ .a_.Mumbai] - ], - [_types__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Arbitrum */ .a_.Arbitrum]: [ - WNATIVE[_types__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Arbitrum */ .a_.Arbitrum] - ], - [_types__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Arbitrum_Rinkeby */ .a_.Arbitrum_Rinkeby]: [ - WNATIVE[_types__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Arbitrum_Rinkeby */ .a_.Arbitrum_Rinkeby] - ], - [_types__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.xDai */ .a_.xDai]: [ - WNATIVE[_types__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.xDai */ .a_.xDai] - ], - [_types__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Avalanche */ .a_.Avalanche]: [ - WNATIVE[_types__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Avalanche */ .a_.Avalanche] - ], - [_types__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Avalanche_Fuji */ .a_.Avalanche_Fuji]: [ - WNATIVE[_types__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Avalanche_Fuji */ .a_.Avalanche_Fuji] - ], - [_types__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Celo */ .a_.Celo]: [ - WNATIVE[_types__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Celo */ .a_.Celo] - ], - [_types__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Fantom */ .a_.Fantom]: [ - WNATIVE[_types__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Fantom */ .a_.Fantom] - ], - [_types__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Aurora */ .a_.Aurora]: [ - WNATIVE[_types__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Aurora */ .a_.Aurora] - ], - [_types__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Aurora_Testnet */ .a_.Aurora_Testnet]: [ - WNATIVE[_types__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Aurora_Testnet */ .a_.Aurora_Testnet] - ] +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35667); +/* harmony import */ var _masknet_theme__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(31939); +/* harmony import */ var _ImageIcon__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(99341); + + + +const useStyles = (0,_masknet_theme__WEBPACK_IMPORTED_MODULE_1__/* .makeStyles */ .ZL)()((theme, props)=>({ + root: { + position: 'relative', + display: 'flex', + height: props.size, + width: props.size + }, + mainIcon: { + display: 'block' + }, + badgeIcon: { + position: 'absolute', + right: -6, + bottom: -4, + border: `1px solid ${props.badgeIconBorderColor ?? theme.palette.common.white}`, + borderRadius: '50%' + } + }) +); +const WalletIcon = (props)=>{ + const { size =24 , badgeSize =14 , mainIcon , badgeIcon , badgeIconBorderColor } = props; + const { classes } = useStyles({ + size: badgeSize > size ? badgeSize : size, + badgeIconBorderColor + }); + return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", { + className: classes.root, + style: { + height: size, + width: size + }, + children: [ + mainIcon ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_ImageIcon__WEBPACK_IMPORTED_MODULE_2__/* .ImageIcon */ .X, { + classes: { + icon: classes.mainIcon + }, + size: size, + icon: mainIcon + }) : null, + badgeIcon ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_ImageIcon__WEBPACK_IMPORTED_MODULE_2__/* .ImageIcon */ .X, { + classes: { + icon: classes.badgeIcon + }, + size: badgeSize, + icon: badgeIcon + }) : null + ] + }); }; /***/ }), -/***/ 75460: +/***/ 30613: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "SL": () => (/* binding */ hookTransform), -/* harmony export */ "rm": () => (/* binding */ transformFromJSON), -/* harmony export */ "vs": () => (/* binding */ transform) +/* harmony export */ "R": () => (/* binding */ createUITaskManager) /* harmony export */ }); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(86248); -/* harmony import */ var _hooks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(31174); -/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(65506); +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35667); +/* harmony import */ var _dimensiondev_kit__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(46123); +/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(44451); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(58757); -function transform(constants, environment = {}) { - return (chainId = _types__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Mainnet */ .a_.Mainnet)=>{ - const chainName = _types__WEBPACK_IMPORTED_MODULE_1__/* .ChainId */ .a_[chainId]; - // unknown chain id - if (!chainName) return Object.freeze({}); - const entries = Object.keys(constants).map((name)=>{ - let value = constants[name][chainName]; - if (Array.isArray(value)) { - value = value.map((item)=>{ - if (typeof item === 'string') { - return replaceAll(item, environment); - } - return item; - }); - } else if (typeof value === 'string') { - value = replaceAll(value, environment); - } - return [ - name, - value - ]; - }); - return Object.freeze(Object.fromEntries(entries)); - }; -} -function transformFromJSON(json, fallbackConstants, environment = {}) { - try { - const constants = JSON.parse(json); - return transform(constants, environment); - } catch { - return transform(fallbackConstants, environment); - } -} -function hookTransform(getConstants) { - return function useConstants(chainId) { - const currentChainId = (0,_hooks__WEBPACK_IMPORTED_MODULE_2__/* .useChainId */ .xx)(); - const finalChainId = chainId ?? currentChainId; - return (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(()=>getConstants(finalChainId) - , [ - finalChainId - ]); + +/** + * Create a manager of small UI task sessions, + * which provide both a Context and a Provider. + */ const createUITaskManager = (Component)=>{ + const TaskManagerContext = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_3__.createContext)(null); + let id1 = 0; + const TaskManagerProvider = ({ children })=>{ + const [tasks, setTasks] = (0,react__WEBPACK_IMPORTED_MODULE_3__.useState)(_masknet_shared_base__WEBPACK_IMPORTED_MODULE_2__/* .EMPTY_LIST */ .rP); + const contextValue = (0,react__WEBPACK_IMPORTED_MODULE_3__.useMemo)(()=>{ + const removeTask = (id)=>{ + setTasks((list)=>list.filter((t)=>t.id !== id + ) + ); + }; + return { + show (options, signal) { + const [promise, resolve, reject] = (0,_dimensiondev_kit__WEBPACK_IMPORTED_MODULE_1__/* .defer */ .PQ)(); + id1 += 1; + signal?.addEventListener('abort', function abortHandler() { + resolve(null); + signal.removeEventListener('abort', abortHandler); + }); + const newTask = { + id: id1, + promise, + resolve, + reject, + options + }; + setTasks((list)=>[ + ...list, + newTask + ] + ); + promise.then(()=>{ + removeTask(id1); + }); + return promise; + } + }; + }, []); + return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(TaskManagerContext.Provider, { + value: contextValue, + children: [ + children, + tasks.map((task)=>{ + return /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_3__.createElement)(Component, { + key: task.id, + open: true, + ...task.options, + onSubmit: (result)=>{ + task.options.onSubmit?.(result); + task.resolve(result); + }, + onClose: ()=>{ + task.resolve(null); + } + }, children); + }) + ] + }); }; -} -function replaceAll(input, values) { - return input.replace(/\${([^}]+)}/g, (match, p1)=>values[p1] ?? match - ); -} + return { + TaskManagerContext, + TaskManagerProvider + }; +}; /***/ }), -/***/ 24790: +/***/ 22017: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "N9": () => (/* binding */ useWeb3StateContext), -/* harmony export */ "Qg": () => (/* binding */ Web3Provider), -/* harmony export */ "Z_": () => (/* binding */ useWeb3Context), -/* harmony export */ "dM": () => (/* binding */ useWeb3State) -/* harmony export */ }); -/* unused harmony exports Web3ProviderContext, Web3Context */ -/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(71999); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(86248); -/* harmony import */ var unstated_next__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(44737); -/* harmony import */ var use_subscription__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(66040); -/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(80526); +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "bP": () => (/* reexport */ BaseSharedUIProvider), + "vU": () => (/* reexport */ sharedUIComponentOverwrite), + "Xr": () => (/* reexport */ sharedUINetworkIdentifier), + "uD": () => (/* reexport */ useBaseUIRuntime) +}); + +// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.1.0/node_modules/react/jsx-runtime.js +var jsx_runtime = __webpack_require__(35667); +// EXTERNAL MODULE: ../../node_modules/.pnpm/@dimensiondev+holoflows-kit@0.9.0-20220520093249-0870919_5owzivba7saavwcb3imbrcsadu/node_modules/@dimensiondev/holoflows-kit/umd/index.cjs +var umd = __webpack_require__(88967); +// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.1.0/node_modules/react/index.js +var react = __webpack_require__(58757); +// EXTERNAL MODULE: ../shared-base-ui/src/index.ts +var src = __webpack_require__(80226); +;// CONCATENATED MODULE: ../shared/src/contexts/base/BaseSharedUIProvider.tsx -const Web3ProviderContext = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.createContext)(null); -/** @internal */ function useWeb3Context() { - const context = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(Web3ProviderContext); - if (!context) throw new Error('This hook should be used in a provider.'); - return context; -} -function useWeb3State() { - const _ = useWeb3Context(); - const account = (0,use_subscription__WEBPACK_IMPORTED_MODULE_2__.useSubscription)(_.account); - const allowTestnet = (0,use_subscription__WEBPACK_IMPORTED_MODULE_2__.useSubscription)(_.allowTestnet); - const tokenPrices = (0,use_subscription__WEBPACK_IMPORTED_MODULE_2__.useSubscription)(_.tokenPrices); - const networkType = (0,use_subscription__WEBPACK_IMPORTED_MODULE_2__.useSubscription)(_.networkType); - const providerType = (0,use_subscription__WEBPACK_IMPORTED_MODULE_2__.useSubscription)(_.providerType); - const walletPrimary = (0,use_subscription__WEBPACK_IMPORTED_MODULE_2__.useSubscription)(_.walletPrimary); - const wallets = (0,use_subscription__WEBPACK_IMPORTED_MODULE_2__.useSubscription)(_.wallets); - const chainId = (0,use_subscription__WEBPACK_IMPORTED_MODULE_2__.useSubscription)(_.chainId); - const chainDetailed = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>(0,_utils__WEBPACK_IMPORTED_MODULE_3__/* .getChainDetailed */ .$G)(chainId) - , [ - chainId +const sharedUINetworkIdentifier = new umd.ValueRef('unknown'); +const sharedUIComponentOverwrite = new umd.ValueRef({}); +const BaseUIContext = /*#__PURE__*/ (0,react.createContext)({ + networkIdentifier: sharedUINetworkIdentifier.value, + componentOverwrite: sharedUIComponentOverwrite.value +}); +const BaseSharedUIProvider = ({ children })=>{ + const snsId = (0,src/* useValueRef */.E)(sharedUINetworkIdentifier); + const overwrite = (0,src/* useValueRef */.E)(sharedUIComponentOverwrite); + const contextValue = (0,react.useMemo)(()=>{ + const value = { + networkIdentifier: snsId, + componentOverwrite: overwrite + }; + return value; + }, [ + snsId, + overwrite ]); - const erc20Tokens = (0,use_subscription__WEBPACK_IMPORTED_MODULE_2__.useSubscription)(_.erc20Tokens); - const erc721Tokens = (0,use_subscription__WEBPACK_IMPORTED_MODULE_2__.useSubscription)(_.erc721Tokens); - const erc1155Tokens = (0,use_subscription__WEBPACK_IMPORTED_MODULE_2__.useSubscription)(_.erc1155Tokens); - const portfolioProvider = (0,use_subscription__WEBPACK_IMPORTED_MODULE_2__.useSubscription)(_.portfolioProvider); - return { - allowTestnet, - account, - tokenPrices, - networkType, - providerType, - walletPrimary, - wallets, - chainId, - chainDetailed, - erc20Tokens, - erc721Tokens, - erc1155Tokens, - portfolioProvider, - chainIdValid: !account || (0,_utils__WEBPACK_IMPORTED_MODULE_3__/* .isChainIdValid */ .Ji)(chainId, allowTestnet) - }; -} -const Web3Context = (0,unstated_next__WEBPACK_IMPORTED_MODULE_4__/* .createContainer */ .f)(useWeb3State); -const useWeb3StateContext = Web3Context.useContainer; -// Web3ProviderContext is used to provide a set of API to interact with Web3. -// Web3Context is used to provide a scoped shared state within this provider. -function Web3Provider(props) { - return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Web3ProviderContext.Provider, { - value: props.value, - children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Web3Context.Provider, { - children: props.children - }) + return /*#__PURE__*/ (0,jsx_runtime.jsx)(BaseUIContext.Provider, { + value: contextValue, + children: children }); -} - - -/***/ }), - -/***/ 91690: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { +}; +const useBaseUIRuntime = ()=>{ + return (0,react.useContext)(BaseUIContext); +}; -"use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "S": () => (/* binding */ useERC20TokenContracts), -/* harmony export */ "x": () => (/* binding */ useERC20TokenContract) -/* harmony export */ }); -/* harmony import */ var _masknet_web3_contracts_abis_ERC20_json__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4350); -/* harmony import */ var _hooks_useContract__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3858); +;// CONCATENATED MODULE: ../shared/src/contexts/base/index.ts -function useERC20TokenContract(address, chainId) { - return (0,_hooks_useContract__WEBPACK_IMPORTED_MODULE_1__/* .useContract */ .cq)(address, _masknet_web3_contracts_abis_ERC20_json__WEBPACK_IMPORTED_MODULE_0__, chainId); -} -function useERC20TokenContracts(listOfAddress, chainId) { - return (0,_hooks_useContract__WEBPACK_IMPORTED_MODULE_1__/* .useContracts */ .GP)(listOfAddress, _masknet_web3_contracts_abis_ERC20_json__WEBPACK_IMPORTED_MODULE_0__, chainId); -} /***/ }), -/***/ 85010: +/***/ 80670: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "n": () => (/* binding */ useERC721TokenContract) +/* harmony export */ "Q": () => (/* binding */ ConfirmDialog) /* harmony export */ }); -/* harmony import */ var _masknet_web3_contracts_abis_ERC721_json__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(78322); -/* harmony import */ var _hooks_useContract__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(3858); +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35667); +/* harmony import */ var _masknet_theme__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(31939); +/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(46715); +/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(21948); +/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(85792); +/* harmony import */ var _locales__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(18261); +/* harmony import */ var _components__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(18572); -function useERC721TokenContract(address) { - return (0,_hooks_useContract__WEBPACK_IMPORTED_MODULE_1__/* .useContract */ .cq)(address, _masknet_web3_contracts_abis_ERC721_json__WEBPACK_IMPORTED_MODULE_0__); -} + + + +const useStyles = (0,_masknet_theme__WEBPACK_IMPORTED_MODULE_1__/* .makeStyles */ .ZL)()((theme)=>({ + content: { + display: 'flex', + alignItems: 'center', + justifyContent: 'center', + minHeight: 80, + margin: theme.spacing(0, 1), + fontSize: 18, + fontWeight: 'bold' + }, + button: { + margin: theme.spacing(1) + } + }) +); +const ConfirmDialog = ({ title , confirmLabel , content , onSubmit , ...rest })=>{ + const t = (0,_locales__WEBPACK_IMPORTED_MODULE_2__/* .useSharedI18N */ .B)(); + const { classes } = useStyles(); + return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_components__WEBPACK_IMPORTED_MODULE_3__/* .InjectedDialog */ .F, { + title: title ?? t.dialog_confirm(), + ...rest, + children: [ + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z, { + className: classes.content, + children: content + }), + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z, { + children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, { + fullWidth: true, + className: classes.button, + onClick: ()=>onSubmit?.(true) + , + children: confirmLabel ?? t.dialog_confirm() + }) + }) + ] + }); +}; /***/ }), -/***/ 10372: +/***/ 64781: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "m": () => (/* binding */ useAccount) +/* harmony export */ "Lm": () => (/* reexport safe */ _Confirm__WEBPACK_IMPORTED_MODULE_1__.L), +/* harmony export */ "ci": () => (/* binding */ CommonUIProvider) /* harmony export */ }); -/* harmony import */ var lodash_unified__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(29730); -/* harmony import */ var _context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(24790); +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35667); +/* harmony import */ var _Confirm__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(43894); -/** - * Get the address of the default wallet - */ function useAccount() { - const { account , wallets } = (0,_context__WEBPACK_IMPORTED_MODULE_0__/* .useWeb3StateContext */ .N9)(); - return true ? (0,lodash_unified__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)(wallets)?.address ?? '' : 0; -} + +const CommonUIProvider = ({ children })=>{ + return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Confirm__WEBPACK_IMPORTED_MODULE_1__/* .ConfirmProvider */ .W, { + children: children + }); +}; /***/ }), -/***/ 72831: +/***/ 15285: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; // EXPORTS __webpack_require__.d(__webpack_exports__, { - "R": () => (/* binding */ useAssetsFromChain) + "QQ": () => (/* binding */ EvmSharedUIProvider), + "yQ": () => (/* reexport */ usePickToken) }); -// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.0.0/node_modules/react/index.js -var react = __webpack_require__(86248); -// EXTERNAL MODULE: ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/head.js -var head = __webpack_require__(29730); -// EXTERNAL MODULE: ../shared-base/src/index.ts + 1 modules -var src = __webpack_require__(78144); -// EXTERNAL MODULE: ../web3-shared/evm/types/index.ts -var types = __webpack_require__(65506); -// EXTERNAL MODULE: ../../node_modules/.pnpm/react-use@17.3.2_react-dom@18.0.0+react@18.0.0/node_modules/react-use/esm/useAsyncRetry.js -var useAsyncRetry = __webpack_require__(64452); -// EXTERNAL MODULE: ../../node_modules/.pnpm/web3-utils@1.7.3/node_modules/web3-utils/lib/index.js -var lib = __webpack_require__(11627); -// EXTERNAL MODULE: ../web3-contracts/abis/BalanceChecker.json -var BalanceChecker = __webpack_require__(73003); -// EXTERNAL MODULE: ../web3-shared/evm/constants/constants.ts + 27 modules -var constants = __webpack_require__(26223); -// EXTERNAL MODULE: ../web3-shared/evm/hooks/useContract.ts -var useContract = __webpack_require__(3858); -;// CONCATENATED MODULE: ../web3-shared/evm/contracts/useBalanceChecker.ts - - - -function useBalanceCheckerContract(chainId) { - const { BALANCE_CHECKER_ADDRESS } = (0,constants/* useEthereumConstants */.HV)(chainId); - return (0,useContract/* useContract */.cq)(BALANCE_CHECKER_ADDRESS, BalanceChecker); -} - -// EXTERNAL MODULE: ../web3-shared/evm/hooks/useAccount.ts -var useAccount = __webpack_require__(10372); -// EXTERNAL MODULE: ../web3-shared/evm/hooks/useChainId.ts -var useChainId = __webpack_require__(31174); -;// CONCATENATED MODULE: ../web3-shared/evm/hooks/useTokensBalance.ts - - - - +// UNUSED EXPORTS: TokenPickerProvider +// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.1.0/node_modules/react/jsx-runtime.js +var jsx_runtime = __webpack_require__(35667); +// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.1.0/node_modules/react/index.js +var react = __webpack_require__(58757); +// EXTERNAL MODULE: ../shared/src/contexts/UITaskManager.tsx +var UITaskManager = __webpack_require__(30613); +// EXTERNAL MODULE: ../plugin-infra/src/entry-web3.ts + 1 modules +var entry_web3 = __webpack_require__(50719); +// EXTERNAL MODULE: ../shared/src/index.ts + 2 modules +var src = __webpack_require__(77818); +// EXTERNAL MODULE: ../shared-base/src/index.ts + 2 modules +var shared_base_src = __webpack_require__(44451); +// EXTERNAL MODULE: ../theme/src/entry.ts +var entry = __webpack_require__(31939); +// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.8.0_4xriuibr7qayay6mzcpq5f43me/node_modules/@mui/material/useMediaQuery/useMediaQuery.js +var useMediaQuery = __webpack_require__(52775); +// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.8.0_4xriuibr7qayay6mzcpq5f43me/node_modules/@mui/material/DialogContent/DialogContent.js + 1 modules +var DialogContent = __webpack_require__(46715); +// EXTERNAL MODULE: ../shared/src/contexts/base/index.ts + 1 modules +var base = __webpack_require__(22017); +// EXTERNAL MODULE: ../shared/src/contexts/components/index.ts + 2 modules +var components = __webpack_require__(18572); +;// CONCATENATED MODULE: ../shared/src/contexts/evm/TokenPicker/useRowSize.ts -/** - * Fetch balance of multiple tokens from chain - * @param listOfAddress - * @param targetChainId - */ function useTokensBalance(listOfAddress, targetChainId) { - const currentChainId = (0,useChainId/* useChainId */.xx)(); - const chainId = targetChainId ?? currentChainId; - const account = (0,useAccount/* useAccount */.m)(); - const balanceCheckerContract = useBalanceCheckerContract(chainId); - return (0,useAsyncRetry/* default */.Z)(async ()=>{ - if (!account || !balanceCheckerContract || !listOfAddress.length) return src/* EMPTY_LIST */.rP; - return balanceCheckerContract.methods.balances([ - account - ], listOfAddress).call({ - // cannot check the sender's balance in the same contract - from: undefined, - chainId: (0,lib.numberToHex)(chainId) - }); - }, [ - chainId, - account, - listOfAddress.join(), - balanceCheckerContract - ]); +function useRowSize() { + const [rowSize, setRowSize] = (0,react.useState)(54); + (0,react.useEffect)(()=>{ + try { + const fontSize = Number.parseFloat(getComputedStyle(document.documentElement).fontSize); + setRowSize(fontSize * 4); + } catch { + setRowSize(60); + } + }, []); + return rowSize; } -// EXTERNAL MODULE: ../web3-shared/evm/hooks/useChainDetailed.ts -var useChainDetailed = __webpack_require__(28789); -// EXTERNAL MODULE: ../web3-shared/evm/utils/chainDetailed.ts -var utils_chainDetailed = __webpack_require__(80526); -// EXTERNAL MODULE: ../web3-shared/evm/hooks/useBalance.ts -var useBalance = __webpack_require__(6974); -;// CONCATENATED MODULE: ../web3-shared/evm/hooks/useAssetsFromChain.ts +;// CONCATENATED MODULE: ../shared/src/contexts/evm/TokenPicker/SelectTokenDialog.tsx @@ -37063,1833 +37519,9379 @@ var useBalance = __webpack_require__(6974); -function useAssetsFromChain(tokens, chainId) { - const { value: balance1 = '0' } = (0,useBalance/* useBalance */.K)(chainId); - const chainDetailed = (0,useChainDetailed/* useChainDetailed */.K)(); - const passedChainDetailed = (0,utils_chainDetailed/* getChainDetailed */.$G)(chainId); - const chain = (passedChainDetailed?.shortName.toLowerCase() ?? chainDetailed?.shortName.toLowerCase()) ?? 'unknown'; - const nativeToken = (0,head/* default */.Z)(tokens.filter((x)=>x.type === types/* EthereumTokenType.Native */.Dr.Native - )); - const erc20Tokens = (0,react.useMemo)(()=>tokens.filter((x)=>x.type === types/* EthereumTokenType.ERC20 */.Dr.ERC20 - ) - , [ - tokens - ]); - const erc20TokenAddresses = (0,react.useMemo)(()=>erc20Tokens.map((x)=>x.address - ) - , [ - erc20Tokens - ]); - const { value: listOfBalance = src/* EMPTY_LIST */.rP , loading , error , retry } = useTokensBalance(erc20TokenAddresses, chainId); - const assets = (0,react.useMemo)(()=>{ - return [ - ...nativeToken ? [ - { - chain, - token: nativeToken, - balance: balance1 - }, - ] : [], - // the length not matched in case of error occurs - ...listOfBalance.length === erc20Tokens.length ? listOfBalance.map((balance, idx)=>({ - chain, - token: erc20Tokens[idx], - balance - }) - ) : [], - ]; - }, [ - nativeToken, - chain, - balance1, - listOfBalance, - erc20Tokens - ]); - return { - value: assets, - loading, - error, - retry - }; -} +const useStyles = (0,entry/* makeStyles */.ZL)()((theme, { compact , disablePaddingTop })=>({ + content: { + ...compact ? { + minWidth: 552 + } : {}, + padding: theme.spacing(3), + paddingTop: disablePaddingTop ? 0 : theme.spacing(2.8) + }, + list: { + scrollbarWidth: 'none', + '&::-webkit-scrollbar': { + display: 'none' + } + }, + placeholder: { + textAlign: 'center', + height: 288, + paddingTop: theme.spacing(14), + boxSizing: 'border-box' + }, + search: { + backgroundColor: 'transparent !important', + border: `solid 1px ${entry/* MaskColorVar.twitterBorderLine */.ZN.twitterBorderLine}` + } + }) +); +const isDashboard = (0,shared_base_src/* isDashboardPage */.K2)(); +const SelectTokenDialog = ({ open , chainId , disableSearchBar , disableNativeToken , tokens , whitelist , blacklist =shared_base_src/* EMPTY_LIST */.rP , selectedTokens =shared_base_src/* EMPTY_LIST */.rP , onSubmit , onClose , title , })=>{ + const t = (0,src/* useSharedI18N */.B_)(); + const { networkIdentifier } = (0,base/* useBaseUIRuntime */.uD)(); + const compact = networkIdentifier === shared_base_src/* EnhanceableSite.Minds */.Jk.Minds; + const pluginId = (0,entry_web3/* useCurrentWeb3NetworkPluginID */.$f)(); + const { classes } = useStyles({ + compact, + disablePaddingTop: isDashboard + }); + const isMdScreen = (0,useMediaQuery/* default */.Z)((theme)=>theme.breakpoints.down('md') + ); + const rowSize = useRowSize(); + const nativeTokenAddress = (0,entry_web3/* useNativeTokenAddress */.Z_)(pluginId); + return /*#__PURE__*/ (0,jsx_runtime.jsx)(components/* InjectedDialog */.F, { + titleBarIconStyle: isDashboard ? 'close' : 'back', + open: open, + onClose: onClose, + title: title ?? t.select_token(), + children: /*#__PURE__*/ (0,jsx_runtime.jsx)(DialogContent/* default */.Z, { + classes: { + root: classes.content + }, + children: /*#__PURE__*/ (0,jsx_runtime.jsx)(src/* FungibleTokenList */.C2, { + classes: { + list: classes.list, + placeholder: classes.placeholder + }, + onSelect: onSubmit, + tokens: tokens ?? [], + whitelist: whitelist, + blacklist: disableNativeToken && nativeTokenAddress ? [ + nativeTokenAddress, + ...blacklist + ] : blacklist, + chainId: chainId, + disableSearch: disableSearchBar, + selectedTokens: selectedTokens, + FixedSizeListProps: { + itemSize: rowSize, + height: isMdScreen ? 300 : 503 + }, + SearchTextFieldProps: { + InputProps: { + classes: { + root: classes.search + } + } + } + }) + }) + }); +}; -/***/ }), +;// CONCATENATED MODULE: ../shared/src/contexts/evm/TokenPicker/index.tsx -/***/ 38392: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -"use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "u": () => (/* binding */ useAssetsFromProvider) -/* harmony export */ }); -/* harmony import */ var _context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(24790); -/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(64452); -/* harmony import */ var _useChainDetailed__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(28789); -/* harmony import */ var _useNetworkType__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(96151); -/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(80526); -/* harmony import */ var _useAccount__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(10372); +const { TaskManagerContext , TaskManagerProvider: TokenPickerProvider } = (0,UITaskManager/* createUITaskManager */.R)(SelectTokenDialog); +const usePickToken = ()=>{ + return (0,react.useContext)(TaskManagerContext).show; +}; +;// CONCATENATED MODULE: ../shared/src/contexts/evm/index.tsx -function useAssetsFromProvider(chainId) { - const { getAssetsList: getAssetList } = (0,_context__WEBPACK_IMPORTED_MODULE_0__/* .useWeb3Context */ .Z_)(); - const { portfolioProvider } = (0,_context__WEBPACK_IMPORTED_MODULE_0__/* .useWeb3State */ .dM)(); - const account = (0,_useAccount__WEBPACK_IMPORTED_MODULE_1__/* .useAccount */ .m)(); - const network = (0,_useNetworkType__WEBPACK_IMPORTED_MODULE_2__/* .useNetworkType */ .b)(); - const chainDetailed = (0,_useChainDetailed__WEBPACK_IMPORTED_MODULE_3__/* .useChainDetailed */ .K)(); - return (0,react_use__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z)(async ()=>{ - if (!account) return []; - if (chainDetailed?.network !== 'mainnet') return []; - if (!chainId && (0,_utils__WEBPACK_IMPORTED_MODULE_5__/* .getNetworkTypeFromChainId */ ._T)(chainDetailed.chainId) !== network) return []; - const networkType = chainId === undefined ? network : chainId === 'all' ? undefined : (0,_utils__WEBPACK_IMPORTED_MODULE_5__/* .getNetworkTypeFromChainId */ ._T)(chainId); - return getAssetList(account.toLowerCase(), portfolioProvider, networkType); - }, [ - account, - portfolioProvider, - network, - chainDetailed, - chainId - ]); -} +const EvmSharedUIProvider = ({ children })=>{ + return /*#__PURE__*/ (0,jsx_runtime.jsx)(TokenPickerProvider, { + children: children + }); +}; /***/ }), -/***/ 6974: +/***/ 39800: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "K": () => (/* binding */ useBalance) +/* harmony export */ "v": () => (/* binding */ useImageChecker) /* harmony export */ }); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(31174); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(10372); -/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(46140); -/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(64452); - - +/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(70981); -function useBalance(expectedChainId, expectedAccount) { - const defaultChainId = (0,___WEBPACK_IMPORTED_MODULE_0__/* .useChainId */ .xx)(); - const defaultAccount = (0,___WEBPACK_IMPORTED_MODULE_1__/* .useAccount */ .m)(); - const chainId = expectedChainId ?? defaultChainId; - const account = expectedAccount ?? defaultAccount; - const web3 = (0,___WEBPACK_IMPORTED_MODULE_2__/* .useWeb3 */ .$)({ - chainId - }); - return (0,react_use__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z)(async ()=>web3.eth.getBalance(account) - , [ - web3, - account +// filter out nft with image resource +function useImageChecker(url) { + return (0,react_use__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)(async ()=>{ + if (!url) return false; + if (url.startsWith('data:image')) return true; + const { pathname } = new URL(url); + if (/\.(gif|svg|png|webp|jpg|jpeg)$/.test(pathname)) return true; + if (/\.(mp4|webm|mov|ogg|mp3|wav)$/.test(pathname)) return false; + const contentType = await getContentType(url); + return contentType.startsWith('image/'); + }, [ + url ]); } - - -/***/ }), - -/***/ 28789: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "K": () => (/* binding */ useChainDetailed) -/* harmony export */ }); -/* harmony import */ var _context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(24790); - -function useChainDetailed() { - return (0,_context__WEBPACK_IMPORTED_MODULE_0__/* .useWeb3StateContext */ .N9)().chainDetailed; +async function getContentType(url) { + if (!/^https?:/.test(url)) { + return ''; + } + return Promise.race([ + new Promise((resolve)=>setTimeout(()=>resolve('') + , 20000) + ), + new Promise((resolve)=>{ + fetch(url, { + method: 'HEAD', + mode: 'cors' + }).then((response)=>response.status !== 200 ? resolve('') : resolve(response.headers.get('content-type')) + ).catch(()=>resolve('') + ); + }), + ]); } /***/ }), -/***/ 31174: +/***/ 78153: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "as": () => (/* binding */ useChainIdValid), -/* harmony export */ "xx": () => (/* binding */ useChainId) -/* harmony export */ }); -/* unused harmony export useChainIdMatched */ -/* harmony import */ var _context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(24790); +/* unused harmony export useImageFailOver */ +/* harmony import */ var _dimensiondev_kit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(46123); +const cache = new Map(); /** - * Get the chain id which is using by the given (or default) wallet - * It will always yield Mainnet in production mode - */ function useChainId() { - return (0,_context__WEBPACK_IMPORTED_MODULE_0__/* .useWeb3StateContext */ .N9)().chainId; -} -/** - * Returns true if chain id is available - */ function useChainIdValid() { - return (0,_context__WEBPACK_IMPORTED_MODULE_0__/* .useWeb3StateContext */ .N9)().chainIdValid; -} -/** - * Returns true if the current chain id is matched with the given one - * @param chainId - * @returns - */ function useChainIdMatched(chainId) { - const chainDetailed = useChainDetailed(); - if (!chainId) return false; - return chainDetailed?.chainId === chainId; + * Request images from different sources and get the image's url of the loaded + * @param urls the url of different image sources + * @param suffix the image file path suffix + */ function useImageFailOver(urls, suffix) { + return useAsync(async ()=>{ + const cacheKey = `${urls.join()}_${suffix}`; + if (cache.has(cacheKey)) return cache.get(cacheKey); + try { + const imgs = urls.map((v)=>v + suffix + ); + const img = await findAvailableImageURL(imgs); + const url = urls[imgs.indexOf(img)]; + cache.set(cacheKey, url); + return url; + } catch { + return ''; + } + }, [ + urls.join(), + suffix + ]); } /***/ }), -/***/ 3858: +/***/ 66442: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "GP": () => (/* binding */ useContracts), -/* harmony export */ "OP": () => (/* binding */ createContract), -/* harmony export */ "cq": () => (/* binding */ useContract) +/* harmony export */ "z": () => (/* binding */ useOpenShareTxDialog) /* harmony export */ }); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(86248); -/* harmony import */ var wallet_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(99674); -/* harmony import */ var wallet_ts__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(wallet_ts__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _useWeb3__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(46140); +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35667); +/* harmony import */ var _masknet_plugin_infra_web3__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(50719); +/* harmony import */ var _masknet_theme__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(31939); +/* harmony import */ var _masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(67938); +/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(94861); +/* harmony import */ var _mui_icons_material_Done__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(31363); +/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(21784); +/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(28257); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(58757); +/* harmony import */ var _contexts_common__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(64781); +/* harmony import */ var _locales__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(18261); -function createContract(web3, address, ABI) { - if (!address || !wallet_ts__WEBPACK_IMPORTED_MODULE_1__.EthereumAddress.isValid(address)) return null; - const contract = new web3.eth.Contract(ABI, address); - contract.transactionConfirmationBlocks = 0; - contract.transactionPollingTimeout = 5000; - return contract; -} -/** - * Create a contract which will forward its all transactions to the - * EthereumService in the background page and decode the result of calls automatically - * @param address - * @param ABI - * @param chainId - */ function useContract(address = '', ABI = [], chainId) { - const web3 = (0,_useWeb3__WEBPACK_IMPORTED_MODULE_2__/* .useWeb3 */ .$)(chainId ? { - chainId - } : {}); - return (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(()=>createContract(web3, address, ABI) - , [ - web3, - address, - ABI - ]); -} -/** - * Create many contracts with same ABI - * @param listOfAddress - * @param ABI - * @param chainId - */ function useContracts(listOfAddress, ABI = [], chainId) { - const web3 = (0,_useWeb3__WEBPACK_IMPORTED_MODULE_2__/* .useWeb3 */ .$)(chainId ? { - chainId - } : {}); - const contracts = (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(()=>listOfAddress.map((address)=>createContract(web3, address, ABI) - ) - , [ - web3, - JSON.stringify(listOfAddress), - ABI - ]); - return contracts.filter(Boolean); -} -/***/ }), -/***/ 21002: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -"use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "i": () => (/* binding */ useERC165) -/* harmony export */ }); -/* unused harmony export ERC165_INTERFACE_ID */ -/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(64452); -/* harmony import */ var _useAccount__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(10372); -const ERC165_INTERFACE_ID = '0x01ffc9a7'; -function useERC165(contract, address, interfaceId) { - const account = (0,_useAccount__WEBPACK_IMPORTED_MODULE_0__/* .useAccount */ .m)(); - return (0,react_use__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)(async ()=>{ - if (!contract) return false; - try { - const isERC165 = await contract.methods.supportsInterface(ERC165_INTERFACE_ID).call({ - from: account - }); - const isVerify = await contract.methods.supportsInterface(interfaceId).call({ - from: account - }); - return isERC165 && isVerify; - } catch { - return false; + +const useStyles = (0,_masknet_theme__WEBPACK_IMPORTED_MODULE_2__/* .makeStyles */ .ZL)()((theme)=>({ + content: { + textAlign: 'center', + display: 'flex', + flexDirection: 'column', + alignItems: 'center', + justifyContent: 'center' + }, + icon: { + fontSize: 64, + width: 64, + height: 64 + }, + link: { + marginTop: theme.spacing(0.5) + }, + primary: { + fontSize: 18, + marginTop: theme.spacing(1) + }, + secondary: { + fontSize: 14 } + }) +); +const ShareTransaction = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_4__.memo)(({ message , content , hash })=>{ + const { classes } = useStyles(); + const t = (0,_locales__WEBPACK_IMPORTED_MODULE_6__/* .useSharedI18N */ .B)(); + const chainId = (0,_masknet_plugin_infra_web3__WEBPACK_IMPORTED_MODULE_1__/* .useChainId */ .xx)(_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_3__/* .NetworkPluginID.PLUGIN_EVM */ .FF.PLUGIN_EVM); + const link = _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_7__/* .explorerResolver.transactionLink */ .Nb.transactionLink(chainId, hash); + return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", { + className: classes.content, + children: [ + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_icons_material_Done__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, { + className: classes.icon + }), + message ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .Z, { + className: classes.primary, + color: "textPrimary", + variant: "subtitle1", + children: message + }) : null, + content ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .Z, { + className: classes.secondary, + color: "textSecondary", + children: content + }) : null, + link ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .Z, { + children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .Z, { + className: classes.link, + href: link, + target: "_blank", + rel: "noopener noreferrer", + children: t.share_dialog_view_on_explorer() + }) + }) : null + ] + }); +}); +function useOpenShareTxDialog() { + const showConfirm = (0,_contexts_common__WEBPACK_IMPORTED_MODULE_5__/* .useShowConfirm */ .Lm)(); + const t = (0,_locales__WEBPACK_IMPORTED_MODULE_6__/* .useSharedI18N */ .B)(); + return (0,react__WEBPACK_IMPORTED_MODULE_4__.useCallback)(({ title , message , content , hash , buttonLabel , onShare })=>{ + return showConfirm({ + title: title ?? t.share_dialog_transaction(), + content: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(ShareTransaction, { + message: message ?? t.share_dialog_transaction_confirmed(), + content: content, + hash: hash + }), + confirmLabel: onShare ? buttonLabel ?? t.dialog_share() : t.dialog_dismiss(), + onSubmit () { + onShare?.(); + } + }); }, [ - account, - address, - interfaceId + t, + showConfirm ]); } /***/ }), -/***/ 29782: +/***/ 18261: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; // EXPORTS __webpack_require__.d(__webpack_exports__, { - "k": () => (/* binding */ useERC20TokenDetailed), - "b": () => (/* binding */ useFungibleTokensDetailed) + "B": () => (/* reexport */ useSharedI18N) }); -// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.0.0/node_modules/react/index.js -var react = __webpack_require__(86248); -// EXTERNAL MODULE: ../../node_modules/.pnpm/react-use@17.3.2_react-dom@18.0.0+react@18.0.0/node_modules/react-use/esm/useAsyncRetry.js -var useAsyncRetry = __webpack_require__(64452); -// EXTERNAL MODULE: ../../node_modules/.pnpm/wallet.ts@1.0.1/node_modules/wallet.ts/dist/index.js -var dist = __webpack_require__(99674); -// EXTERNAL MODULE: ../web3-shared/evm/types/index.ts -var types = __webpack_require__(65506); -// EXTERNAL MODULE: ../web3-shared/evm/hooks/useChainId.ts -var useChainId = __webpack_require__(31174); -// EXTERNAL MODULE: ../web3-shared/evm/contracts/useERC20TokenContract.ts -var useERC20TokenContract = __webpack_require__(91690); -;// CONCATENATED MODULE: ../web3-contracts/abis/ERC20Bytes32.json -const ERC20Bytes32_namespaceObject = JSON.parse('[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"}]'); -// EXTERNAL MODULE: ../web3-shared/evm/hooks/useContract.ts -var useContract = __webpack_require__(3858); -;// CONCATENATED MODULE: ../web3-shared/evm/contracts/useERC20TokenBytes32Contract.ts +// UNUSED EXPORTS: SharedTrans +// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.1.0/node_modules/react/index.js +var react = __webpack_require__(58757); +// EXTERNAL MODULE: ../../node_modules/.pnpm/react-i18next@11.16.9_nlaekqjbpikw4agfyzvj2iejnm/node_modules/react-i18next/dist/es/Trans.js +var Trans = __webpack_require__(62266); +// EXTERNAL MODULE: ../../node_modules/.pnpm/react-i18next@11.16.9_nlaekqjbpikw4agfyzvj2iejnm/node_modules/react-i18next/dist/es/useTranslation.js +var useTranslation = __webpack_require__(43133); +;// CONCATENATED MODULE: ../shared/src/locales/i18n_generated.js +/* eslint-disable */ -function useERC20TokenBytes32Contract(address, chainId) { - return (0,useContract/* useContract */.cq)(address, ERC20Bytes32_namespaceObject, chainId); -} -function useERC20TokenBytes32Contracts(listOfAddress, chainId) { - return (0,useContract/* useContracts */.GP)(listOfAddress, ERC20Bytes32_namespaceObject, chainId); -} -// EXTERNAL MODULE: ../web3-shared/evm/utils/token.ts -var utils_token = __webpack_require__(33690); -// EXTERNAL MODULE: ../web3-shared/evm/contracts/useERC721TokenContract.ts -var useERC721TokenContract = __webpack_require__(85010); -;// CONCATENATED MODULE: ../web3-contracts/abis/ERC1155.json -const ERC1155_namespaceObject = JSON.parse('[{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}]'); -;// CONCATENATED MODULE: ../web3-shared/evm/contracts/useERC1155TokenContract.ts +const bind = (i18nKey) => (props) => (0,react.createElement)(Trans/* Trans */.c, { i18nKey, ns: "shared", ...props }) +function useSharedI18N() { + const { t } = (0,useTranslation/* useTranslation */.$)("shared") + return (0,react.useMemo)( + function proxyBasedHooks() { + return new Proxy({ __proto__: null }, { + get(target, key) { + if (target[key]) + return target[key]; + return (target[key] = t.bind(null, key)); + }, + }); +}, + [t], + ) +} +const SharedTrans = function proxyBasedTrans() { + return new Proxy({ __proto__: null }, { + get(target, key) { + if (target[key]) + return target[key]; + return (target[key] = bind(key)); + }, + }); +}() +;// CONCATENATED MODULE: ../shared/src/locales/index.ts +// This file is auto generated. DO NOT EDIT +// Run `npx gulp sync-languages` to regenerate. +// Default fallback language in a family of languages are chosen by the alphabet order +// To overwrite this, please overwrite packages/scripts/src/locale-kit-next/index.ts -function useERC1155TokenContract(address) { - return (0,useContract/* useContract */.cq)(address, ERC1155_namespaceObject); -} -// EXTERNAL MODULE: ../web3-shared/evm/hooks/useWeb3.ts + 1 modules -var useWeb3 = __webpack_require__(46140); -// EXTERNAL MODULE: ../web3-shared/evm/hooks/useERC165.ts -var useERC165 = __webpack_require__(21002); -;// CONCATENATED MODULE: ../web3-shared/evm/hooks/useEthereumTokenType.ts +/***/ }), +/***/ 96274: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { +"use strict"; +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "Kv": () => (/* reexport */ FormattedAddress), + "BV": () => (/* reexport */ FormattedBalance), + "bO": () => (/* reexport */ FormattedCurrency) +}); +// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.1.0/node_modules/react/jsx-runtime.js +var jsx_runtime = __webpack_require__(35667); +// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.1.0/node_modules/react/index.js +var react = __webpack_require__(58757); +// EXTERNAL MODULE: ../web3-shared/base/src/index.ts + 1 modules +var src = __webpack_require__(67938); +// EXTERNAL MODULE: ../theme/src/entry.ts +var entry = __webpack_require__(31939); +;// CONCATENATED MODULE: ../shared/src/wallet/FormattedBalance.tsx -const ERC721_ENUMERABLE_INTERFACE_ID = '0x780e9d63'; -const ERC1155_ENUMERABLE_INTERFACE_ID = '0xd9b67a26'; -function useCheckContract(address) { - const web3 = (0,useWeb3/* useWeb3 */.$)(); - return (0,useAsyncRetry/* default */.Z)(async ()=>{ - const result = await web3.eth.getCode(address); - return result !== '0x'; - }, [ - address, - web3 - ]); -} -function useCheckERC721(address) { - const erc721Contract = (0,useERC721TokenContract/* useERC721TokenContract */.n)(address); - return (0,useERC165/* useERC165 */.i)(erc721Contract, address, ERC721_ENUMERABLE_INTERFACE_ID); -} -function useCheckERC1155(address) { - const erc1155Contract = useERC1155TokenContract(address); - return (0,useERC165/* useERC165 */.i)(erc1155Contract, address, ERC1155_ENUMERABLE_INTERFACE_ID); -} -function useEthereumTokenType(address = '') { - const { value: isContract , loading: loadingContract } = useCheckContract(address); - const { value: isERC721 , loading: loadingERC721 } = useCheckERC721(address); - const { value: isERC1155 , loading: loadingERC1155 } = useCheckERC1155(address); - if (loadingERC1155 || loadingERC721 || loadingContract) return; - return isERC1155 ? types/* EthereumTokenType.ERC1155 */.Dr.ERC1155 : isERC721 ? types/* EthereumTokenType.ERC721 */.Dr.ERC721 : isContract ? types/* EthereumTokenType.ERC20 */.Dr.ERC20 : undefined; -} -;// CONCATENATED MODULE: ../web3-shared/evm/hooks/useERC20TokenDetailed.ts +const useStyles = (0,entry/* makeStyles */.ZL)()((theme)=>({ + balance: { + marginRight: theme.spacing(0.5) + } + }) +); +const FormattedBalance = (props)=>{ + const { value: value1 , decimals , significant , symbol , minimumBalance , formatter =(value)=>value + } = props; + let formatted = formatter(value1 ?? '0', decimals, significant); + if (minimumBalance && value1 && !(0,src/* isZero */.Fr)(formatted) && (0,src/* isLessThan */.FI)(value1, minimumBalance)) { + formatted = '<' + formatter(minimumBalance, decimals, significant); + } + const classes = (0,entry/* useStylesExtends */.Bc)(useStyles(), props); + if (symbol) return /*#__PURE__*/ (0,jsx_runtime.jsxs)(react.Fragment, { + children: [ + /*#__PURE__*/ (0,jsx_runtime.jsx)("span", { + className: classes.balance, + children: String(formatted) + }), + /*#__PURE__*/ (0,jsx_runtime.jsx)("span", { + className: classes?.symbol, + children: symbol + }) + ] + }); + return /*#__PURE__*/ (0,jsx_runtime.jsx)(react.Fragment, { + children: String(formatted) + }); +}; +// EXTERNAL MODULE: ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/identity.js +var identity = __webpack_require__(35272); +;// CONCATENATED MODULE: ../shared/src/wallet/FormattedAddress.tsx +const FormattedAddress = ({ address , size , formatter =identity/* default */.Z })=>{ + if (!address) return null; + return /*#__PURE__*/ (0,jsx_runtime.jsx)(react.Fragment, { + children: formatter(address, size) + }); +}; + +;// CONCATENATED MODULE: ../shared/src/wallet/FormattedCurrency.tsx + + +const FormattedCurrency = ({ value: value1 , sign: sign1 , symbol: symbol1 , formatter =(value, sign, symbol)=>`${sign} ${value} ${symbol?.toUpperCase()}`.trim() + , })=>{ + return /*#__PURE__*/ (0,jsx_runtime.jsx)(react.Fragment, { + children: formatter(value1, sign1, symbol1) + }); +}; + +;// CONCATENATED MODULE: ../shared/src/wallet/index.ts -function useERC20TokenDetailed(address, token, targetChainId) { - const currentChainId = (0,useChainId/* useChainId */.xx)(); - const chainId = targetChainId ?? currentChainId; - const erc20TokenContract = (0,useERC20TokenContract/* useERC20TokenContract */.x)(address, chainId); - const erc20TokenBytes32Contract = useERC20TokenBytes32Contract(address, chainId); - const tokenType = useEthereumTokenType(address); - return (0,useAsyncRetry/* default */.Z)(async ()=>{ - if (!address) return; - if (!dist.EthereumAddress.isValid(address)) return; - if (tokenType !== types/* EthereumTokenType.ERC20 */.Dr.ERC20) return; - return getERC20TokenDetailed(address, chainId, erc20TokenContract, erc20TokenBytes32Contract, token); - }, [ - chainId, - token, - erc20TokenContract, - erc20TokenBytes32Contract, - address, - tokenType - ]); -} -function useFungibleTokensDetailed(listOfToken, _chainId) { - const currentChainId = (0,useChainId/* useChainId */.xx)(); - const chainId = _chainId ? _chainId : currentChainId; - const listOfAddress = (0,react.useMemo)(()=>listOfToken.map((t)=>t.address - ) - , [ - JSON.stringify(listOfToken) - ]); - const erc20TokenContracts = (0,useERC20TokenContract/* useERC20TokenContracts */.S)(listOfAddress, chainId); - const erc20TokenBytes32Contracts = useERC20TokenBytes32Contracts(listOfAddress, chainId); - return (0,useAsyncRetry/* default */.Z)(async ()=>Promise.all(listOfToken.map(async (token, i)=>{ - if (token.type === types/* EthereumTokenType.Native */.Dr.Native) return (0,utils_token/* createNativeToken */.$c)(chainId); - const erc20TokenContract = erc20TokenContracts[i]; - const erc20TokenBytes32Contract = erc20TokenBytes32Contracts[i]; - return getERC20TokenDetailed(token.address, chainId, erc20TokenContract, erc20TokenBytes32Contract, token); - })) - , [ - chainId, - JSON.stringify(listOfToken), - JSON.stringify(erc20TokenContracts), - JSON.stringify(erc20TokenBytes32Contracts), - ]); -} -const lazyBlank = Promise.resolve(''); -const lazyZero = Promise.resolve('0'); -async function getERC20TokenDetailed(address, chainId, erc20TokenContract, erc20TokenBytes32Contract, token) { - const results = await Promise.allSettled([ - (token?.name ?? erc20TokenContract?.methods.name().call()) ?? lazyBlank, - token?.name ? lazyBlank : erc20TokenBytes32Contract?.methods.name().call() ?? lazyBlank, - (token?.symbol ?? erc20TokenContract?.methods.symbol().call()) ?? lazyBlank, - token?.symbol ? lazyBlank : erc20TokenBytes32Contract?.methods.symbol().call() ?? lazyBlank, - (token?.decimals ?? erc20TokenContract?.methods.decimals().call()) ?? lazyZero, - ]); - const [name, nameBytes32, symbol, symbolBytes32, decimals] = results.map((result)=>result.status === 'fulfilled' ? result.value : '' - ); - return (0,utils_token/* createERC20Token */.wY)(chainId, address, typeof decimals === 'string' ? Number.parseInt(decimals ? decimals : '0', 10) : decimals, (0,utils_token/* parseStringOrBytes32 */.UZ)(name, nameBytes32, 'Unknown Token'), (0,utils_token/* parseStringOrBytes32 */.UZ)(symbol, symbolBytes32, 'Unknown')); -} /***/ }), -/***/ 53465: +/***/ 46768: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "Cf": () => (/* binding */ getERC721TokenDetailed), -/* harmony export */ "L0": () => (/* binding */ getERC721TokenDetailedFromOpensea), -/* harmony export */ "qU": () => (/* binding */ getERC721TokenAssetFromChain), -/* harmony export */ "qY": () => (/* binding */ getERC721TokenDetailedFromChain), -/* harmony export */ "zi": () => (/* binding */ useERC721TokenDetailed) +/* harmony export */ "C": () => (/* binding */ LightColor), +/* harmony export */ "I": () => (/* binding */ DarkColor) /* harmony export */ }); -/* harmony import */ var lodash_unified__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(29730); -/* harmony import */ var lodash_unified__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(21122); -/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(64452); -/* harmony import */ var urlcat__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(19802); -/* harmony import */ var urlcat__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(urlcat__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(26223); -/* harmony import */ var _contracts_useERC721TokenContract__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(85010); -/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(33690); -/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(75000); -/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(66394); -/* harmony import */ var _useChainId__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(31174); +const LightColor = { + primary: '#1c68f3', + primaryContrastText: '#ffffff', + background: '#FFFFFF', + secondary: '#e8f0fe', + secondaryContrastText: '#1c68f3', + input: '#F6F6F8', + primaryBackground: '#ffffff', + primaryBackground2: '#FBFBFC', + secondaryBackground: '#f9fafa', + lightBackground: '#F9FAFA', + mainBackground: '#ffffff', + suspensionBackground: 'rgba(249, 250, 250, 0.8)', + normalBackground: '#F3F3F4', + twitterBackground: '#F7F9FA', + twitterBackgroundHover: '#EFF1F2', + twitterInputBackground: '#F6F8F8', + twitterButton: '#111418', + twitterButtonText: '#ffffff', + twitterBlue: '#1C68F3', + twitterBorderLine: '#EDF1F2', + twitterSecond: '#7B8192', + twitterMain: '#0F1419', + twitterBottom: '#ffffff', + twitterInfoBackground: '#AFC3E1', + twitterInfo: '#8CA3C7', + twitterBg: '#F6F8F8', + twitterTooltipBg: 'rgba(0,0,0,.6)', + twitterInput: '#EDF1F2', + twitterLine: '#EBEEF0', + redMain: '#ff5f5f', + redLight: '#ffafaf', + redContrastText: '#ffffff', + greenMain: '#77e0b5', + greenLight: '#e6f6f0', + orangeMain: '#ffb915', + orangeLight: '#faf0d8', + iconLight: '#a6a9b6', + divider: '#eff3f4', + border: '#F3F3F4', + borderSecondary: '#536471', + textPrimary: '#111432', + textSecondary: '#7b8192', + secondaryInfoText: '#AFC3E1', + normalText: '#7B8192', + infoBackground: 'rgba(175, 195, 225, 0.15)', + success: '#60DFAB', + warning: '#FFB915', + blue: '#1C68F3', + textLink: '#1C68F3', + lineLight: '#E4E8F1', + lineLighter: '#E9E9EA', + textLight: '#A6A9B6', + lightestBackground: '#FFFFFF', + linkText: '#1C68F3', + twitter: '#2CA4EF', + facebook: '#4267B2', + white: '#ffffff', + bottom: '#F9FAFA', + main: '#1C68F3', + errorBackground: 'rgba(255, 95, 95, 0.15)', + tooltipBackground: '#ffffff', + warningBackground: 'rgba(255, 185, 21, 0.1)', + cyberconnectPrimary: '#000000', + errorPlugin: '#FF3545', + buttonPluginBackground: '#07101B', + textPluginColor: '#07101B', + buttonPluginColor: '#FFFFFF' +}; +const DarkColor = { + primary: '#1c68f3', + primaryContrastText: '#ffffff', + background: '#15171A', + secondary: '#242e57', + secondaryContrastText: '#ffffff', + input: '#282B49', + primaryBackground: '#212442', + primaryBackground2: '#212442', + secondaryBackground: '#252846', + lightBackground: '#2E314F', + mainBackground: '#111432', + suspensionBackground: 'rgba(27, 30, 60, 0.8)', + normalBackground: '#262947', + twitterInputBackground: '#17191D', + twitterBackground: '#17191D', + twitterBackgroundHover: '#17191D', + twitterButton: '#EFF3F4', + twitterButtonText: '#0F1419', + twitterBlue: '#4989FF', + twitterBorderLine: '#2F3336', + twitterInput: '#1D2023', + twitterSecond: '#636B72', + twitterMain: '#D9D9D9', + twitterBottom: '#000000', + twitterInfoBackground: '#AFC3E1', + twitterInfo: '#8CA3C7', + twitterLine: '#2F3336', + twitterBg: '#15171A', + twitterTooltipBg: 'rgba(91,112,131,.6)', + redMain: '#ff5f5f', + redLight: '#46304a', + redContrastText: '#ffffff', + greenMain: '#77e0b5', + greenLight: '#314457', + orangeMain: '#ffb915', + orangeLight: '#463e3f', + iconLight: '#a6a9b6', + divider: '#3e455e', + border: '#3E455E', + borderSecondary: '#6e767d', + // TODO: ? + textPrimary: '#ffffff', + // TODO: ? + textSecondary: 'ghostwhite', + secondaryInfoText: '#AFC3E1', + normalText: 'rgba(255, 255, 255, 0.8)', + infoBackground: 'rgba(175, 195, 225, 0.15)', + success: '#60DFAB', + warning: '#FFB915', + blue: '#1C68F3', + textLink: '#ffffff', + lineLight: '#32365B', + lineLighter: '#32365B', + textLight: '#A6A9B6', + lightestBackground: '#212422', + linkText: '#ffffff', + twitter: '#2CA4EF', + facebook: '#4267B2', + white: '#ffffff', + bottom: '#000000', + main: '#D4D4D4', + errorBackground: 'rgba(255, 95, 95, 0.1)', + tooltipBackground: '#1A1D20', + warningBackground: 'rgba(255, 185, 21, 0.1)', + cyberconnectPrimary: '#ffffff', + errorPlugin: '#FF3545', + buttonPluginBackground: '#07101B', + textPluginColor: '#07101B', + buttonPluginColor: '#FFFFFF' +}; + + +/***/ }), + +/***/ 13217: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "D": () => (/* binding */ MaskDialog) +/* harmony export */ }); +/* unused harmony export useMaskDialog */ +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35667); +/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(71246); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(58757); +/* harmony import */ var _ShadowRoot__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(62998); +/* harmony import */ var _DialogTitle__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(49433); +/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(44451); +/* harmony import */ var _DialogStack__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(70950); -function useERC721TokenDetailed(contractDetailed, tokenId) { - const erc721TokenContract = (0,_contracts_useERC721TokenContract__WEBPACK_IMPORTED_MODULE_1__/* .useERC721TokenContract */ .n)(contractDetailed?.address ?? ''); - const chainId = (0,_useChainId__WEBPACK_IMPORTED_MODULE_2__/* .useChainId */ .xx)(); - const asyncRetry = (0,react_use__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z)(async ()=>{ - if (!erc721TokenContract || !contractDetailed || !tokenId || !contractDetailed.address) return; - return getERC721TokenDetailed(contractDetailed, erc721TokenContract, tokenId, chainId); - }, [ - tokenId, - JSON.stringify(contractDetailed), - erc721TokenContract - ]); - return { - asyncRetry, - tokenDetailed: asyncRetry.value + +/** + * This component is used to provide a most common dialog practice in Mask design. + * + * But all the primitives are tweaked to fit the design + * Therefore it also OK to not use this component if you need a special one. + */ const MaskDialog = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.memo)((props)=>{ + const { title , onBack , onClose , open , children , DialogProps , isOpenFromApplicationBoard , ...inferredDialogProps } = props; + const dialogProps = { + onBackdropClick: onClose, + onClose, + open, + ...inferredDialogProps, + ...DialogProps }; -} -async function getERC721TokenDetailedFromOpensea(contractDetailed, tokenId, apiUrl) { - const response = await fetch(urlcat__WEBPACK_IMPORTED_MODULE_0___default()(`${apiUrl}/:address/:tokenId`, { - address: contractDetailed.address, - tokenId - })); - if (response.ok) { - const data = await response.json(); - return (0,_utils__WEBPACK_IMPORTED_MODULE_4__/* .createERC721Token */ .Of)(contractDetailed, { - name: data.name, - description: data.description, - mediaUrl: data.image_url || data.animation_url, - owner: (0,lodash_unified__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z)(data.top_ownerships)?.owner.address ?? '', - hasTokenDetailed: true - }, tokenId); - } - return; -} -async function getERC721TokenDetailedFromChain(contractDetailed, erc721TokenContract, tokenId, owner, queryTokenURI = true) { - if (!contractDetailed) return; - try { - const tokenInfo = { - owner: owner ?? await (0,_utils__WEBPACK_IMPORTED_MODULE_6__/* .safeNonPayableTransactionCall */ .Y)(erc721TokenContract.methods.ownerOf(tokenId)), - tokenURI: queryTokenURI ? await (0,_utils__WEBPACK_IMPORTED_MODULE_6__/* .safeNonPayableTransactionCall */ .Y)(erc721TokenContract.methods.tokenURI(tokenId)) : '', - name: (0,_utils__WEBPACK_IMPORTED_MODULE_7__/* .formatNFT_TokenId */ .uu)(tokenId, 2), - hasTokenDetailed: false - }; - return (0,_utils__WEBPACK_IMPORTED_MODULE_4__/* .createERC721Token */ .Of)(contractDetailed, tokenInfo, tokenId); - } catch (err) { - return; - } -} -const assetCache = Object.create(null); -const lazyVoid = Promise.resolve(); -const BASE64_PREFIX = 'data:application/json;base64,'; -const HTTP_PREFIX = 'http'; -const CORS_PROXY = 'https://cors.r2d2.to'; -async function getERC721TokenAssetFromChain(tokenURI) { - if (!tokenURI) return; - if (assetCache[tokenURI]) return assetCache[tokenURI]; - let promise = lazyVoid; - try { - // for some NFT tokens return JSON in base64 encoded - if (tokenURI.startsWith(BASE64_PREFIX)) { - promise = Promise.resolve(JSON.parse(atob(tokenURI.replace(BASE64_PREFIX, '')))); - } else { - // for some NFT tokens return JSON - promise = Promise.resolve(JSON.parse(tokenURI)); - } - } catch (error) { - void 0; - } - if (promise === lazyVoid) { - try { - // for some NFT tokens return an URL refers to a JSON file - promise = fetch(tokenURI.startsWith(HTTP_PREFIX) ? `${CORS_PROXY}/?${tokenURI}` : tokenURI).then(async (r)=>{ - const json = await r.json(); - return { - ...json, - mediaUrl: json.image || json.animation_url - }; - }, lodash_unified__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z); - assetCache[tokenURI] = await promise; - return assetCache[tokenURI]; - } catch (err) { - return; + const { extraProps , shouldReplaceExitWithBack , IncreaseStack } = (0,_DialogStack__WEBPACK_IMPORTED_MODULE_5__/* .useDialogStackActor */ .t)(open); + const closeBothCompositionDialog = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(()=>{ + if (isOpenFromApplicationBoard) { + _masknet_shared_base__WEBPACK_IMPORTED_MODULE_4__/* .CrossIsolationMessages.events.requestComposition.sendToLocal */ .WF.events.requestComposition.sendToLocal({ + open: false, + reason: 'timeline' + }); } - } - return; -} -async function getERC721TokenDetailed(contract, tokenContract, tokenId, chainId) { - const { GET_SINGLE_ASSET_URL } = (0,_constants__WEBPACK_IMPORTED_MODULE_9__/* .getOpenseaAPIConstants */ .jk)(chainId); - const tokenDetailed = GET_SINGLE_ASSET_URL ? await getERC721TokenDetailedFromOpensea(contract, tokenId, GET_SINGLE_ASSET_URL) : await getERC721TokenDetailedFromChain(contract, tokenContract, tokenId); - const info = await getERC721TokenAssetFromChain(tokenDetailed?.info.tokenURI); - if (info && tokenDetailed) { - tokenDetailed.info = { - ...info, - ...tokenDetailed.info, - hasTokenDetailed: true, - name: info.name ?? tokenDetailed.info.name - }; - } - return tokenDetailed; + onClose?.(); + }, [ + isOpenFromApplicationBoard + ]); + return (0,_ShadowRoot__WEBPACK_IMPORTED_MODULE_2__/* .usePortalShadowRoot */ .ad)((container)=>/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(IncreaseStack, { + children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_mui_material__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, { + container: container, + ...dialogProps, + ...extraProps, + children: [ + shouldReplaceExitWithBack ? // replace onClose with onBack when and only when there is no onBack + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_DialogTitle__WEBPACK_IMPORTED_MODULE_3__/* .MaskDialogTitle */ .K, { + onBack: onBack || closeBothCompositionDialog, + onClose: onBack ? closeBothCompositionDialog : undefined, + children: title + }) : /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_DialogTitle__WEBPACK_IMPORTED_MODULE_3__/* .MaskDialogTitle */ .K, { + onBack: onBack, + onClose: closeBothCompositionDialog, + children: title + }), + children + ] + }) + }) + ); +}); +function useMaskDialog(title, content, actions) { + const [isOpen, setOpen] = useState(false); + const onClose = useCallback(()=>setOpen(false) + , []); + return /*#__PURE__*/ _jsxs(MaskDialog, { + onClose: onClose, + open: isOpen, + title: title, + children: [ + /*#__PURE__*/ _jsx(DialogContent, { + children: content + }), + /*#__PURE__*/ _jsx(DialogActions, { + children: actions + }) + ] + }); } /***/ }), -/***/ 37485: +/***/ 49433: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "v": () => (/* binding */ useImageChecker) +/* harmony export */ "K": () => (/* binding */ MaskDialogTitle) /* harmony export */ }); -/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(73570); +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35667); +/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(35878); +/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(13305); +/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(48941); +/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(21784); +/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(96436); +/* harmony import */ var _mui_icons_material__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(37472); +/* harmony import */ var _mui_icons_material__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(27692); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(58757); -// filter out nft with image resource -function useImageChecker(url) { - return (0,react_use__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)(async ()=>{ - if (!url) return false; - const { pathname } = new URL(url); - if (/\.(gif|svg|png|webp|jpg|jpeg)$/.test(pathname)) return true; - if (/\.(mp4|webm|mov|ogg|mp3|wav)$/.test(pathname)) return false; - const contentType = await getContentType(url); - return contentType.startsWith('image/'); - }, [ - url - ]); -} -async function getContentType(url) { - if (!/^https?:/.test(url)) { - return ''; - } - return Promise.race([ - new Promise((resolve)=>setTimeout(()=>resolve('') - , 20000) - ), - new Promise((resolve)=>{ - fetch(url, { - method: 'HEAD', - mode: 'cors' - }).then((response)=>response.status !== 200 ? resolve('') : resolve(response.headers.get('content-type')) - ).catch(()=>resolve('') - ); - }), - ]); -} + + + +const Title = (0,_mui_material__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .ZP)(_mui_material__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z)(({ theme })=>({ + display: 'flex', + alignItems: 'center', + padding: `${theme.spacing(1)} ${theme.spacing(3)}` + }) +); +const MaskDialogTitle = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.memo)((props)=>{ + const { children , onBack , onClose } = props; + const backButton = onBack ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z, { + size: "large", + onClick: onBack, + edge: "start", + color: "inherit", + sx: { + marginRight: '8px' + }, + children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_icons_material__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z, {}) + }) : null; + const closeButton = onClose ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z, { + size: "large", + onClick: onClose, + edge: "end", + color: "inherit", + children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_icons_material__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, {}) + }) : null; + return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(Title, { + children: [ + backButton, + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z, { + component: "span", + variant: "h6", + children: children + }), + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, { + sx: { + flex: 1 + } + }), + closeButton + ] + }); +}); /***/ }), -/***/ 38443: +/***/ 92566: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "J": () => (/* binding */ useNativeTokenDetailed) +/* harmony export */ "J": () => (/* binding */ FolderTabs), +/* harmony export */ "p": () => (/* binding */ FolderTabPanel) /* harmony export */ }); -/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(64452); -/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(33690); -/* harmony import */ var _useChainId__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(31174); +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35667); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(58757); +/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(83849); +/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_2__); +/* harmony import */ var _UIHelper_makeStyles__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(75322); +/* harmony import */ var _CSSVariables__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(88762); -function useNativeTokenDetailed(chainId) { - const currentChainId = (0,_useChainId__WEBPACK_IMPORTED_MODULE_0__/* .useChainId */ .xx)(); - return (0,react_use__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)(async ()=>(0,_utils__WEBPACK_IMPORTED_MODULE_2__/* .createNativeToken */ .$c)(chainId ?? currentChainId) - , [ - currentChainId, - chainId - ]); -} + + +const useStyles = (0,_UIHelper_makeStyles__WEBPACK_IMPORTED_MODULE_3__/* .makeStyles */ .Z)()((theme, _, refs)=>{ + const { palette } = theme; + const isDark = palette.mode === 'dark'; + const inactiveColor = isDark ? theme.palette.grey['50'] : _CSSVariables__WEBPACK_IMPORTED_MODULE_4__/* .MaskColorVar.twitterBg */ .ZN.twitterBg; + const selected = {}; + return { + folderTabs: {}, + selected, + tabList: { + display: 'flex', + gap: 8 + }, + tab: { + display: 'flex', + justifyContent: 'center', + alignItems: 'center', + flexGrow: 1, + height: 40, + borderRadius: '8px 8px 0 0', + cursor: 'pointer', + backgroundColor: inactiveColor, + border: `1px solid ${inactiveColor}`, + borderBottomColor: 'transparent', + color: theme.palette.text.secondary, + position: 'relative', + boxSizing: 'border-box', + [`&.${refs.selected}`]: { + backgroundColor: theme.palette.background.paper, + borderColor: _CSSVariables__WEBPACK_IMPORTED_MODULE_4__/* .MaskColorVar.twitterBorderLine */ .ZN.twitterBorderLine, + color: theme.palette.primary.main + }, + // cover bottom border of the active tab + [`&.${refs.selected}::after`]: { + position: 'absolute', + content: '""', + height: 2, + borderLeft: `1px solid ${_CSSVariables__WEBPACK_IMPORTED_MODULE_4__/* .MaskColorVar.twitterBorderLine */ .ZN.twitterBorderLine}`, + borderRight: `1px solid ${_CSSVariables__WEBPACK_IMPORTED_MODULE_4__/* .MaskColorVar.twitterBorderLine */ .ZN.twitterBorderLine}`, + backgroundColor: theme.palette.background.paper, + bottom: '-2px', + left: -1, + right: -1 + } + }, + tabPanel: { + backgroundColor: theme.palette.background.paper + }, + tabContent: { + border: `1px solid ${_CSSVariables__WEBPACK_IMPORTED_MODULE_4__/* .MaskColorVar.twitterBorderLine */ .ZN.twitterBorderLine}`, + padding: 12, + borderRadius: '0 0 8px 8px' + } + }; +}); +const FolderTabPanel = ({ className , ...rest })=>{ + const { classes } = useStyles(); + return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", { + className: classnames__WEBPACK_IMPORTED_MODULE_2___default()(classes.tabPanel, className), + role: "tabpanel", + ...rest + }); +}; +const FolderTabs = ({ children: childNodes , defaultValue =0 , ...rest })=>{ + const { classes } = useStyles(); + const [value, setValue] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(defaultValue); + const tabs = react__WEBPACK_IMPORTED_MODULE_1__.Children.map(childNodes, (child, index)=>{ + const label = child.props.label; + const childValue = child.props.value ?? index; + const selected = value === childValue; + return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("button", { + tabIndex: index === 0 ? 0 : -1, + role: "tab", + className: classnames__WEBPACK_IMPORTED_MODULE_2___default()(classes.tab, selected ? classes.selected : null), + onClick: ()=>setValue(childValue) + , + children: label + }, label); + }); + const children = react__WEBPACK_IMPORTED_MODULE_1__.Children.map(childNodes, (child, index)=>{ + const childValue = child.props.value ?? index; + const selected = value === childValue; + return selected ? child : null; + }); + if (!tabs.length) return null; + return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", { + children: [ + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", { + className: classes.tabList, + role: "tablist", + children: tabs + }), + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", { + className: classes.tabContent, + children: children + }) + ] + }); +}; /***/ }), -/***/ 96151: +/***/ 2292: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "b": () => (/* binding */ useNetworkType) +/* harmony export */ "b": () => (/* binding */ MaskLoadingButton) /* harmony export */ }); -/* harmony import */ var _context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(24790); +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35667); +/* harmony import */ var _mui_lab_LoadingButton__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(80875); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(58757); +/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(69314); -function useNetworkType() { - return (0,_context__WEBPACK_IMPORTED_MODULE_0__/* .useWeb3StateContext */ .N9)().networkType; -} + + + +const MaskLoadingButton = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.memo)(/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.forwardRef)((props, ref)=>{ + const { onClick , children , soloLoading , variant , ...rest } = props; + // Solo loading doesn't apply when there is a left/right icon. + const isSoloLoading = soloLoading && !props.startIcon && !props.endIcon && !props.loadingPosition; + const [loading, setLoading] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false); + const handleClick = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(async (event)=>{ + setLoading(true); + try { + await onClick(event); + setLoading(false); + } catch (error) { + setLoading(false); + if (typeof error === 'string') { + throw new Error(error); + } + } + }, [ + onClick + ]); + return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_lab_LoadingButton__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z, { + loadingPosition: rest.startIcon ? 'start' : rest.endIcon ? 'end' : undefined, + loading: loading, + loadingIndicator: isSoloLoading ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, { + color: "primary", + size: 16 + }) : undefined, + ...rest, + onClick: handleClick, + variant: isSoloLoading && loading ? 'text' : variant, + component: "button", + ref: ref, + children: children + }); +})); /***/ }), -/***/ 65321: +/***/ 44150: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; // EXPORTS __webpack_require__.d(__webpack_exports__, { - "d": () => (/* binding */ useTrustedERC20Tokens) + "x": () => (/* reexport */ SearchableList) }); -// EXTERNAL MODULE: ../web3-shared/evm/hooks/useWallet.ts -var useWallet = __webpack_require__(67376); -// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.0.0/node_modules/react/index.js -var react = __webpack_require__(86248); -// EXTERNAL MODULE: ../web3-shared/evm/context/index.tsx -var context = __webpack_require__(24790); -// EXTERNAL MODULE: ../web3-shared/evm/hooks/useChainId.ts -var useChainId = __webpack_require__(31174); -;// CONCATENATED MODULE: ../web3-shared/evm/hooks/useERC20Tokens.ts - +// UNUSED EXPORTS: MaskSearchableItemInList +// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.1.0/node_modules/react/jsx-runtime.js +var jsx_runtime = __webpack_require__(35667); +// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.1.0/node_modules/react/index.js +var react = __webpack_require__(58757); +// EXTERNAL MODULE: ../../node_modules/.pnpm/react-window@1.8.7/node_modules/react-window/dist/index.esm.js +var index_esm = __webpack_require__(44738); +// EXTERNAL MODULE: ../../node_modules/.pnpm/fuse.js@6.6.2/node_modules/fuse.js/dist/fuse.esm.js +var fuse_esm = __webpack_require__(36005); +// EXTERNAL MODULE: ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/uniqBy.js +var uniqBy = __webpack_require__(18443); +// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.8.0_4xriuibr7qayay6mzcpq5f43me/node_modules/@mui/material/Box/Box.js +var Box = __webpack_require__(96436); +// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.8.0_4xriuibr7qayay6mzcpq5f43me/node_modules/@mui/material/InputAdornment/InputAdornment.js + 1 modules +var InputAdornment = __webpack_require__(29324); +// EXTERNAL MODULE: ../theme/src/UIHelper/makeStyles.ts +var makeStyles = __webpack_require__(75322); +;// CONCATENATED MODULE: ../theme/src/Components/SearchableList/MaskSearchableItemInList.tsx -function useERC20Tokens() { - const chainId = (0,useChainId/* useChainId */.xx)(); - const wallet = (0,useWallet/* useWallet */.O)(); - const erc20Tokens = (0,context/* useWeb3State */.dM)().erc20Tokens; - return (0,react.useMemo)(()=>{ - if (!wallet) return []; - return erc20Tokens.filter((x)=>x.chainId === chainId - ); - }, [ - chainId, - wallet, - erc20Tokens - ]); -} +const MaskSearchableItemInList = ({ children , data , index , style })=>/*#__PURE__*/ (0,jsx_runtime.jsx)("div", { + style: style, + children: /*#__PURE__*/ react.createElement(children, { + data: data.dataSet[index], + index, + onSelect: data.onSelect + }) + }) +; -// EXTERNAL MODULE: ../web3-shared/evm/utils/formatter.ts -var formatter = __webpack_require__(66394); -;// CONCATENATED MODULE: ../web3-shared/evm/hooks/useTrustedERC20Tokens.ts +// EXTERNAL MODULE: ../theme/src/Components/TextField/index.tsx +var TextField = __webpack_require__(32876); +// EXTERNAL MODULE: ../icons/general/Search.tsx +var Search = __webpack_require__(68488); +;// CONCATENATED MODULE: ../theme/src/Components/SearchableList/SearchableList.tsx -function useTrustedERC20Tokens() { - const wallet = (0,useWallet/* useWallet */.O)(); - const tokens = useERC20Tokens(); - if (!wallet) return []; - return tokens.filter((x)=>wallet.erc20_token_whitelist.has((0,formatter/* formatEthereumAddress */.j8)(x.address)) && !wallet.erc20_token_blacklist.has((0,formatter/* formatEthereumAddress */.j8)(x.address)) - ); -} -/***/ }), -/***/ 67376: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -"use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "O": () => (/* binding */ useWallet) -/* harmony export */ }); -/* harmony import */ var _context__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(24790); -/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(2239); -/* harmony import */ var _useAccount__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(10372); -function useWallet() { - const account = (0,_useAccount__WEBPACK_IMPORTED_MODULE_0__/* .useAccount */ .m)(); - const { wallets } = (0,_context__WEBPACK_IMPORTED_MODULE_1__/* .useWeb3StateContext */ .N9)(); - return account ? wallets.find((0,_utils__WEBPACK_IMPORTED_MODULE_2__/* .currySameAddress */ .DC)(account)) : undefined; +/** + * This component is used to provide a searchable list in Mask design. + * + * @example + * interface IListDate { name: string } + * const ListItem = ({ name }: IListDate) =>
{ name }
+ * const onSelect = () => {} + * + * return ( + * + * onSelect={onSelect} + * data={ListData} + * searchKey={['name']} + * itemRender={ListItem} + * /> + * ) + */ function SearchableList({ itemKey , data , placeholder , onSelect , onSearch , disableSearch , searchKey , itemRender , FixedSizeListProps ={} , SearchFieldProps }) { + const [keyword, setKeyword] = (0,react.useState)(''); + const { classes } = useStyles(); + const { height , itemSize , ...rest } = FixedSizeListProps; + const { InputProps , ...textFieldPropsRest } = SearchFieldProps ?? {}; + // #region fuse + const fuse = (0,react.useMemo)(()=>new fuse_esm/* default */.Z(data, { + shouldSort: true, + threshold: 0.45, + minMatchCharLength: 1, + keys: searchKey ?? Object.keys(data.length > 0 ? data[0] : []) + }) + , [ + data, + searchKey + ]); + // #endregion + // #region create searched data + const readyToRenderData = (0,react.useMemo)(()=>{ + if (!keyword) return data; + const filtered = fuse.search(keyword).map((x)=>x.item + ); + return itemKey ? (0,uniqBy/* default */.Z)(filtered, (x)=>x[itemKey] + ) : filtered; + }, [ + keyword, + fuse, + data + ]); + // #endregion + const handleSearch = (word)=>{ + setKeyword(word); + onSearch?.(word); + }; + return /*#__PURE__*/ (0,jsx_runtime.jsxs)("div", { + className: classes.container, + children: [ + !disableSearch && /*#__PURE__*/ (0,jsx_runtime.jsx)(Box/* default */.Z, { + pt: 0.5, + children: /*#__PURE__*/ (0,jsx_runtime.jsx)(TextField/* MaskTextField */.F, { + placeholder: "Search", + autoFocus: true, + fullWidth: true, + InputProps: { + startAdornment: /*#__PURE__*/ (0,jsx_runtime.jsx)(InputAdornment/* default */.Z, { + position: "start", + children: /*#__PURE__*/ (0,jsx_runtime.jsx)(Search/* SearchIcon */.W, {}) + }), + ...InputProps + }, + onChange: (e)=>handleSearch(e.currentTarget.value) + , + ...textFieldPropsRest + }) + }), + placeholder, + !placeholder && /*#__PURE__*/ (0,jsx_runtime.jsx)("div", { + className: classes.list, + children: /*#__PURE__*/ (0,jsx_runtime.jsx)(index_esm/* FixedSizeList */.t7, { + width: "100%", + height: height ?? 300, + overscanCount: 25, + itemSize: itemSize ?? 100, + itemData: { + dataSet: readyToRenderData, + onSelect + }, + itemCount: readyToRenderData.length, + ...rest, + children: (props)=>/*#__PURE__*/ (0,jsx_runtime.jsx)(MaskSearchableItemInList, { + ...props, + children: itemRender + }) + }) + }) + ] + }); } +const useStyles = (0,makeStyles/* makeStyles */.Z)()((theme)=>({ + container: {}, + list: { + marginTop: theme.spacing(1.5), + '& > div::-webkit-scrollbar': { + width: '7px' + }, + '& > div::-webkit-scrollbar-track': { + boxShadow: 'inset 0 0 6px rgba(0,0,0,0.00)', + webkitBoxShadow: 'inset 0 0 6px rgba(0,0,0,0.00)' + }, + '& > div::-webkit-scrollbar-thumb': { + borderRadius: '4px', + backgroundColor: theme.palette.background.default + } + } + }) +); + +;// CONCATENATED MODULE: ../theme/src/Components/SearchableList/index.ts + + /***/ }), -/***/ 46140: +/***/ 95332: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; // EXPORTS __webpack_require__.d(__webpack_exports__, { - "$": () => (/* binding */ useWeb3) + "C": () => (/* binding */ MaskTabList) }); -// EXTERNAL MODULE: ../../node_modules/.pnpm/web3@1.7.3/node_modules/web3/lib/index.js -var lib = __webpack_require__(75692); -var lib_default = /*#__PURE__*/__webpack_require__.n(lib); -// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.0.0/node_modules/react/index.js -var react = __webpack_require__(86248); -// EXTERNAL MODULE: ../web3-shared/evm/context/index.tsx -var context = __webpack_require__(24790); -// EXTERNAL MODULE: ../web3-shared/evm/utils/provider.ts -var provider = __webpack_require__(30083); -;// CONCATENATED MODULE: ../web3-shared/evm/hooks/useWeb3Provider.ts - - - -function useWeb3Provider(overrides, options) { - const { request , getSendOverrides , getRequestOptions } = (0,context/* useWeb3Context */.Z_)(); - return (0,react.useMemo)(()=>{ - return (0,provider/* createExternalProvider */.z)(request, ()=>({ - ...getSendOverrides?.(), - ...overrides - }) - , ()=>({ - ...getRequestOptions?.(), - ...options - }) - ); - }, [ - request, - getSendOverrides, - getRequestOptions, - JSON.stringify(overrides), - JSON.stringify(options) - ]); -} - -;// CONCATENATED MODULE: ../web3-shared/evm/hooks/useWeb3.ts - +// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.1.0/node_modules/react/jsx-runtime.js +var jsx_runtime = __webpack_require__(35667); +// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.8.0_4xriuibr7qayay6mzcpq5f43me/node_modules/@mui/material/styles/styled.js +var styled = __webpack_require__(35878); +// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.8.0_4xriuibr7qayay6mzcpq5f43me/node_modules/@mui/material/Button/Button.js +var Button = __webpack_require__(85792); +// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.8.0_4xriuibr7qayay6mzcpq5f43me/node_modules/@mui/material/Box/Box.js +var Box = __webpack_require__(96436); +// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.8.0_4xriuibr7qayay6mzcpq5f43me/node_modules/@mui/material/ButtonGroup/ButtonGroup.js + 1 modules +var ButtonGroup = __webpack_require__(34574); +// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.8.0_4xriuibr7qayay6mzcpq5f43me/node_modules/@mui/material/Tab/Tab.js +var Tab = __webpack_require__(65845); +// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+lab@5.0.0-alpha.82_ygk7qgdlnpugkmqdrmzyce476m/node_modules/@mui/lab/TabContext/TabContext.js +var TabContext = __webpack_require__(92916); +// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.1.0/node_modules/react/index.js +var react = __webpack_require__(58757); +;// CONCATENATED MODULE: ../theme/src/Components/Tabs/BaseTab.tsx + + + +const BaseTabWrap = (0,styled/* default */.ZP)(Button/* default */.Z, { + shouldForwardProp: (prop)=>prop !== 'activated' +})(({ theme , activated })=>({ + flex: 1, + paddingLeft: theme.spacing(2), + paddingRight: theme.spacing(2), + height: 36, + lineHeight: '18px', + boxShadow: activated ? `0px 0px 20px ${theme.palette.mode === 'dark' ? 'rgba(255, 255, 255, 0.12)' : 'rgba(0, 0, 0, 0.05)'}` : 'none', + background: activated ? theme.palette.background.paper : 'transparent', + borderRadius: `${theme.spacing(1.5)} ${theme.spacing(1.5)} 0px 0px !important`, + color: activated ? theme.palette.text.primary : theme.palette.text.secondary, + fontSize: 16, + fontWeight: 'bold', + '&:hover': { + color: theme.palette.text.primary, + boxShadow: activated ? '0 0 20px rgba(0, 0, 0, 0.05)' : 'none', + background: activated ? theme.palette.background.paper : 'transparent' + } + }) +); +const BaseTab = /*#__PURE__*/ (0,react.forwardRef)((props, ref)=>{ + const activated = !!props.selected; + const { onChange , onClick , value } = props; + const handleClick = (event)=>{ + if (!activated && onChange) onChange(event, String(value)); + if (onClick) onClick(event); + }; + return /*#__PURE__*/ (0,jsx_runtime.jsx)(BaseTabWrap, { + activated: activated, + ref: ref, + role: "tab", + ...props, + disableElevation: true, + variant: "contained", + "aria-selected": activated, + onClick: (e)=>handleClick(e) + , + onChange: undefined + }); +}); +// EXTERNAL MODULE: ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/get.js +var get = __webpack_require__(17); +;// CONCATENATED MODULE: ../theme/src/Components/Tabs/FlexibleTab.tsx -function useWeb3(overrides, options) { - const provider = useWeb3Provider(overrides, options); - return (0,react.useMemo)(()=>new (lib_default())(provider) - , [ - provider - ]); -} -/***/ }), -/***/ 2239: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { +const FlexibleTabTabWrap = (0,styled/* default */.ZP)(Button/* default */.Z, { + shouldForwardProp: (prop)=>prop !== 'activated' +})(({ theme , activated })=>({ + flexShrink: 0, + flexGrow: 0, + padding: theme.spacing(1.25, 1.5), + height: 38, + lineHeight: '16px', + minWidth: theme.spacing(3), + background: activated ? (0,get/* default */.Z)(theme.palette.background, 'input') ?? '#F2F6FA' : 'transparent', + borderRadius: `${theme.spacing(1)} !important`, + color: activated ? (0,get/* default */.Z)(theme.palette, 'maskColor.primary') ?? '#1C68F3' : theme.palette.text.secondary, + fontSize: 14, + fontWeight: 'bold !important', + '&:hover': { + background: activated ? (0,get/* default */.Z)(theme.palette.background, 'input') ?? '#F2F6FA' : 'transparent', + color: activated ? (0,get/* default */.Z)(theme.palette, 'maskColor.primary') ?? '#1C68F3' : theme.palette.text.primary, + boxShadow: 'none' + } + }) +); +const FlexibleTab = /*#__PURE__*/ (0,react.memo)((props)=>{ + const activated = !!props.selected; + const { onChange , onClick , value } = props; + const ref = (0,react.useRef)(null); + const handleClick = (event)=>{ + const isVisitable = props.isVisitable(ref.current?.getBoundingClientRect().top ?? 0, ref.current?.getBoundingClientRect().right ?? 0); + if (!activated && onChange) onChange(event, String(value), isVisitable); + if (onClick) onClick(event); + }; + return /*#__PURE__*/ (0,jsx_runtime.jsx)(FlexibleTabTabWrap, { + activated: activated, + ref: ref, + role: "tab", + ...props, + disableElevation: true, + variant: "contained", + "aria-selected": activated, + onClick: handleClick, + onChange: undefined + }); +}); -"use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "At": () => (/* binding */ isValidAddress), -/* harmony export */ "DC": () => (/* binding */ currySameAddress), -/* harmony export */ "Wr": () => (/* binding */ isSameAddress), -/* harmony export */ "qw": () => (/* binding */ isNativeTokenAddress), -/* harmony export */ "uO": () => (/* binding */ isZeroAddress) -/* harmony export */ }); -/* unused harmony export isRedPacketAddress */ -/* harmony import */ var wallet_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(99674); -/* harmony import */ var wallet_ts__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(wallet_ts__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var lodash_unified__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(27862); -/* harmony import */ var lodash_unified__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(78854); -/* harmony import */ var lodash_unified__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(70322); -/* harmony import */ var _dimensiondev_kit__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(28807); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(35827); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(26223); -/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(65506); +// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+icons-material@5.8.0_ar3vczqpton7uep5462l6mtgi4/node_modules/@mui/icons-material/ArrowBackIosNew.js +var ArrowBackIosNew = __webpack_require__(7654); +// EXTERNAL MODULE: ../../node_modules/.pnpm/react-use@17.4.0/node_modules/react-use/esm/useWindowSize.js +var useWindowSize = __webpack_require__(18940); +// EXTERNAL MODULE: ../../node_modules/.pnpm/react-use@17.4.0/node_modules/react-use/esm/useClickAway.js +var useClickAway = __webpack_require__(43691); +;// CONCATENATED MODULE: ../theme/src/Components/Tabs/RoundTab.tsx + + + +const RoundTabWrap = (0,styled/* default */.ZP)(Button/* default */.Z, { + shouldForwardProp: (prop)=>prop !== 'activated' +})(({ theme , activated })=>({ + flex: 1, + paddingLeft: theme.spacing(2), + paddingRight: theme.spacing(2), + height: 34, + lineHeight: '16px', + boxShadow: activated ? `0px 0px 20px ${theme.palette.mode === 'dark' ? 'rgba(255, 255, 255, 0.12)' : 'rgba(0, 0, 0, 0.05)'}` : 'none', + background: activated ? theme.palette.background.paper : 'transparent', + borderRadius: `${theme.spacing(2)} !important`, + color: activated ? theme.palette.text.primary : theme.palette.text.secondary, + fontSize: 14, + fontWeight: 'bold', + '&:hover': { + color: theme.palette.text.primary, + boxShadow: activated ? ' 0px 2px 5px 1px rgba(0, 0, 0, 0.05);' : 'none', + background: activated ? theme.palette.background.paper : 'transparent' + } + }) +); +const RoundTab = /*#__PURE__*/ (0,react.forwardRef)((props, ref)=>{ + const activated = !!props.selected; + const { onChange , onClick , value } = props; + const handleClick = (event)=>{ + if (!activated && onChange) onChange(event, String(value)); + if (onClick) onClick(event); + }; + return /*#__PURE__*/ (0,jsx_runtime.jsx)(RoundTabWrap, { + activated: activated, + ref: ref, + role: "tab", + ...props, + disableElevation: true, + variant: "contained", + "aria-selected": activated, + onClick: handleClick, + onChange: undefined + }); +}); +;// CONCATENATED MODULE: ../theme/src/Components/Tabs/index.tsx -function isSameAddress(a = '', b = '') { - if (!a || !b) return false; - return a.toLowerCase() === b.toLowerCase(); -} -function currySameAddress(addresses = []) { - addresses = (0,lodash_unified__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z)((0,lodash_unified__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z)((0,lodash_unified__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z)(addresses))).map((address)=>address.toLowerCase() - ); - return (target)=>{ - if (addresses.length === 0 || !target) return false; - if (typeof target === 'string') { - return addresses.includes(target.toLowerCase()); - } else if (typeof target === 'object' && typeof target.address === 'string') { - return addresses.includes(target.address.toLowerCase()); - } - throw new Error('Unsupported `target` address format'); - }; -} -const isZeroAddress = currySameAddress(_constants__WEBPACK_IMPORTED_MODULE_5__/* .ZERO_ADDRESS */ .r); -const isNativeTokenAddress = currySameAddress((0,_dimensiondev_kit__WEBPACK_IMPORTED_MODULE_1__/* .getEnumAsArray */ .Yl)(_types__WEBPACK_IMPORTED_MODULE_6__/* .ChainId */ .a_).map(({ value })=>(0,_constants__WEBPACK_IMPORTED_MODULE_7__/* .getTokenConstants */ .aV)(value).NATIVE_TOKEN_ADDRESS -)); -function isRedPacketAddress(address, version) { - const { HAPPY_RED_PACKET_ADDRESS_V1 , HAPPY_RED_PACKET_ADDRESS_V2 , HAPPY_RED_PACKET_ADDRESS_V3 , HAPPY_RED_PACKET_ADDRESS_V4 , } = getRedPacketConstants(); - switch(version){ - case 1: - return isSameAddress(HAPPY_RED_PACKET_ADDRESS_V1, address); - case 2: - return isSameAddress(HAPPY_RED_PACKET_ADDRESS_V2, address); - case 3: - return isSameAddress(HAPPY_RED_PACKET_ADDRESS_V3, address); - case 4: - return isSameAddress(HAPPY_RED_PACKET_ADDRESS_V4, address); - default: - return isSameAddress(HAPPY_RED_PACKET_ADDRESS_V1, address) || isSameAddress(HAPPY_RED_PACKET_ADDRESS_V2, address) || isSameAddress(HAPPY_RED_PACKET_ADDRESS_V3, address) || isSameAddress(HAPPY_RED_PACKET_ADDRESS_V4, address); - } -} -function isValidAddress(address) { - if (!address) return false; - return wallet_ts__WEBPACK_IMPORTED_MODULE_0__.EthereumAddress.isValid(address); -} -/***/ }), -/***/ 75000: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { -"use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "Y": () => (/* binding */ safeNonPayableTransactionCall) -/* harmony export */ }); -function safeNonPayableTransactionCall(tx, overrides) { - try { - if (!tx) return; - return tx.call(overrides); - } catch (error) { - return; - } -} -/***/ }), - -/***/ 86601: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "h": () => (/* binding */ isValidDomain) -/* harmony export */ }); -/* harmony import */ var punycode__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11590); - -function isValidDomain(domain) { - if (!domain || !domain.includes('.eth')) return false; - const match = punycode__WEBPACK_IMPORTED_MODULE_0__["default"].toASCII(domain).toLowerCase().match(/^(?:[a-z0-9](?:[-a-z0-9]*[a-z0-9])?\.)+[a-z0-9][-a-z0-9]*[a-z0-9]$/u); - return match !== null; -} - - -/***/ }), - -/***/ 36803: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "F": () => (/* binding */ createLookupTableResolver) -/* harmony export */ }); -function createLookupTableResolver(map, fallback) { - function resolveFallback(key) { - if (typeof fallback === 'function') return fallback(key); - return fallback; +const ArrowButtonWrap = (0,styled/* default */.ZP)(Button/* default */.Z)(({ theme })=>({ + position: 'absolute', + top: 0, + right: 0, + padding: theme.spacing(1.5), + height: 38, + width: 38, + minWidth: '38px !important', + background: (0,get/* default */.Z)(theme.palette.background, 'input') ?? '#F2F6FA', + '&:hover': { + background: (0,get/* default */.Z)(theme.palette.background, 'input') ?? '#F2F6FA' + } + }) +); +const ArrowBackIosNewIconWrap = (0,styled/* default */.ZP)(ArrowBackIosNew/* default */.Z)(({ theme })=>({ + color: theme.palette.text.primary, + width: 16, + borderRadius: '0 8px 8px 0' + }) +); +const FlexibleButtonGroupPanel = (0,styled/* default */.ZP)(Box/* default */.Z, { + shouldForwardProp: (prop)=>prop !== 'isOpen' +})(({ theme , isOpen =false })=>({ + position: 'absolute', + top: 0, + left: 0, + zIndex: 100, + padding: theme.spacing(1.5), + maxWidth: 'calc(100% - 24px)', + boxShadow: isOpen ? `0px 0px 20px ${theme.palette.mode === 'dark' ? 'rgba(255, 255, 255, 0.12)' : 'rgba(0, 0, 0, 0.05)'}` : 'none', + backdropFilter: 'blur(20px)' + }) +); +const ButtonGroupWrap = (0,styled/* default */.ZP)(ButtonGroup/* default */.Z, { + shouldForwardProp: (prop)=>prop !== 'maskVariant' +})(({ theme , maskVariant ='base' })=>({ + position: 'relative', + display: 'flex', + alignItems: 'center', + flexWrap: 'nowrap', + overflow: 'hidden', + flex: 1, + gap: maskVariant !== 'base' ? theme.spacing(1) : 0, + padding: theme.spacing(1, 1, 0, 1), + margin: theme.spacing(-1, -1, 0, -1), + background: 'transparent', + borderRadius: 0 + }) +); +const FlexButtonGroupWrap = (0,styled/* default */.ZP)(ButtonGroup/* default */.Z, { + shouldForwardProp: (prop)=>prop !== 'maskVariant' && prop !== 'isOpen' && prop !== 'isOverflow' +})(({ theme , maskVariant ='base' , isOpen =false , isOverflow =false })=>({ + position: 'relative', + display: 'flex', + alignItems: 'center', + flexWrap: isOpen ? 'wrap' : 'nowrap', + overflow: 'hidden', + flex: 1, + maxWidth: '100%', + paddingRight: isOpen ? 38 : 0, + gap: maskVariant !== 'base' ? theme.spacing(1) : 0, + borderRadius: 0, + background: !isOpen && isOverflow && theme.palette.mode === 'light' ? 'linear-gradient(270deg,rgba(255,255,255,1) 38px, rgba(223, 229, 244, 0.8) 38px, rgba(244, 247, 254, 0) 72px)' : 'transparent' + }) +); +const tabMapping = { + flexible: FlexibleTab, + round: RoundTab, + base: BaseTab +}; +/** + * This component is like TabList + Tabs in the @mui/material. + * It should be used with . + * + * Warning: Only a few "value" and "label" props on the @mui/material component will work. + * + * @example + * const [currentTab, onChange, tabs, setTab] = useTabs('tab1', 'tab2', 'tab3') + * return ( + * + * + * + * + * + * + * Item One + * Item Two + * Item Three + * + * ) + */ const MaskTabList = /*#__PURE__*/ (0,react.forwardRef)((props, ref)=>{ + const context = (0,TabContext/* useTabContext */._i)(); + const [open, handleToggle] = (0,react.useState)(false); + const [isTabsOverflow, setIsTabsOverflow] = (0,react.useState)(false); + const [firstId, setFirstTabId] = (0,react.useState)(); + const innerRef = (0,react.useRef)(null); + const anchorRef = (0,react.useRef)(null); + const flexPanelRef = (0,react.useRef)(null); + const { width } = (0,useWindowSize/* default */.Z)(); + if (context === null) throw new TypeError('No TabContext provided'); + const { onChange , variant ='base' , ...rest } = props; + (0,react.useImperativeHandle)(ref, ()=>innerRef?.current + ); + // #region hide tab should up to first when chick + (0,react.useEffect)(()=>{ + if (!innerRef?.current) return; + const current = innerRef.current; + setIsTabsOverflow(current?.scrollWidth > current?.clientWidth); + }, [ + innerRef?.current?.scrollWidth, + innerRef?.current?.clientWidth, + width + ]); + // #endregion + const children = react.Children.map(props.children, (child)=>{ + if (!/*#__PURE__*/ (0,react.isValidElement)(child)) throw new TypeError('Invalided Children'); + const extra = { + 'aria-controls': (0,TabContext/* getPanelId */.uU)(context, child.props.value), + id: (0,TabContext/* getTabId */.pQ)(context, child.props.value), + selected: child.props.value === context.value, + // if move tab to first in flexible tabs + isVisitable: (top, right)=>{ + const anchor = anchorRef.current?.getBoundingClientRect(); + return right <= (anchor?.right ?? 0) && top <= (anchor?.top ?? 0); + }, + onChange: (event, value, isVisitable)=>{ + handleToggle(false); + props.onChange(event, value); + if (variant === 'flexible' && !isVisitable) { + setFirstTabId(value); + } + } + }; + if (child.type === Tab/* default */.Z) { + const C = tabMapping[variant]; + return /*#__PURE__*/ (0,jsx_runtime.jsx)(C, { + value: child.props.value, + ...extra, + children: child.props.label + }); + } + return /*#__PURE__*/ (0,react.cloneElement)(child, extra); + }); + // #region hide tab should up to first when chick + const flexibleTabs = (0,react.useMemo)(()=>{ + if (variant !== 'flexible') return null; + return children?.sort((a, b)=>{ + if (a.props.value === firstId) return -1; + if (b.props.value === firstId) return 1; + return 0; + }); + }, [ + firstId, + children + ]); + // #endregion + // #region Should close panel when click other area + (0,useClickAway/* default */.Z)(flexPanelRef, (event)=>{ + if (variant !== 'flexible') return; + const { left , right , top , bottom } = innerRef.current?.getBoundingClientRect() ?? { + right: 0, + left: 0, + top: 0, + bottom: 0 + }; + const pointerX = (0,get/* default */.Z)(event, 'x', 0); + const pointerY = (0,get/* default */.Z)(event, 'y', 0); + if (pointerX > right || pointerX < left || pointerY < top || pointerY > bottom) handleToggle(false); + }); + // #endregion + if (variant === 'flexible') { + return /*#__PURE__*/ (0,jsx_runtime.jsxs)(Box/* default */.Z, { + position: "relative", + children: [ + /*#__PURE__*/ (0,jsx_runtime.jsx)(ButtonGroupWrap, { + ref: anchorRef, + style: { + visibility: 'hidden', + height: 38 + } + }), + /*#__PURE__*/ (0,jsx_runtime.jsx)(FlexibleButtonGroupPanel, { + isOpen: open && isTabsOverflow, + ref: flexPanelRef, + children: /*#__PURE__*/ (0,jsx_runtime.jsxs)(FlexButtonGroupWrap, { + maskVariant: variant, + isOpen: open, + isOverflow: isTabsOverflow, + ...rest, + ref: innerRef, + role: "tablist", + children: [ + flexibleTabs, + isTabsOverflow && /*#__PURE__*/ (0,jsx_runtime.jsx)(ArrowButtonWrap, { + variant: "text", + size: "small", + "aria-controls": open ? 'split-button-menu' : undefined, + "aria-expanded": open ? 'true' : undefined, + "aria-label": "select tabs list", + "aria-haspopup": "menu", + onClick: ()=>handleToggle(!open) + , + children: /*#__PURE__*/ (0,jsx_runtime.jsx)(ArrowBackIosNewIconWrap, { + sx: { + transform: open ? 'rotate(90deg)' : 'rotate(270deg)' + } + }) + }) + ] + }) + }) + ] + }); } - return (key)=>map[key] ?? resolveFallback(key) - ; -} + return /*#__PURE__*/ (0,jsx_runtime.jsx)(ButtonGroupWrap, { + maskVariant: variant, + ...rest, + ref: innerRef, + role: "tablist", + children: children + }); +}); /***/ }), -/***/ 66394: +/***/ 32876: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "Hh": () => (/* binding */ formatGweiToEther), -/* harmony export */ "az": () => (/* binding */ formatBalance), -/* harmony export */ "bc": () => (/* binding */ formatDomainName), -/* harmony export */ "dN": () => (/* binding */ formatAmount), -/* harmony export */ "f1": () => (/* binding */ formatWeiToGwei), -/* harmony export */ "j8": () => (/* binding */ formatEthereumAddress), -/* harmony export */ "nU": () => (/* binding */ formatGweiToWei), -/* harmony export */ "rl": () => (/* binding */ formatPercentage), -/* harmony export */ "uu": () => (/* binding */ formatNFT_TokenId), -/* harmony export */ "xG": () => (/* binding */ formatCurrency), -/* harmony export */ "yp": () => (/* binding */ formatWeiToEther) +/* harmony export */ "F": () => (/* binding */ MaskTextField) /* harmony export */ }); -/* unused harmony exports formatPrice, formatKeccakHash, formatNumberString */ -/* harmony import */ var bignumber_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(42263); -/* harmony import */ var bignumber_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(bignumber_js__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var wallet_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(99674); -/* harmony import */ var wallet_ts__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(wallet_ts__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(89260); -/* harmony import */ var _domain__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(86601); +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35667); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(58757); +/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(22816); +/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(96436); +/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(21784); +/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(48591); +/* harmony import */ var _UIHelper_makeStyles__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(75322); +/* harmony import */ var _CSSVariables_vars__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(8600); -function formatPercentage(value) { - const percentage = (0,_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_2__/* .multipliedBy */ .$q)(value, 100).toFixed(2).replace(/\.?0+$/, ''); - return `${percentage}%`; -} -function formatPrice(price, decimalPlaces = 6) { - return new BigNumber(price).decimalPlaces(decimalPlaces).toString(); -} -function formatAmount(amount = '0', decimals = 0) { - return new bignumber_js__WEBPACK_IMPORTED_MODULE_0__.BigNumber(amount).shiftedBy(decimals).toFixed(); -} -function formatBalance(rawValue = '0', decimals = 0, significant = decimals) { - let balance = new bignumber_js__WEBPACK_IMPORTED_MODULE_0__.BigNumber(rawValue); - if (balance.isNaN()) return '0'; - const negative = balance.isNegative() // balance < 0n - ; - const base = (0,_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_2__/* .pow10 */ .wA)(decimals) // 10n ** decimals - ; - if (negative) balance = balance.absoluteValue() // balance * -1n - ; - let fraction = balance.modulo(base).toString(10) // (balance % base).toString(10) - ; - // add leading zeros - while(fraction.length < decimals)fraction = `0${fraction}`; - // match significant digits - const matchSignificantDigits = new RegExp(`^0*[1-9]\\d{0,${significant > 0 ? significant - 1 : 0}}`); - fraction = fraction.match(matchSignificantDigits)?.[0] ?? ''; - // trim tailing zeros - fraction = fraction.replace(/0+$/g, ''); - const whole = balance.dividedToIntegerBy(base).toString(10) // (balance / base).toString(10) - ; - const value = `${whole}${fraction === '' ? '' : `.${fraction}`}`; - const raw = negative ? `-${value}` : value; - return raw.includes('.') ? raw.replace(/0+$/, '').replace(/\.$/, '') : raw; -} -function formatCurrency(value, sign = '') { - const balance = new bignumber_js__WEBPACK_IMPORTED_MODULE_0__.BigNumber(value); - const fixedBalance = balance.gt(1) ? balance.toFixed(2) : balance.toPrecision(2); - return `${sign}${fixedBalance.replace(/\d(?=(\d{3})+\.)/g, '$&,')}`; -} -function formatEthereumAddress(address, size = 0) { - if (!wallet_ts__WEBPACK_IMPORTED_MODULE_1__.EthereumAddress.isValid(address)) return address; - const address_ = wallet_ts__WEBPACK_IMPORTED_MODULE_1__.EthereumAddress.checksumAddress(address); - if (size === 0 || size >= 20) return address_; - return `${address_.substr(0, 2 + size)}...${address_.substr(-size)}`; -} -function formatNFT_TokenId(tokenId, size = 0) { - if (tokenId.length < 9) return `#${tokenId}`; - return `#${tokenId.substr(0, 2 + size)}...${tokenId.substr(-size)}`; -} -function formatDomainName(domain, size = 4) { - if (!domain || !(0,_domain__WEBPACK_IMPORTED_MODULE_3__/* .isValidDomain */ .h)(domain)) return domain; - const [domainName, company] = domain.split('.'); - if (domainName.length < 13) return domain; - return `${domainName.substr(0, size)}...${domainName.substr(-size)}.${company}`; -} -function formatKeccakHash(hash, size = 0) { - if (!/0x\w{64}/.test(hash)) return hash; - if (size === 0) return hash; - return `${hash.substr(0, 2 + size)}...${hash.substr(-size)}`; -} -function formatNumberString(str, size = 0) { - if (!/\d+/.test(str)) return str; - if (size === 0) return str; - return `${str.substr(0, size)}...${str.substr(-size)}`; -} -function formatWeiToGwei(value) { - return new bignumber_js__WEBPACK_IMPORTED_MODULE_0__.BigNumber(value).shiftedBy(-9).integerValue(); -} -function formatWeiToEther(value) { - return new bignumber_js__WEBPACK_IMPORTED_MODULE_0__.BigNumber(value).shiftedBy(-18); -} -function formatGweiToWei(value) { - return new bignumber_js__WEBPACK_IMPORTED_MODULE_0__.BigNumber(value).shiftedBy(9); -} -function formatGweiToEther(value) { - return new bignumber_js__WEBPACK_IMPORTED_MODULE_0__.BigNumber(value).shiftedBy(-9); -} + +const useStyles = (0,_UIHelper_makeStyles__WEBPACK_IMPORTED_MODULE_2__/* .makeStyles */ .Z)()((theme)=>({ + label: { + fontSize: 12, + lineHeight: '16px', + fontWeight: 'bolder' + }, + required: { + fontSize: 12, + lineHeight: '16px', + fontWeight: 'bolder', + color: (0,_CSSVariables_vars__WEBPACK_IMPORTED_MODULE_3__/* .getMaskColor */ .n)(theme).redMain, + paddingLeft: theme.spacing(0.5) + }, + field: { + width: '100%', + [`& > .${_mui_material__WEBPACK_IMPORTED_MODULE_4__/* ["default"].root */ .Z.root}`]: { + marginTop: theme.spacing(0.8), + paddingLeft: theme.spacing(0.5), + borderLeft: 'solid 2px', + borderRadius: '2px', + fontSize: 12, + lineHeight: '16px' + } + }, + input: { + padding: theme.spacing(1), + background: theme.palette.mode === 'dark' ? '#2B2E4C' : '#F6F6F8', + fontSize: 13, + lineHeight: '16px', + borderRadius: 6, + [`&.${_mui_material__WEBPACK_IMPORTED_MODULE_4__/* ["default"].error */ .Z.error}`]: { + boxShadow: `0 0 0 ${theme.spacing(0.5)} ${_CSSVariables_vars__WEBPACK_IMPORTED_MODULE_3__/* .MaskColorVar.redMain.alpha */ .Z.redMain.alpha(0.2)}`, + border: `1px solid ${_CSSVariables_vars__WEBPACK_IMPORTED_MODULE_3__/* .MaskColorVar.redMain.alpha */ .Z.redMain.alpha(0.8)}` + } + }, + inputDisabled: { + opacity: 0.5, + color: 'rgba(255, 255, 255, 0.4)' + }, + inputFocused: { + background: _CSSVariables_vars__WEBPACK_IMPORTED_MODULE_3__/* .MaskColorVar.primaryBackground */ .Z.primaryBackground, + boxShadow: `0 0 0 2px ${theme.palette.mode === 'dark' ? '#4F5378' : 'rgba(28, 104, 243, 0.2)'}` + } + }) +); +const MaskTextField = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.forwardRef)((props, ref)=>{ + const { label , sx , required =false , ...rest } = props; + const inputProps = props.InputProps ?? {}; + const { classes } = useStyles(); + return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_mui_material__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z, { + sx: sx, + children: [ + label && typeof label === 'string' && /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_mui_material__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, { + sx: { + mb: 1 + }, + variant: "body2", + className: classes.label, + children: [ + label, + required && /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, { + className: classes.required, + component: "span", + children: "*" + }) + ] + }), + label && typeof label !== 'string' && label, + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z, { + ref: ref, + ...rest, + classes: { + root: classes.field + }, + variant: "standard", + required: required, + InputProps: { + disableUnderline: true, + className: classes.input, + classes: { + disabled: classes.inputDisabled, + focused: classes.inputFocused, + ...inputProps.classes + }, + ...inputProps + } + }) + ] + }); +}); /***/ }), -/***/ 30083: +/***/ 6414: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "N": () => (/* binding */ createWeb3), -/* harmony export */ "z": () => (/* binding */ createExternalProvider) +/* harmony export */ "AZ": () => (/* binding */ DisableShadowRootContext), +/* harmony export */ "EP": () => (/* binding */ StyleSheetsContext), +/* harmony export */ "gt": () => (/* binding */ PreventEventPropagationListContext) /* harmony export */ }); -/* harmony import */ var web3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(75692); -/* harmony import */ var web3__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(web3__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(65506); - +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(58757); -const cache = new Map(); -/** - * If it returns a cache id, it means the request can be cached. - * @param requestArguments - * @returns - */ function getCacheId(requestArguments, overrides) { - // The -1 is not a valid chain id, only used for distinguishing with other explicit chain id. - const chainId = overrides?.chainId ?? -1; - const { method , params } = requestArguments; - switch(method){ - case _types__WEBPACK_IMPORTED_MODULE_1__/* .EthereumMethodType.ETH_GET_BALANCE */ .W8.ETH_GET_BALANCE: - const [account, tag = 'latest'] = params; - return [ - chainId, - method, - account, - tag - ].join('_'); - case _types__WEBPACK_IMPORTED_MODULE_1__/* .EthereumMethodType.ETH_BLOCK_NUMBER */ .W8.ETH_BLOCK_NUMBER: - return [ - chainId, - method - ].join('_'); - default: - return; - } -} -function createSquashedRequest(request) { - return async (requestArguments, overrides, options)=>{ - const id = getCacheId(requestArguments, overrides); - // the request cannot be cached - if (!id) return request(requestArguments, overrides, options); - // the request is already cached - if (cache.has(id)) return cache.get(id); - // the request can be cached - const unresolved = request(requestArguments, overrides, options).finally(()=>cache.delete(id) - ); - cache.set(id, unresolved); - return unresolved; - }; -} -function createExternalProvider(request, getOverrides, getOptions) { - const request_ = createSquashedRequest(request); - const send = (payload, callback)=>{ - request_({ - method: payload.method, - params: payload.params - }, getOverrides?.(), getOptions?.()).then((result)=>{ - callback(null, { - jsonrpc: '2.0', - id: payload.id, - result - }); - }, (error)=>{ - if (error instanceof Error) callback(error); - }); - }; - return { - isMetaMask: false, - isMask: true, - isStatus: true, - host: '', - path: '', - request: (requestArguments)=>request_(requestArguments, getOverrides?.(), getOptions?.()) - , - send, - sendAsync: send - }; -} -function createWeb3(request, getOverrides, getOptions) { - return new (web3__WEBPACK_IMPORTED_MODULE_0___default())(createExternalProvider(request, getOverrides, getOptions)); -} +/** @internal */ const StyleSheetsContext = (0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)(null); +/** @internal */ const PreventEventPropagationListContext = (0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)([]); +/** This context does not join any ShadowRoot related feature. */ const DisableShadowRootContext = (0,react__WEBPACK_IMPORTED_MODULE_0__.createContext)(false); /***/ }), -/***/ 33690: +/***/ 48488: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "$c": () => (/* binding */ createNativeToken), -/* harmony export */ "Of": () => (/* binding */ createERC721Token), -/* harmony export */ "Si": () => (/* binding */ makeSortAssertFn), -/* harmony export */ "UZ": () => (/* binding */ parseStringOrBytes32), -/* harmony export */ "VD": () => (/* binding */ isNativeTokenSymbol), -/* harmony export */ "bu": () => (/* binding */ addGasMargin), -/* harmony export */ "ek": () => (/* binding */ createERC721ContractDetailed), -/* harmony export */ "mO": () => (/* binding */ decodeOutputString), -/* harmony export */ "vs": () => (/* binding */ createERC20Tokens), -/* harmony export */ "wY": () => (/* binding */ createERC20Token) +/* harmony export */ "q": () => (/* binding */ ShadowRootStyleProvider) /* harmony export */ }); -/* unused harmony exports createERC1155Token, getTokenUSDValue, getBalanceValue, getTokenChainIdValue, makeSortTokenFn, makeSortAssertWithoutChainFn */ -/* harmony import */ var web3_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11627); -/* harmony import */ var web3_utils__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(web3_utils__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var bignumber_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(42263); -/* harmony import */ var bignumber_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(bignumber_js__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _dimensiondev_kit__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(28807); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(26223); -/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(65506); -/* harmony import */ var _chainDetailed__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(80526); -/* harmony import */ var _formatter__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(66394); -/* harmony import */ var _address__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(2239); -/* harmony import */ var _assets_chains_json__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(2545); - - - +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35667); +/* harmony import */ var _emotion_cache__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(20227); +/* harmony import */ var _emotion_react__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(32980); +/* harmony import */ var tss_react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(82737); +/* harmony import */ var _ShadowRootStyleSheet__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(29938); +/* harmony import */ var _Contexts__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(6414); -function createNativeToken(chainId) { - const chainDetailed = (0,_chainDetailed__WEBPACK_IMPORTED_MODULE_3__/* .getChainDetailed */ .$G)(chainId); - if (!chainDetailed) throw new Error('Unknown chain id.'); - const { NATIVE_TOKEN_ADDRESS } = (0,_constants__WEBPACK_IMPORTED_MODULE_4__/* .getTokenConstants */ .aV)(chainId); - if (!NATIVE_TOKEN_ADDRESS) throw new Error('Failed to create token.'); - return { - type: _types__WEBPACK_IMPORTED_MODULE_5__/* .EthereumTokenType.Native */ .Dr.Native, - chainId, - address: NATIVE_TOKEN_ADDRESS, - ...chainDetailed.nativeCurrency - }; -} -const NATIVE_TOKEN_SYMBOLS = _assets_chains_json__WEBPACK_IMPORTED_MODULE_6__.filter((x)=>x.network === 'mainnet' && x.nativeCurrency -).map((x)=>x.nativeCurrency.symbol.toLowerCase() -); -function isNativeTokenSymbol(symbol) { - return NATIVE_TOKEN_SYMBOLS.includes(symbol.toLowerCase()); -} -function createERC20Token(chainId, address, decimals = 0, name = 'Unknown Token', symbol = 'UNKNOWN', logoURI) { - return { - type: _types__WEBPACK_IMPORTED_MODULE_5__/* .EthereumTokenType.ERC20 */ .Dr.ERC20, - chainId, - address, - decimals, - name, - symbol, - logoURI - }; -} -function createERC721ContractDetailed(chainId, address, name = 'Unknown Token', symbol = 'UNKNOWN', baseURI, iconURL) { - return { - type: _types__WEBPACK_IMPORTED_MODULE_5__/* .EthereumTokenType.ERC721 */ .Dr.ERC721, - chainId, - address, - name, - symbol, - baseURI, - iconURL - }; -} -function createERC721Token(contractDetailed, info, tokenId, collection) { - return { - contractDetailed, - info, - tokenId, - collection - }; -} -function createERC1155Token(chainId, tokenId, address, name, uri, asset) { - return { - type: EthereumTokenType.ERC1155, - chainId, - tokenId, - address, - name, - uri, - asset - }; -} -function createERC20Tokens(key, name, symbol, decimals) { - const base = {}; - return (0,_dimensiondev_kit__WEBPACK_IMPORTED_MODULE_2__/* .getEnumAsArray */ .Yl)(_types__WEBPACK_IMPORTED_MODULE_5__/* .ChainId */ .a_).reduce((accumulator, { value: chainId })=>{ - const evaluator = (f)=>typeof f === 'function' ? f(chainId) : f - ; - accumulator[chainId] = { - type: _types__WEBPACK_IMPORTED_MODULE_5__/* .EthereumTokenType.ERC20 */ .Dr.ERC20, - chainId, - address: (0,_constants__WEBPACK_IMPORTED_MODULE_4__/* .getTokenConstants */ .aV)(chainId)[key] ?? '', - name: evaluator(name), - symbol: evaluator(symbol), - decimals: evaluator(decimals) - }; - return accumulator; - }, base); -} -function addGasMargin(value, scale = 3000) { - return new (bignumber_js__WEBPACK_IMPORTED_MODULE_1___default())(value).multipliedBy(new (bignumber_js__WEBPACK_IMPORTED_MODULE_1___default())(10000).plus(scale)).dividedToIntegerBy(10000); -} -function decodeOutputString(web3, abis, output) { - if (abis.length === 1) return web3.eth.abi.decodeParameter(abis[0], output); - if (abis.length > 1) return web3.eth.abi.decodeParameters(abis, output); - return; +/** + * @internal + * This component provide the modified version of tss-react and emotion context, + * therefore styles within this component can render correctly in ShadowRoot. + * + * This component is used to render inside a bare ShadowRoot. + * If you need a nested ShadowRoot render, use ShadowRootIsolation. + */ function ShadowRootStyleProvider(props) { + const { shadow , children } = props; + const [mui, tss, sheets] = getShadowRootEmotionCache(shadow); + return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Contexts__WEBPACK_IMPORTED_MODULE_4__/* .StyleSheetsContext.Provider */ .EP.Provider, { + value: sheets, + children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_emotion_react__WEBPACK_IMPORTED_MODULE_5__.C, { + value: mui, + children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(tss_react__WEBPACK_IMPORTED_MODULE_2__/* .TssCacheProvider */ .LW, { + value: tss, + children: children + }) + }) + }); } -// parse a name or symbol from a token response -const BYTES32_REGEX = /^0x[\dA-Fa-f]{64}$/; -function parseStringOrBytes32(str, bytes32, defaultValue) { - return str && str.length > 0 ? str : bytes32 && BYTES32_REGEX.test(bytes32) && (0,web3_utils__WEBPACK_IMPORTED_MODULE_0__.hexToBytes)(bytes32)[31] === 0 ? (0,web3_utils__WEBPACK_IMPORTED_MODULE_0__.toAscii)(bytes32) : defaultValue; +const styleSheetMap = new WeakMap(); +function getShadowRootEmotionCache(shadow) { + if (styleSheetMap.has(shadow)) return styleSheetMap.get(shadow); + // emotion doesn't allow numbers appears in the key + const instanceID = Math.random().toString(36).slice(2).replace(/\d/g, 'x').slice(0, 4); + const keyA = 'mui-' + instanceID; + const keyB = 'tss-' + instanceID; + const muiEmotionCache = (0,_emotion_cache__WEBPACK_IMPORTED_MODULE_1__["default"])({ + key: keyA + }); + const muiStyleSheet = new _ShadowRootStyleSheet__WEBPACK_IMPORTED_MODULE_3__/* .StyleSheet */ .m({ + key: keyA, + container: shadow + }); + muiEmotionCache.sheet = muiStyleSheet; + const tssEmotionCache = (0,_emotion_cache__WEBPACK_IMPORTED_MODULE_1__["default"])({ + key: keyB + }); + const tssStyleSheet = new _ShadowRootStyleSheet__WEBPACK_IMPORTED_MODULE_3__/* .StyleSheet */ .m({ + key: keyB, + container: shadow + }); + tssEmotionCache.sheet = tssStyleSheet; + styleSheetMap.set(shadow, [ + muiEmotionCache, + tssEmotionCache, + [ + muiStyleSheet, + tssStyleSheet + ] + ]); + return styleSheetMap.get(shadow); } -// #region asset sort -const getTokenUSDValue = (token)=>token.value ? Number.parseFloat(token.value[_types__WEBPACK_IMPORTED_MODULE_5__/* .CurrencyType.USD */ .V2.USD]) : 0 -; -const getBalanceValue = (asset)=>Number.parseFloat((0,_formatter__WEBPACK_IMPORTED_MODULE_7__/* .formatBalance */ .az)(asset.balance, asset.token.decimals)) -; -const getTokenChainIdValue = (asset)=>asset.token.type === EthereumTokenType.Native ? 1 / asset.token.chainId : 0 -; -const makeSortTokenFn = (chainId, options = {})=>{ - const { isMaskBoost =false } = options; - const { MASK_ADDRESS } = (0,_constants__WEBPACK_IMPORTED_MODULE_4__/* .getTokenConstants */ .aV)(chainId); - return (a, b)=>{ - // The native token goes first - if (a.type === _types__WEBPACK_IMPORTED_MODULE_5__/* .EthereumTokenType.Native */ .Dr.Native) return -1; - if (b.type === _types__WEBPACK_IMPORTED_MODULE_5__/* .EthereumTokenType.Native */ .Dr.Native) return 1; - // The mask token second - if (isMaskBoost) { - if ((0,_address__WEBPACK_IMPORTED_MODULE_8__/* .isSameAddress */ .Wr)(a.address, MASK_ADDRESS ?? '')) return -1; - if ((0,_address__WEBPACK_IMPORTED_MODULE_8__/* .isSameAddress */ .Wr)(b.address, MASK_ADDRESS ?? '')) return 1; - } - return 0; - }; -}; -const makeSortAssertFn = (chainId, options = {})=>{ - const { isMaskBoost =false } = options; - const { MASK_ADDRESS } = (0,_constants__WEBPACK_IMPORTED_MODULE_4__/* .getTokenConstants */ .aV)(chainId); - return (a, b)=>{ - // The tokens with the current chain id goes first - if (a.chain !== b.chain) { - if ((0,_chainDetailed__WEBPACK_IMPORTED_MODULE_3__/* .getChainIdFromName */ .np)(a.chain) === chainId) return -1; - if ((0,_chainDetailed__WEBPACK_IMPORTED_MODULE_3__/* .getChainIdFromName */ .np)(b.chain) === chainId) return 1; - } - // native token sort - const nativeTokenDifference = makeSortTokenFn(chainId, { - isMaskBoost: false - })(a.token, b.token); - if (nativeTokenDifference !== 0) return nativeTokenDifference; - // Mask token at second if value > 0 - if (isMaskBoost) { - if ((0,_address__WEBPACK_IMPORTED_MODULE_8__/* .isSameAddress */ .Wr)(a.token.address, MASK_ADDRESS) && getBalanceValue(a) > 0) return -1; - if ((0,_address__WEBPACK_IMPORTED_MODULE_8__/* .isSameAddress */ .Wr)(b.token.address, MASK_ADDRESS) && getBalanceValue(b) > 0) return 1; - } - // Token with high usd value estimation has priority - const valueDifference = getTokenUSDValue(b) - getTokenUSDValue(a); - if (valueDifference !== 0) return valueDifference; - // Token with big balance has priority - if (getBalanceValue(a) > getBalanceValue(b)) return -1; - if (getBalanceValue(a) < getBalanceValue(b)) return 1; - // mask token behind all valuable tokens if value = 0 and balance = 0 - if (isMaskBoost) { - if ((0,_address__WEBPACK_IMPORTED_MODULE_8__/* .isSameAddress */ .Wr)(a.token.address, MASK_ADDRESS)) return -1; - if ((0,_address__WEBPACK_IMPORTED_MODULE_8__/* .isSameAddress */ .Wr)(b.token.address, MASK_ADDRESS)) return 1; - } - // Sorted by alphabet - if ((a.token.name ?? '') > (b.token.name ?? '')) return 1; - if ((a.token.name ?? '') < (b.token.name ?? '')) return -1; - return 0; - }; -}; -const makeSortAssertWithoutChainFn = ()=>{ - return (a, b)=>{ - // Token with high usd value estimation has priority - const valueDifference = getTokenUSDValue(b) - getTokenUSDValue(a); - if (valueDifference !== 0) return valueDifference; - // native token sort - const chainValueDifference = getTokenChainIdValue(b) - getTokenChainIdValue(a); - if (chainValueDifference !== 0) return chainValueDifference; - // Token with big balance has priority - if (getBalanceValue(a) > getBalanceValue(b)) return -1; - if (getBalanceValue(a) < getBalanceValue(b)) return 1; - // Sorted by alphabet - if ((a.token.name ?? '') > (b.token.name ?? '')) return 1; - if ((a.token.name ?? '') < (b.token.name ?? '')) return -1; - return 0; - }; -} // #endregion -; /***/ }), -/***/ 73946: +/***/ 32920: /***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "a_": () => (/* binding */ ChainId), -/* harmony export */ "lP": () => (/* binding */ ProviderType), -/* harmony export */ "td": () => (/* binding */ NetworkType) +/* harmony export */ "R": () => (/* binding */ MaskThemeProvider) /* harmony export */ }); -/* unused harmony export AssetProviderType */ -var ChainId; -(function(ChainId) { - ChainId[ChainId["Mainnet"] = 1] = "Mainnet"; - ChainId[ChainId["Testnet"] = 2] = "Testnet"; -})(ChainId || (ChainId = {})); -var NetworkType; -(function(NetworkType) { - NetworkType["Flow"] = "Flow"; -})(NetworkType || (NetworkType = {})); -var ProviderType; -(function(ProviderType) { - ProviderType["Blocto"] = "Blocto"; - ProviderType["Dapper"] = "Dapper"; - ProviderType["Ledger"] = "Ledger"; -})(ProviderType || (ProviderType = {})); -var AssetProviderType; -(function(AssetProviderType) { - AssetProviderType["Default"] = "Default"; -})(AssetProviderType || (AssetProviderType = {})); - - -/***/ }), - -/***/ 79958: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; - -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - "a_": () => (/* reexport */ ChainId), - "td": () => (/* reexport */ NetworkType), - "lP": () => (/* reexport */ ProviderType), - "aV": () => (/* reexport */ getTokenConstants), - "V3": () => (/* reexport */ resolveAddressLinkOnExplorer), - "vy": () => (/* reexport */ resolveBlockLinkOnExplorer), - "z4": () => (/* reexport */ resolveTransactionLinkOnExplorer) -}); - -// UNUSED EXPORTS: createClient, resolveChainName, resolveLinkOnExplorer, resolveProviderName, useTokenConstants - -;// CONCATENATED MODULE: ../web3-shared/solana/types.ts -var ChainId; -(function(ChainId) { - ChainId[ChainId["Mainnet"] = 101] = "Mainnet"; - ChainId[ChainId["Testnet"] = 102] = "Testnet"; - ChainId[ChainId["Devnet"] = 103] = "Devnet"; -})(ChainId || (ChainId = {})); -var NetworkType; -(function(NetworkType) { - NetworkType["Solana"] = "Solana"; -})(NetworkType || (NetworkType = {})); -var ProviderType; -(function(ProviderType) { - ProviderType["Phantom"] = "Phantom"; - ProviderType["Sollet"] = "Sollet"; -})(ProviderType || (ProviderType = {})); +/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(35667); +/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(93122); +/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(99638); +/* harmony import */ var _masknet_icons__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(79573); +/* harmony import */ var _Components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(30381); -// EXTERNAL MODULE: ../../node_modules/.pnpm/urlcat@2.0.4/node_modules/urlcat/dist/index.js -var dist = __webpack_require__(19802); -var dist_default = /*#__PURE__*/__webpack_require__.n(dist); -// EXTERNAL MODULE: ../web3-shared/base/src/index.ts + 7 modules -var src = __webpack_require__(89260); -;// CONCATENATED MODULE: ../web3-shared/solana/pipes/index.ts -const resolveChainName = (0,src/* createLookupTableResolver */.FG)({ - [ChainId.Mainnet]: 'mainnet', - [ChainId.Testnet]: 'testnet', - [ChainId.Devnet]: 'devnet' -}, ()=>'Unknown chain id' -); -const resolveProviderName = (0,src/* createLookupTableResolver */.FG)({ - [ProviderType.Phantom]: 'Phantom', - [ProviderType.Sollet]: 'Sollet' -}, ()=>'Unknown provider type' -); -const resolveLinkOnExplorer = (0,src/* createLookupTableResolver */.FG)({ - [ChainId.Mainnet]: 'https://explorer.solana.com/', - [ChainId.Testnet]: 'https://explorer.solana.com/?cluster=testnet', - [ChainId.Devnet]: 'https://explorer.solana.com/?cluster=devnet' -}, ()=>'Unknown chain id' -); -function resolveTransactionLinkOnExplorer(chainId, tx) { - return dist_default()(resolveLinkOnExplorer(chainId), '/transaction/:tx', { - tx - }); -} -function resolveAddressLinkOnExplorer(chainId, address) { - return dist_default()(resolveLinkOnExplorer(chainId), '/account/:address', { - address - }); +function compose(init, ...f) { + // eslint-disable-next-line unicorn/no-array-reduce + return f.reduceRight((prev, curr)=>curr(prev) + , /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, { + children: init + })); } -function resolveBlockLinkOnExplorer(chainId, blockNumber) { - return ''; +function MaskThemeProvider(props) { + const { children , useTheme , useMaskIconPalette , CustomSnackbarOffsetY } = props; + const theme = useTheme(); + const MaskIconPalette = useMaskIconPalette(theme); + return compose(children, (jsx)=>/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_masknet_icons__WEBPACK_IMPORTED_MODULE_2__/* .MaskIconPaletteContext.Provider */ .v.Provider, { + value: MaskIconPalette, + children: jsx + }) + , (jsx)=>/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, { + theme: theme, + children: jsx + }) + , (jsx)=>/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Components__WEBPACK_IMPORTED_MODULE_1__/* .CustomSnackbarProvider */ .YO, { + disableWindowBlurListener: false, + anchorOrigin: { + vertical: 'top', + horizontal: 'right' + }, + children: jsx, + offsetY: CustomSnackbarOffsetY + }) + , (jsx)=>/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, { + children: [ + /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .ZP, {}), + jsx + ] + }) + ); } -;// CONCATENATED MODULE: ../web3-constants/solana/token.json -const token_namespaceObject = JSON.parse('{"USDC_ADDRESS":{"Mainnet":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","Testnet":"CpMah17kQEL2wqyMKt3mZBdTnZbkbfx4nqmQMFDP5vwp","Devnet":""},"SOL_ADDRESS":{"Mainnet":"So11111111111111111111111111111111111111112","Testnet":"So11111111111111111111111111111111111111112","Devnet":"So11111111111111111111111111111111111111112"}}'); -;// CONCATENATED MODULE: ../web3-shared/solana/constants/index.ts - - - -const getTokenConstants = (0,src/* transform */.vs)(ChainId, token_namespaceObject); -const useTokenConstants = (0,src/* hookTransform */.SL)(getTokenConstants); - -;// CONCATENATED MODULE: ../web3-shared/solana/index.ts - - - - - - /***/ }), -/***/ 52511: -/***/ ((__unused_webpack_module, exports) => { +/***/ 2241: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; - - -// This is free and unencumbered software released into the public domain. -// See LICENSE.md for more information. - -// -// Utilities -// - -/** - * @param {number} a The number to test. - * @param {number} min The minimum value in the range, inclusive. - * @param {number} max The maximum value in the range, inclusive. - * @return {boolean} True if a >= min and a <= max. - */ -function inRange(a, min, max) { - return min <= a && a <= max; -} - -/** - * @param {*} o - * @return {Object} - */ -function ToDictionary(o) { - if (o === undefined) return {}; - if (o === Object(o)) return o; - throw TypeError('Could not convert argument to dictionary'); -} - -/** - * @param {string} string Input string of UTF-16 code units. - * @return {!Array.} Code points. - */ -function stringToCodePoints(string) { - // https://heycam.github.io/webidl/#dfn-obtain-unicode - - // 1. Let S be the DOMString value. - var s = String(string); - - // 2. Let n be the length of S. - var n = s.length; - - // 3. Initialize i to 0. - var i = 0; - - // 4. Initialize U to be an empty sequence of Unicode characters. - var u = []; - - // 5. While i < n: - while (i < n) { - - // 1. Let c be the code unit in S at index i. - var c = s.charCodeAt(i); - - // 2. Depending on the value of c: - - // c < 0xD800 or c > 0xDFFF - if (c < 0xD800 || c > 0xDFFF) { - // Append to U the Unicode character with code point c. - u.push(c); - } - - // 0xDC00 ≤ c ≤ 0xDFFF - else if (0xDC00 <= c && c <= 0xDFFF) { - // Append to U a U+FFFD REPLACEMENT CHARACTER. - u.push(0xFFFD); +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "BorderRadius": () => (/* binding */ BorderRadius), +/* harmony export */ "Breakpoints": () => (/* binding */ Breakpoints), +/* harmony export */ "DefaultVariants": () => (/* binding */ DefaultVariants), +/* harmony export */ "Font": () => (/* binding */ Font), +/* harmony export */ "NoAutoTextTransform": () => (/* binding */ NoAutoTextTransform), +/* harmony export */ "Shadows": () => (/* binding */ Shadows) +/* harmony export */ }); +const Font = { + // cspell:ignore Jheng + typography: { + // TODO: lang=JP? offer different font list for different lang target? + // Firefox doesn't support "system-ui" so we need fallback + fontFamily: `PingFang SC, system-ui, Segoe UI, Roboto, Ubuntu, Helvetica Neue, Helvetica, Arial, + PingFang TC, Hiragino Sans TC, Source Han Sans TC, Noto Sans CJK TC, Microsoft JhengHei UI, Microsoft JhengHei, sans-serif;` } - - // 0xD800 ≤ c ≤ 0xDBFF - else if (0xD800 <= c && c <= 0xDBFF) { - // 1. If i = n−1, then append to U a U+FFFD REPLACEMENT - // CHARACTER. - if (i === n - 1) { - u.push(0xFFFD); - } - // 2. Otherwise, i < n−1: - else { - // 1. Let d be the code unit in S at index i+1. - var d = string.charCodeAt(i + 1); - - // 2. If 0xDC00 ≤ d ≤ 0xDFFF, then: - if (0xDC00 <= d && d <= 0xDFFF) { - // 1. Let a be c & 0x3FF. - var a = c & 0x3FF; - - // 2. Let b be d & 0x3FF. - var b = d & 0x3FF; - - // 3. Append to U the Unicode character with code point - // 2^16+2^10*a+b. - u.push(0x10000 + (a << 10) + b); - - // 4. Set i to i+1. - i += 1; - } - - // 3. Otherwise, d < 0xDC00 or d > 0xDFFF. Append to U a - // U+FFFD REPLACEMENT CHARACTER. - else { - u.push(0xFFFD); +}; +/** + * ? lg changed to 1440, other values untouched (default value) + */ const Breakpoints = { + breakpoints: { + values: { + xs: 0, + sm: 600, + md: 960, + lg: 1440, + xl: 1920 } - } } - - // 3. Set i to i+1. - i += 1; - } - - // 6. Return U. - return u; -} - +}; /** - * @param {!Array.} code_points Array of code points. - * @return {string} string String of UTF-16 code units. - */ -function codePointsToString(code_points) { - var s = ''; - for (var i = 0; i < code_points.length; ++i) { - var cp = code_points[i]; - if (cp <= 0xFFFF) { - s += String.fromCharCode(cp); - } else { - cp -= 0x10000; - s += String.fromCharCode((cp >> 10) + 0xD800, - (cp & 0x3FF) + 0xDC00); + * ? Paper shadow should follow Mask UI + */ const Shadows = { + components: { + MuiPaper: { + styleOverrides: {}, + variants: [ + { + props: { + variant: 'outlined' + }, + style: { + boxShadow: '0 8px 20px rgba(0, 0, 0, 0.04)' + } + }, + ] + } } - } - return s; -} - - -// -// Implementation of Encoding specification -// https://encoding.spec.whatwg.org/ -// - -// -// 3. Terminology -// - -/** - * End-of-stream is a special token that signifies no more tokens - * are in the stream. - * @const - */ var end_of_stream = -1; - +}; /** - * A stream represents an ordered sequence of tokens. - * - * @constructor - * @param {!(Array.|Uint8Array)} tokens Array of tokens that provide the - * stream. - */ -function Stream(tokens) { - /** @type {!Array.} */ - this.tokens = [].slice.call(tokens); -} - -Stream.prototype = { - /** - * @return {boolean} True if end-of-stream has been hit. - */ - endOfStream: function() { - return !this.tokens.length; - }, - - /** - * When a token is read from a stream, the first token in the - * stream must be returned and subsequently removed, and - * end-of-stream must be returned otherwise. - * - * @return {number} Get the next token from the stream, or - * end_of_stream. - */ - read: function() { - if (!this.tokens.length) - return end_of_stream; - return this.tokens.shift(); - }, - - /** - * When one or more tokens are prepended to a stream, those tokens - * must be inserted, in given order, before the first token in the - * stream. - * - * @param {(number|!Array.)} token The token(s) to prepend to the stream. - */ - prepend: function(token) { - if (Array.isArray(token)) { - var tokens = /**@type {!Array.}*/(token); - while (tokens.length) - this.tokens.unshift(tokens.pop()); - } else { - this.tokens.unshift(token); - } - }, - - /** - * When one or more tokens are pushed to a stream, those tokens - * must be inserted, in given order, after the last token in the - * stream. - * - * @param {(number|!Array.)} token The tokens(s) to prepend to the stream. - */ - push: function(token) { - if (Array.isArray(token)) { - var tokens = /**@type {!Array.}*/(token); - while (tokens.length) - this.tokens.push(tokens.shift()); - } else { - this.tokens.push(token); + * ? Paper should be used as the main building block in the page + * ? Paper should be 12px + * ? Dialog should be 12px + * ? Input (Button, TextField and Select) should be 4px(small) 6px(medium) and 8px(large) + */ const BorderRadius = { + components: { + MuiPaper: { + styleOverrides: { + rounded: { + borderRadius: 12 + } + } + }, + MuiDialog: { + styleOverrides: { + root: { + borderRadius: 12 + } + } + }, + MuiButton: { + styleOverrides: { + sizeSmall: { + borderRadius: 4 + }, + // Medium has no style class + root: { + borderRadius: 6 + }, + sizeLarge: { + borderRadius: 8 + } + } + }, + MuiInputBase: { + styleOverrides: { + sizeSmall: { + borderRadius: 4 + }, + // Medium has no style class + root: { + borderRadius: 6 + } + } + }, + MuiFilledInput: { + styleOverrides: { + sizeSmall: { + borderTopLeftRadius: 4, + borderTopRightRadius: 4, + borderBottomLeftRadius: 4, + borderBottomRightRadius: 4 + }, + // Medium has no style class + root: { + borderTopLeftRadius: 6, + borderTopRightRadius: 6, + borderBottomLeftRadius: 6, + borderBottomRightRadius: 6 + } + } + } } - } }; - -// -// 4. Encodings -// - -// 4.1 Encoders and decoders - -/** @const */ -var finished = -1; - /** - * @param {boolean} fatal If true, decoding errors raise an exception. - * @param {number=} opt_code_point Override the standard fallback code point. - * @return {number} The code point to insert on a decoding error. - */ -function decoderError(fatal, opt_code_point) { - if (fatal) - throw TypeError('Decoder error'); - return opt_code_point || 0xFFFD; -} - -// -// 7. API -// - -/** @const */ var DEFAULT_ENCODING = 'utf-8'; - -// 7.1 Interface TextDecoder - + * ? No auto text-transform will be applied in this theme + */ const NoAutoTextTransform = { + components: { + MuiButton: { + styleOverrides: { + root: { + textTransform: 'initial' + } + } + }, + MuiTab: { + styleOverrides: { + root: { + textTransform: 'initial' + } + } + } + } +}; /** - * @constructor - * @param {string=} encoding The label of the encoding; - * defaults to 'utf-8'. - * @param {Object=} options - */ -function TextDecoder(encoding, options) { - if (!(this instanceof TextDecoder)) { - return new TextDecoder(encoding, options); - } - encoding = encoding !== undefined ? String(encoding).toLowerCase() : DEFAULT_ENCODING; - if (encoding !== DEFAULT_ENCODING) { - throw new Error('Encoding not supported. Only utf-8 is supported'); - } - options = ToDictionary(options); - - /** @private @type {boolean} */ - this._streaming = false; - /** @private @type {boolean} */ - this._BOMseen = false; - /** @private @type {?Decoder} */ - this._decoder = null; - /** @private @type {boolean} */ - this._fatal = Boolean(options['fatal']); - /** @private @type {boolean} */ - this._ignoreBOM = Boolean(options['ignoreBOM']); - - Object.defineProperty(this, 'encoding', {value: 'utf-8'}); - Object.defineProperty(this, 'fatal', {value: this._fatal}); - Object.defineProperty(this, 'ignoreBOM', {value: this._ignoreBOM}); -} - -TextDecoder.prototype = { - /** - * @param {ArrayBufferView=} input The buffer of bytes to decode. - * @param {Object=} options - * @return {string} The decoded string. - */ - decode: function decode(input, options) { - var bytes; - if (typeof input === 'object' && input instanceof ArrayBuffer) { - bytes = new Uint8Array(input); - } else if (typeof input === 'object' && 'buffer' in input && - input.buffer instanceof ArrayBuffer) { - bytes = new Uint8Array(input.buffer, - input.byteOffset, - input.byteLength); - } else { - bytes = new Uint8Array(0); + * ? TextField, Select use "outlined" as default variant + */ const DefaultVariants = { + components: { + MuiButton: { + defaultProps: { + variant: 'contained' + } + }, + MuiTextField: { + defaultProps: {} + } } +}; - options = ToDictionary(options); - - if (!this._streaming) { - this._decoder = new UTF8Decoder({fatal: this._fatal}); - this._BOMseen = false; - } - this._streaming = Boolean(options['stream']); - var input_stream = new Stream(bytes); +/***/ }), - var code_points = []; +/***/ 53931: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - /** @type {?(number|!Array.)} */ - var result; +"use strict"; +// ESM COMPAT FLAG +__webpack_require__.r(__webpack_exports__); - while (!input_stream.endOfStream()) { - result = this._decoder.handler(input_stream, input_stream.read()); - if (result === finished) - break; - if (result === null) - continue; - if (Array.isArray(result)) - code_points.push.apply(code_points, /**@type {!Array.}*/(result)); - else - code_points.push(result); - } - if (!this._streaming) { - do { - result = this._decoder.handler(input_stream, input_stream.read()); - if (result === finished) - break; - if (result === null) - continue; - if (Array.isArray(result)) - code_points.push.apply(code_points, /**@type {!Array.}*/(result)); - else - code_points.push(result); - } while (!input_stream.endOfStream()); - this._decoder = null; - } +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "BaseLine": () => (/* binding */ BaseLine), + "Button": () => (/* binding */ Button), + "Card": () => (/* binding */ Card), + "Dialog": () => (/* binding */ Dialog), + "Grid": () => (/* binding */ Grid), + "Link": () => (/* binding */ Link), + "List": () => (/* binding */ List), + "Paper": () => (/* binding */ Paper), + "Tabs": () => (/* binding */ Tabs), + "TextField": () => (/* binding */ TextField), + "Typography": () => (/* binding */ Typography) +}); - if (code_points.length) { - // If encoding is one of utf-8, utf-16be, and utf-16le, and - // ignore BOM flag and BOM seen flag are unset, run these - // subsubsteps: - if (['utf-8'].indexOf(this.encoding) !== -1 && - !this._ignoreBOM && !this._BOMseen) { - // If token is U+FEFF, set BOM seen flag. - if (code_points[0] === 0xFEFF) { - this._BOMseen = true; - code_points.shift(); - } else { - // Otherwise, if token is not end-of-stream, set BOM seen - // flag and append token to output. - this._BOMseen = true; +;// CONCATENATED MODULE: ../theme/src/CSSVariables/createVars.ts +/** @internal */ function css_var(unique_name, keys) { + for (const k of Object.keys(keys))keys[k] = createVar(k); + return keys; + function createVar(name) { + const val = '--' + unique_name + '-' + name; + function use(defaultValue) { + return `var(${val}${typeof defaultValue === 'undefined' ? '' : ', ' + defaultValue})`; } - } + use.toString = ()=>val + ; + return use; } +} - return codePointsToString(code_points); - } -}; - -// 7.2 Interface TextEncoder - -/** - * @constructor - * @param {string=} encoding The label of the encoding; - * defaults to 'utf-8'. - * @param {Object=} options - */ -function TextEncoder(encoding, options) { - if (!(this instanceof TextEncoder)) - return new TextEncoder(encoding, options); - encoding = encoding !== undefined ? String(encoding).toLowerCase() : DEFAULT_ENCODING; - if (encoding !== DEFAULT_ENCODING) { - throw new Error('Encoding not supported. Only utf-8 is supported'); - } - options = ToDictionary(options); +;// CONCATENATED MODULE: ../theme/src/Theme/component-changes.ts - /** @private @type {boolean} */ +const BaseLine = (mode, colors)=>({ + components: { + MuiCssBaseline: { + styleOverrides: { + body: { + scrollbarColor: 'red', + '&::-webkit-scrollbar, & *::-webkit-scrollbar': { + width: '10px' + }, + '&::-webkit-scrollbar-thumb, & *::-webkit-scrollbar-thumb': { + borderRadius: '6px', + border: '2px solid rgba(0, 0, 0, 0)', + backgroundColor: mode === 'dark' ? 'rgba(250, 250, 250, 0.2)' : 'rgba(0, 0, 0, 0.2)', + backgroundClip: 'padding-box' + } + } + } + } + } + }) +; +const Grid = { + components: { + MuiGrid: {} + } +}; +const component_changes_button = css_var('m-button', { + main: 1, + contrast: 1, + light: 1 +}); +const Button = (mode, colors)=>({ + components: { + MuiButton: { + defaultProps: { + disableElevation: true + }, + styleOverrides: { + root: { + opacity: 1, + fontWeight: 400, + transitionProperty: 'background-color, color, box-shadow, opacity', + '&:hover': { + boxShadow: '0 0 5px ' + component_changes_button.main() + }, + '&[disabled]': { + opacity: 0.5 + } + } + }, + variants: [ + // new variant for rounded button + { + props: { + variant: 'rounded' + }, + style: { + borderRadius: '24px', + backgroundColor: component_changes_button.main(), + color: component_changes_button.contrast(), + '&:hover': { + backgroundColor: component_changes_button.main() + }, + '&[disabled]': { + backgroundColor: component_changes_button.main(), + color: component_changes_button.contrast() + } + } + }, + { + props: { + variant: 'contained' + }, + style: { + backgroundColor: component_changes_button.main(), + color: component_changes_button.contrast(), + '&:hover': { + backgroundColor: component_changes_button.main() + }, + '&[disabled]': { + backgroundColor: component_changes_button.main(), + color: component_changes_button.contrast() + } + } + }, + { + props: { + variant: 'outlined' + }, + style: { + borderColor: component_changes_button.light(), + color: component_changes_button.main(), + '&:hover': { + borderColor: component_changes_button.light() + }, + '&[disabled]': { + borderColor: component_changes_button.light(), + color: component_changes_button.main() + } + } + }, + { + props: { + variant: 'text' + }, + style: { + '&:hover': { + boxShadow: 'unset' + } + } + }, + { + props: { + color: 'primary' + }, + style: { + [component_changes_button.main]: colors.primary, + [component_changes_button.contrast]: colors.primaryContrastText + } + }, + { + props: { + color: 'secondary' + }, + style: { + [component_changes_button.main]: colors.secondary, + [component_changes_button.contrast]: colors.secondaryContrastText + } + }, + { + props: { + color: 'secondary', + variant: 'outlined' + }, + style: { + [component_changes_button.light]: colors.secondary, + [component_changes_button.main]: colors.primary + } + }, + { + props: { + color: 'error' + }, + style: { + [component_changes_button.main]: colors.redMain, + [component_changes_button.contrast]: colors.primaryContrastText + } + }, + { + props: { + color: 'warning' + }, + style: { + [component_changes_button.main]: colors.warning, + [component_changes_button.contrast]: colors.primaryContrastText + } + }, + { + props: { + size: 'small' + }, + style: { + height: '28px', + fontSize: '12px' + } + }, + { + props: { + size: 'medium' + }, + style: { + height: '38px', + fontSize: '14px' + } + }, + { + props: { + size: 'large' + }, + style: { + height: '48px', + fontSize: '16px' + } + }, + ] + } + } + }) +; +const Dialog = (mode, colors)=>({ + components: { + MuiDialog: { + styleOverrides: { + root: { + '& .dashboard-style': { + backgroundColor: mode === 'dark' ? colors.primaryBackground : colors.secondaryBackground + }, + // workaround for common component be used in dashboard and twitter + '& .dashboard.token-list': { + padding: 10 + }, + '& .dashboard.token-list-symbol': { + color: mode === 'dark' ? 'rgba(255, 255, 255, 0.8)' : '#7B8192', + fontSize: 12 + } + }, + paper: { + minHeight: 200, + minWidth: 440, + background: colors.mainBackground + } + }, + defaultProps: { + BackdropProps: { + sx: { + backdropFilter: 'blur(8px)', + backgroundColor: 'rgba(0, 0, 0, 0.3)' + } + } + } + }, + MuiDialogTitle: { + styleOverrides: { + root: { + backgroundColor: colors.mainBackground, + '&.dashboard-dialog-title-hook': { + backgroundColor: colors.mainBackground, + display: 'flex', + flexDirection: 'row-reverse', + alignItems: 'center', + p: { + width: '100%', + display: 'inline-flex', + justifyContent: 'start' + } + } + } + } + }, + MuiDialogContent: { + styleOverrides: { + root: { + backgroundColor: colors.mainBackground + } + } + }, + MuiDialogActions: { + styleOverrides: { + root: { + justifyContent: 'center', + paddingBottom: 24, + '&>:not(:first-of-type)': { + marginLeft: 18 + }, + backgroundColor: colors.mainBackground + } + } + } + } + }) +; +const TextField = { + components: { + MuiFilledInput: { + // alternative way, but less beauty + // defaultProps: { disableUnderline: false }, + styleOverrides: { + underline: { + '&:before': { + display: 'none' + } + } + } + }, + MuiFormHelperText: { + styleOverrides: { + contained: { + paddingLeft: 14, + paddingRight: 14, + marginLeft: 0, + marginRight: 0, + borderLeft: '2px solid' + }, + root: {} + } + } + } +}; +const List = (mode, colors)=>({ + components: { + MuiListItem: { + styleOverrides: { + button: { + '&:hover': mode === 'light' ? { + backgroundColor: '#f5fcff' + } : {} + } + } + } + } + }) +; +const Card = (mode, colors)=>({ + components: { + MuiCard: { + styleOverrides: {}, + variants: [ + { + props: { + variant: 'outlined' + }, + style: { + border: `1px solid ${colors.lineLight}` + } + }, + { + props: { + variant: 'background' + }, + style: { + padding: 8, + border: 'none', + background: mode === 'dark' ? colors.lightBackground : colors.normalBackground + } + }, + ] + } + } + }) +; +const Paper = (mode, colors)=>({ + components: { + MuiPaper: { + styleOverrides: {}, + variants: [ + { + props: { + variant: 'outlined' + }, + style: { + borderRadius: 12 + } + }, + { + props: { + variant: 'rounded' + }, + style: { + borderRadius: 16, + backgroundColor: colors.primaryBackground + } + }, + ] + } + } + }) +; +const Tabs = ()=>({ + components: { + MuiTab: { + styleOverrides: { + root: { + // up-sm + '@media screen and (min-width: 600px)': { + minWidth: 160 + } + } + } + } + } + }) +; +const Link = ()=>({ + components: { + MuiLink: { + defaultProps: { + underline: 'hover' + } + } + } + }) +; +const Typography = (mode, colors)=>({ + components: { + MuiTypography: { + styleOverrides: {}, + variants: [ + // UI component: h3 + { + props: { + variant: 'h3' + }, + style: { + fontSize: 24, + lineHeight: '30px', + color: colors.textPrimary + } + }, + // UI component: h4 + { + props: { + variant: 'h4' + }, + style: { + fontSize: 18, + lineHeight: '24px', + fontStyle: 'normal', + color: colors.textPrimary + } + }, + // UI component: h5 + { + props: { + variant: 'h5' + }, + style: { + fontSize: 16, + lineHeight: '22px', + color: colors.textPrimary + } + }, + // UI component: P4 + { + props: { + variant: 'body2', + paragraph: true + }, + style: { + fontSize: 14, + color: colors.textSecondary + } + }, + // UI component: P12 + { + props: { + variant: 'body2', + component: 'span' + }, + style: { + fontSize: 12, + color: colors.textSecondary, + lineHeight: '16px' + } + }, + ] + } + } + }) +; + + +/***/ }), + +/***/ 89259: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "B": () => (/* binding */ useStylesExtends), +/* harmony export */ "z": () => (/* binding */ mergeClasses) +/* harmony export */ }); +// Priority: classes from props > configHooks > defaultStyles +function useStylesExtends(defaultStyles, props, useConfigHooks) { + // Note: this is a React hooks + const configOverwrite = useConfigHooks?.() || { + classes: {} + }; + return mergeClasses(defaultStyles.classes, configOverwrite.classes, props.classes); +} +function mergeClasses(...args) { + args = args.filter(Boolean); + if (args.length === 1) return args[0]; + const result = {}; + for (const current of args){ + if (!current) continue; + for (const key of Object.keys(current)){ + if (key === '__proto__') continue; + if (key in result) result[key] = result[key] + ' ' + current[key]; + else result[key] = current[key]; + } + } + return result; +} + + +/***/ }), + +/***/ 96458: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; + +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "A": () => (/* reexport */ decodeTypedMessageFromDocument), + "F": () => (/* reexport */ encodeTypedMessageToDocument) +}); + +// EXTERNAL MODULE: ../../node_modules/.pnpm/@msgpack+msgpack@2.7.2/node_modules/@msgpack/msgpack/dist.es5+esm/decode.mjs + 3 modules +var decode = __webpack_require__(92415); +// EXTERNAL MODULE: ../../node_modules/.pnpm/ts-results@3.3.0/node_modules/ts-results/esm/index.js + 3 modules +var esm = __webpack_require__(48160); +// EXTERNAL MODULE: ../typed-message/base/core/index.ts + 2 modules +var core = __webpack_require__(88973); +;// CONCATENATED MODULE: ../typed-message/base/binary-encode/type.ts +var TypedMessageBinaryEncodingTypeEnum; +(function(TypedMessageBinaryEncodingTypeEnum) { + TypedMessageBinaryEncodingTypeEnum[TypedMessageBinaryEncodingTypeEnum["Tuple"] = 0] = "Tuple"; + TypedMessageBinaryEncodingTypeEnum[TypedMessageBinaryEncodingTypeEnum["Text"] = 1] = "Text"; +})(TypedMessageBinaryEncodingTypeEnum || (TypedMessageBinaryEncodingTypeEnum = {})); + +;// CONCATENATED MODULE: ../typed-message/base/binary-encode/decode.ts + + + + +const HEAD = '[@masknet/typed-message] '; +function decodeTypedMessageFromDocument(bin) { + return esm/* Result.wrap */.x4.wrap(()=>{ + const doc = (0,decode/* decode */.Jx)(bin); + if (!Array.isArray(doc)) throw new Error(`${HEAD}Invalid document`); + if (doc[0] === 0) return (0,core/* makeTypedMessageText */.P)(doc[1], decodeMetadata(doc[2])); + const [docVer, ...message] = doc; + if (typeof docVer !== 'number') throw new Error(`${HEAD}Invalid document`); + if (docVer !== 1) throw new Error(`${HEAD}Unknown document version`); + const result = decodeTypedMessage(message); + fixU8Array(result); + return result; + }); +} +function decodeTypedMessage(tm) { + const [type] = tm; + if (typeof type !== 'string' && typeof type !== 'number') throw new TypeError(`${HEAD}Invalid TypedMessage`); + if (type === TypedMessageBinaryEncodingTypeEnum.Text) return decodeTypedMessageText(tm); + if (type === TypedMessageBinaryEncodingTypeEnum.Tuple) return decodeTypedMessageTuple(tm); + return (0,core/* makeTypedMessageUnknown */.mv)(tm); +} +function decodeTypedMessageText([, version, meta, text, format]) { + assertNumber(version); + assertString(text); + return (0,core/* makeTypedMessageText */.P)(text, decodeMetadata(meta)); +} +function decodeTypedMessageTuple([, version, meta, items]) { + assertNumber(version); + if (!Array.isArray(items)) throw new TypeError(`${HEAD}Invalid TypedMessageTuple`); + return (0,core/* makeTypedMessageTuple */.Zw)(items.map(decodeTypedMessage), decodeMetadata(meta)); +} +function decodeMetadata(meta) { + if (meta === null) return undefined; + if (typeof meta !== 'object') throw new TypeError(`${HEAD}Invalid TypedMessage`); + if (Object.getPrototypeOf(meta) !== Object.prototype) throw new TypeError(`${HEAD}Invalid TypedMessage`); + return meta; +} +function assertNumber(x) { + if (typeof x !== 'number') throw new TypeError(`${HEAD}Invalid TypedMessage`); +} +function assertString(x) { + if (typeof x !== 'string') throw new TypeError(`${HEAD}Invalid TypedMessage`); +} +// Detach Uint8Array from it's underlying buffer +function fixU8Array(input) { + // for Array and object + if (typeof input !== 'object' || input === undefined || input === null) return; + for (const key of Object.keys(input)){ + const value = Reflect.get(input, key); + if (value instanceof Uint8Array) { + Reflect.set(input, key, value.slice()); + } else { + fixU8Array(value); + } + } +} + +// EXTERNAL MODULE: ../../node_modules/.pnpm/@msgpack+msgpack@2.7.2/node_modules/@msgpack/msgpack/dist.es5+esm/encode.mjs + 1 modules +var encode = __webpack_require__(82151); +;// CONCATENATED MODULE: ../typed-message/base/binary-encode/encode.ts + + + +const encode_HEAD = '[@masknet/typed-message] '; +function encodeTypedMessageToDocument(tm) { + if ((0,core/* isTypedMessageText */.Rz)(tm)) return (0,encode/* encode */.c)([ + 0, + tm.content, + encodeMeta(tm) + ]); + const doc = [ + 1, + ...encodeTypedMessage(tm) + ]; + return (0,encode/* encode */.c)(doc); +} +function encodeTypedMessage(tm) { + if (tm.serializable === false) { + if (tm.alt) return encodeTypedMessage(tm.alt); + throw new TypeError(`${encode_HEAD}TypedMessage ${tm.type} does not support serialization.`); + } + if ((0,core/* isTypedMessageText */.Rz)(tm)) return encodeTypedMessageText(tm); + if ((0,core/* isTypedMessageTupleSerializable */.qT)(tm)) return encodeTypedMessageTuple(tm); + throw new TypeError(`${encode_HEAD}Unsupported TypedMessage ${tm.type} to be serialized.`); +} +function encodeTypedMessageText(tm) { + // TODO: TextFormat + return [ + TypedMessageBinaryEncodingTypeEnum.Text, + tm.version, + encodeMeta(tm), + tm.content + ]; +} +function encodeTypedMessageTuple(tm) { + return [ + TypedMessageBinaryEncodingTypeEnum.Tuple, + tm.version, + encodeMeta(tm), + tm.items.map(encodeTypedMessage) + ]; +} +function encodeMeta(tm) { + if (!tm.meta) return null; + const record = { + __proto__: null + }; + for (const [key, val] of tm.meta){ + if (typeof key !== 'string') continue; + if (typeof val === 'undefined') continue; + try { + record[key] = collectValue(val); + } catch (err) { + console.warn(`${encode_HEAD}key ${key} is dropped due to the error`, err); + } + } + return record; +} +function collectValue(val) { + try { + const type = typeof val; + if (val === undefined) { + console.warn(`${encode_HEAD}undefined converted to null.`); + return null; + } + if (type === 'number' || val === null || type === 'boolean' || type === 'string') return val; + if (type === 'bigint' || type === 'function' || type === 'symbol') { + throw new TypeError(`${encode_HEAD}Unsupported type ${type}`); + } + if (val instanceof Uint8Array) return new Uint8Array(val); + if (val instanceof ArrayBuffer) { + throw new TypeError(`${encode_HEAD}ArrayBuffer must be Uint8Array.`); + } + if (Array.isArray(val)) return Array.from(val).map(collectValue); + const proto = Object.getPrototypeOf(val); + if (proto !== Object.prototype && proto !== null) { + throw new TypeError(`${encode_HEAD}unsupported value with a non trivial prototype.`); + } + const result = {}; + for (const key of Object.keys(val)){ + const v = val[key]; + result[key] = collectValue(v); + } + return result; + } catch (err) { + console.warn(encode_HEAD, 'When converting value', val, ', an error occurred', err); + throw err; + } +} + +;// CONCATENATED MODULE: ../typed-message/base/binary-encode/index.ts + + + + +/***/ }), + +/***/ 77401: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "W": () => (/* binding */ makeTypedMessageEmpty), +/* harmony export */ "Y": () => (/* binding */ isTypedMessageEmpty) +/* harmony export */ }); +/* harmony import */ var _utils_internal_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(88554); + +const isTypedMessageEmpty = (0,_utils_internal_js__WEBPACK_IMPORTED_MODULE_0__/* .createIsType */ .uO)('empty'); +const empty = { + type: 'empty', + serializable: true, + version: 1, + meta: undefined +}; +Object.setPrototypeOf(empty, null); +Object.freeze(empty); +function makeTypedMessageEmpty() { + return empty; +} + + +/***/ }), + +/***/ 76572: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "K": () => (/* binding */ isTypedMessagePromise), +/* harmony export */ "N": () => (/* binding */ makeTypedMessagePromise) +/* harmony export */ }); +/* harmony import */ var _utils_internal_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(88554); + +const isTypedMessagePromise = (0,_utils_internal_js__WEBPACK_IMPORTED_MODULE_0__/* .createIsType */ .uO)('promise'); +function makeTypedMessagePromise(promise, alt) { + const x = { + type: 'promise', + serializable: false, + promise: promise.then((y)=>x.promise.value = y + ), + alt, + meta: undefined + }; + return x; +} + + +/***/ }), + +/***/ 6057: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "P": () => (/* binding */ makeTypedMessageText), +/* harmony export */ "Rz": () => (/* binding */ isTypedMessageText) +/* harmony export */ }); +/* unused harmony export isTypedMessageTextV1 */ +/* harmony import */ var _utils_internal_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(88554); + +const isTypedMessageTextV1 = (0,_utils_internal_js__WEBPACK_IMPORTED_MODULE_0__/* .createIsType */ .uO)('text', 1); +const isTypedMessageText = isTypedMessageTextV1; +function makeTypedMessageText(text, meta) { + return { + type: 'text', + version: 1, + serializable: true, + content: text, + meta + }; +} + + +/***/ }), + +/***/ 95157: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "m": () => (/* binding */ makeTypedMessageUnknown), +/* harmony export */ "q": () => (/* binding */ isTypedMessageUnknown) +/* harmony export */ }); +/* harmony import */ var _utils_internal_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(88554); + +const isTypedMessageUnknown = (0,_utils_internal_js__WEBPACK_IMPORTED_MODULE_0__/* .createIsType */ .uO)('unknown'); +function makeTypedMessageUnknown(raw) { + return { + type: 'unknown', + serializable: false, + meta: undefined, + raw + }; +} + + +/***/ }), + +/***/ 60178: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "H": () => (/* binding */ encodeTypedMessageV38Format), +/* harmony export */ "W": () => (/* binding */ decodeTypedMessageV38ToV40Format) +/* harmony export */ }); +/* harmony import */ var ts_results__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(48160); +/* harmony import */ var _core_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(88973); + + +function encodeTypedMessageV38Format(message) { + const encoder = new TextEncoder(); + if (message.meta?.size) { + const rec = Object.fromEntries(message.meta.entries()); + return encoder.encode(`${JSON.stringify(rec)}\u{1F9E9}${message.content}`); + } + return encoder.encode(message.content); +} +function decodeTypedMessageV38ToV40Format(raw, version) { + const decoder = new TextDecoder(); + const text = ts_results__WEBPACK_IMPORTED_MODULE_0__/* .Result.wrap */ .x4.wrap(()=>decoder.decode(raw) + ); + const { val: val1 , err } = text; + if (err) return text; + if (version === -38) { + const maybeMetadata = (()=>{ + if (!val1.includes('\u{1F9E9}')) return ts_results__WEBPACK_IMPORTED_MODULE_0__/* .None */ .Hq; + const [maybeJSON] = val1.split('\u{1F9E9}'); + return ts_results__WEBPACK_IMPORTED_MODULE_0__/* .Result.wrap */ .x4.wrap(()=>JSON.parse(maybeJSON) + ).toOption().map((val)=>{ + if (typeof val !== 'object' || Array.isArray(val)) return new Map(); + return new Map(Object.entries(val)); + }); + })(); + return (0,ts_results__WEBPACK_IMPORTED_MODULE_0__.Ok)(maybeMetadata.some ? (0,_core_index_js__WEBPACK_IMPORTED_MODULE_1__/* .makeTypedMessageText */ .P)(val1.replace(/.+\u{1F9E9}/u, ''), maybeMetadata.val) : (0,_core_index_js__WEBPACK_IMPORTED_MODULE_1__/* .makeTypedMessageText */ .P)(val1)); + } + return (0,ts_results__WEBPACK_IMPORTED_MODULE_0__.Ok)((0,_core_index_js__WEBPACK_IMPORTED_MODULE_1__/* .makeTypedMessageText */ .P)(val1)); +} + + +/***/ }), + +/***/ 85601: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "$": () => (/* binding */ isTypedMessageMaskPayload), +/* harmony export */ "J": () => (/* binding */ makeTypedMessageMaskPayload) +/* harmony export */ }); +/* harmony import */ var _utils_internal_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(88554); + +const isTypedMessageMaskPayload = (0,_utils_internal_js__WEBPACK_IMPORTED_MODULE_0__/* .createIsType */ .uO)('x-mask-payload'); +function makeTypedMessageMaskPayload(message, meta) { + return { + type: 'x-mask-payload', + message, + meta + }; +} + + +/***/ }), + +/***/ 75058: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* unused harmony export createMaskPayloadTransform */ +/* harmony import */ var _Flatten_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(91810); +/* harmony import */ var _core_index_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(88973); +/* harmony import */ var _extension_index_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(61436); +/* harmony import */ var _visitor_index_js__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(59460); + + + + +function createMaskPayloadTransform(options) { + return function MaskPayloadTransform(message, context) { + if (context.skipMaskPayloadTransform) return message; + message = FlattenTypedMessage(message, context); + if (isTypedMessageMaskPayload(message)) return message; + // We don't transform nested message + // Note: there maybe more than 1 payload in the message. Make sure both of them are handled. + if (isTypedMessageAnchor(message)) { + if (message.content.match(linkPayload)) return options.transformText(message.content, context); + if (message.href.match(linkPayload)) return options.transformText(message.href, context); + } else if (isTypedMessageImage(message)) { + return options.transformImage(message, context); + } else if (isTypedMessageText(message)) { + // TODO: there maybe more than 1 payload to parse. + // Not detect link form here. Only detect raw form (used on FB) in this branch. + if (message.content.match(textPayload)) { + return options.transformText(message.content, context); + } + } else if (isTypedMessageTuple(message)) { + // TODO: there maybe more than 1 payload to parse. + // Visit each child here, when a raw form or link form is detected, + // we should check if the before/after is the text need to be removed. + // For example: + // Tuple( + // Text("Keep this text! This post is encrypted by") + // Anchor("@mask.io"), + // Text(" . Install to decrypt!"), + // Anchor(payload here), + // Text(" more text to be removed! But keep this one!") + // ) + // it should be transformed into + // Tuple( + // Text("Keep this text! "), + // MaskPayload(pending...), + // Text(" But keep this one!"), + // ) + } + return visitEachTypedMessageChild(message, MaskPayloadTransform, context); + }; +} +// match the link version payload +/* cspell:disable-next-line */ const linkPayload = /^https?:\/\/mask(\.io|book\.com)\/\?postdata_v/i; +// match the text version payload +const textPayload = /(\u{1F3BC}[\w+/=|]+:\|\|)/giu; + + +/***/ }), + +/***/ 88554: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "Vm": () => (/* binding */ composeSome), +/* harmony export */ "mo": () => (/* binding */ composeEvery), +/* harmony export */ "uO": () => (/* binding */ createIsType) +/* harmony export */ }); +/** @internal */ function createIsType(x, version) { + return (y)=>{ + if (version !== undefined && y.version !== version) return false; + return y.type === x; + }; +} +/** @internal */ function composeSome(...fns) { + return (...args)=>fns.some((f)=>f(...args) + ) + ; +} +/** @internal */ function composeEvery(...fns) { + return (...args)=>fns.every((f)=>f(...args) + ) + ; +} + + +/***/ }), + +/***/ 59460: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "I": () => (/* reexport safe */ _visitEachChild_js__WEBPACK_IMPORTED_MODULE_0__.I), +/* harmony export */ "s": () => (/* reexport safe */ _forEachChild_js__WEBPACK_IMPORTED_MODULE_1__.s) +/* harmony export */ }); +/* harmony import */ var _visitEachChild_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(57368); +/* harmony import */ var _forEachChild_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(82153); + + + + +/***/ }), + +/***/ 73765: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; + +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "K": () => (/* binding */ MagicEdenAPI) +}); + +// EXTERNAL MODULE: ../web3-shared/base/src/index.ts + 1 modules +var src = __webpack_require__(67938); +// EXTERNAL MODULE: ../web3-shared/solana/index.ts + 10 modules +var solana = __webpack_require__(7670); +// EXTERNAL MODULE: ../../node_modules/.pnpm/urlcat@2.0.4/node_modules/urlcat/dist/index.js +var dist = __webpack_require__(19802); +var dist_default = /*#__PURE__*/__webpack_require__.n(dist); +// EXTERNAL MODULE: ../web3-providers/src/helpers.ts +var helpers = __webpack_require__(7541); +;// CONCATENATED MODULE: ../web3-providers/src/MagicEden/constants.ts +const MAGIC_EDEN_API_URL = 'https://api-mainnet.magiceden.io'; + +// EXTERNAL MODULE: ../web3-shared/evm/pipes/index.ts +var pipes = __webpack_require__(70854); +;// CONCATENATED MODULE: ../web3-providers/src/MagicEden/utils.ts + +function toImage(url) { + if (!url) return ''; + if (url.startsWith('ipfs://')) { + const cid = url.replace(/^ipfs:\/\//, ''); + return (0,pipes/* resolveIPFSLink */.r5)(cid); + } + return url; +} + +;// CONCATENATED MODULE: ../web3-providers/src/MagicEden/index.ts + + + + + + +async function fetchFromMagicEden(path) { + try { + const url = (0,helpers/* courier */.t4)(dist_default()(MAGIC_EDEN_API_URL, path)); + const response = await fetch(url, { + method: 'GET', + headers: { + Accept: 'application/json' + } + }); + if (response.ok) { + return await response.json(); + } + return; + } catch { + return; + } +} +function createNFTToken(token, collection) { + const chainId = solana/* ChainId.Mainnet */.a_.Mainnet; + return { + id: token.mintAddress, + chainId, + ownerId: token.owner, + type: src/* TokenType.NonFungible */.iv.NonFungible, + schema: solana/* SchemaType.NonFungible */.XQ.NonFungible, + tokenId: token.mintAddress, + address: token.mintAddress, + metadata: { + chainId, + name: token.name, + symbol: collection.symbol, + description: collection.description, + imageURL: token.image || token.animationUrl, + mediaURL: token.animationUrl || token.image + }, + contract: { + chainId, + schema: solana/* SchemaType.NonFungible */.XQ.NonFungible, + address: token.mintAddress, + name: collection.name, + symbol: collection.symbol + }, + collection: { + chainId, + name: token.collection, + slug: token.collection, + description: collection.description, + iconURL: collection.image, + verified: false, + createdAt: new Date(collection.createdAt).getTime() + } + }; +} +function createNFTCollection(collection) { + return { + chainId: solana/* ChainId.Mainnet */.a_.Mainnet, + name: collection.name, + symbol: collection.symbol, + address: '', + schema: solana/* SchemaType.NonFungible */.XQ.NonFungible, + logoURL: collection.image, + iconURL: collection.image + }; +} +class MagicEdenAPI { + async getToken(address, tokenMint) { + const token = await fetchFromMagicEden(dist_default()('/v2/tokens/:mint_address', { + mint_address: tokenMint + })); + if (!token) return; + const collection = await fetchFromMagicEden(dist_default()('/collections/:symbol', { + symbol: token?.collection + })); + if (!collection) return; + return createNFTToken(token, collection); + } + async getTokens(owner, { indicator } = {}) { + if ((indicator?.index ?? 0) > 0) return (0,src/* createPageable */.LI)([], (0,src/* createIndicator */.sz)(indicator)); + const response = await fetchFromMagicEden(dist_default()('/rpc/getNFTsByOwner/:owner', { + owner + })); + const tokens = response?.results || []; + const data = tokens.map((token)=>{ + return { + id: token.mintAddress, + chainId: solana/* ChainId.Mainnet */.a_.Mainnet, + type: src/* TokenType.NonFungible */.iv.NonFungible, + schema: solana/* SchemaType.NonFungible */.XQ.NonFungible, + tokenId: token.mintAddress, + address: token.mintAddress, + metadata: { + chainId: solana/* ChainId.Mainnet */.a_.Mainnet, + name: token?.title, + symbol: '', + description: '', + imageURL: toImage(token.img), + mediaURL: toImage(token.img), + owner: token.owner + }, + contract: { + chainId: solana/* ChainId.Mainnet */.a_.Mainnet, + schema: solana/* SchemaType.NonFungible */.XQ.NonFungible, + address: token.mintAddress, + name: token.collectionName, + symbol: '' + }, + collection: { + chainId: solana/* ChainId.Mainnet */.a_.Mainnet, + name: token.collectionName ?? token?.collectionTitle, + slug: '', + description: '', + iconURL: '', + verified: false, + address: token.mintAddress + } + }; + }); + return (0,src/* createPageable */.LI)(data, (0,src/* createIndicator */.sz)(indicator)); + } + async getAsset(address, tokenMint, { chainId =solana/* ChainId.Mainnet */.a_.Mainnet } = {}) { + const [token, auction, nft] = await Promise.all([ + this.getToken(address, tokenMint), + fetchFromMagicEden(dist_default()('/auctions/token-mint/:mint_address', { + mint_address: tokenMint + })), + fetchFromMagicEden(dist_default()('/rpc/getNFTByMintAddress/:mint_address', { + mint_address: tokenMint + })), + ]); + const link = dist_default()('https://magiceden.io/item-details/:mint_address', { + mint_address: tokenMint + }); + if (!token) return; + return { + ...token, + link, + auction: auction ? { + endAt: Date.parse(auction.config.endDate), + // TODO + orderTokens: [], + // TODO + offerTokens: [] + } : undefined, + creator: nft?.creators?.length ? { + address: nft.creators[0].address, + nickname: 'Unknown' + } : undefined, + owner: { + address: nft?.owner, + nickname: 'Unknown' + }, + traits: auction?.attributes.map((x)=>({ + type: x.trait_type, + value: x.value + }) + ), + orders: auction?.bids ? auction.bids.map((x)=>({ + id: x.bid, + chainId: solana/* ChainId.Mainnet */.a_.Mainnet, + assetPermalink: link, + hash: x.bid, + quantity: '1', + createdAt: x.timestamp * 1000, + paymentToken: (0,src/* createFungibleToken */.mn)(solana/* ChainId.Mainnet */.a_.Mainnet, solana/* SchemaType.Native */.XQ.Native, auction.config.payees[0].address, 'Sol', 'Sol', 9) + }) + ) : [] + }; + } + async getContract(tokenMint) { + const token = await fetchFromMagicEden(dist_default()('/v2/tokens/:mint_address', { + mint_address: tokenMint + })); + if (!token) return; + const collection = await fetchFromMagicEden(dist_default()('/collections/:symbol', { + symbol: token?.collection + })); + if (!collection) return; + return createNFTCollection(collection); + } + async getHistory(address, tokenId, { indicator , size =50 } = {}) { + const activities = await fetchFromMagicEden(dist_default()('/v2/tokens/:mint_address/activities', { + mint_address: tokenId, + offset: (indicator?.index ?? 0) * size, + limit: size + })); + return (activities || []).map((activity)=>{ + return { + id: activity.signature, + chainId: solana/* ChainId.Mainnet */.a_.Mainnet, + assetSymbol: activity.collectionSymbol, + timestamp: activity.blockTime * 1000, + from: { + address: activity.seller + }, + to: { + address: activity.buyerReferral + }, + // TODO's + quantity: '1', + type: '' + }; + }); + } + async getOrders(_, mintAddress, side, { indicator , size } = {}) { + const limit = size || 20; + const offset = (indicator?.index ?? 0) * limit; + const offers = await fetchFromMagicEden(dist_default()('/tokens/:mint_address/offer_received', { + mint_address: mintAddress, + side, + offset, + limit + })); + return (offers || []).map((offer)=>{ + return { + id: offer.pdaAddress, + chainId: solana/* ChainId.Mainnet */.a_.Mainnet, + quantity: '1', + // TODO's + assetPermalink: '' + }; + }); + } + async getCollections(symbol, { indicator , size } = {}) { + const limit = size || 20; + const offset = (indicator?.index ?? 0) * limit; + const collections = await fetchFromMagicEden(dist_default()('/collections/:symbol/listings', { + symbol, + offset, + limit + })); + const chainId = solana/* ChainId.Mainnet */.a_.Mainnet; + const data = (collections || []).map((collection)=>({ + chainId, + name: collection.name, + slug: collection.symbol, + address: '', + symbol: collection.symbol, + iconURL: toImage(collection.image) + }) + ); + return (0,src/* createPageable */.LI)(data, (0,src/* createIndicator */.sz)(indicator), data.length === limit ? (0,src/* createNextIndicator */.gT)(indicator) : undefined); + } +} + + +/***/ }), + +/***/ 34231: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; + +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "U": () => (/* binding */ NFTScanAPI) +}); + +// EXTERNAL MODULE: ../../node_modules/.pnpm/urlcat@2.0.4/node_modules/urlcat/dist/index.js +var dist = __webpack_require__(19802); +var dist_default = /*#__PURE__*/__webpack_require__.n(dist); +// EXTERNAL MODULE: ../web3-shared/base/src/index.ts + 1 modules +var src = __webpack_require__(67938); +// EXTERNAL MODULE: ../web3-shared/evm/types/index.ts +var types = __webpack_require__(72499); +// EXTERNAL MODULE: ../../node_modules/.pnpm/date-fns@2.28.0/node_modules/date-fns/esm/addSeconds/index.js +var addSeconds = __webpack_require__(71767); +// EXTERNAL MODULE: ../../node_modules/.pnpm/date-fns@2.28.0/node_modules/date-fns/esm/isBefore/index.js +var isBefore = __webpack_require__(33086); +// EXTERNAL MODULE: ../../node_modules/.pnpm/date-fns@2.28.0/node_modules/date-fns/esm/getUnixTime/index.js + 1 modules +var getUnixTime = __webpack_require__(4975); +// EXTERNAL MODULE: ../web3-providers/src/helpers.ts +var helpers = __webpack_require__(7541); +;// CONCATENATED MODULE: ../web3-providers/src/NFTScan/constants.ts + + +const NFTSCAN_ID = 't9k2o5GC'; +const NFTSCAN_BASE = 'https://www.nftscan.com'; +const NFTSCAN_LOGO_BASE = 'https://logo.nftscan.com/logo'; +const NFTSCAN_SECRET = '21da1d638ef5d0bf76e37aa5c2da7fd789ade9e3'; +const NFTSCAN_URL = 'https://restapi.nftscan.com'; +const NFTSCAN_BASE_API = dist_default()(NFTSCAN_URL, '/api/v1'); +const NFTSCAN_ACCESS_TOKEN_URL = (0,helpers/* courier */.t4)(dist_default()(NFTSCAN_URL, '/gw/token', { + apiKey: NFTSCAN_ID, + apiSecret: NFTSCAN_SECRET +})); + +;// CONCATENATED MODULE: ../web3-providers/src/NFTScan/index.ts + + + + + + + + +const IPFS_BASE = 'https://ipfs.io/ipfs/:id'; +const tokenCache = new Map(); +async function getToken() { + const token = tokenCache.get('token'); + if (token && (0,isBefore/* default */.Z)(Date.now(), token.expiration)) { + return token.token; + } + const response = await fetch(NFTSCAN_ACCESS_TOKEN_URL, { + ...!(0,helpers/* isProxyENV */.HN)() && { + mode: 'cors' + } + }); + const { data , } = await response.json(); + tokenCache.set('token', { + token: data.accessToken, + expiration: (0,addSeconds/* default */.Z)(Date.now(), data.expiration) + }); + return data.accessToken; +} +async function fetchAsset(path, body) { + const url = (0,helpers/* courier */.t4)(dist_default()(NFTSCAN_BASE_API, path)); + const response = await fetch(url, { + method: 'POST', + headers: { + 'Access-Token': await getToken(), + 'Content-type': 'application/json' + }, + body: JSON.stringify(body) + }); + if (!response.ok) return; + return response.json(); +} +function createERC721TokenAsset(asset) { + const payload = JSON.parse(asset.nft_json ?? '{}'); + const name = ((payload?.name ?? asset.nft_name) ?? asset.nft_platform_name) ?? ''; + const description = payload?.description ?? asset.nft_detail; + const mediaURL = dist_default()(IPFS_BASE, { + id: asset.nft_cover + }); + const chainId = types/* ChainId.Mainnet */.a_.Mainnet; + const creator = asset.nft_creator; + const owner = asset.nft_holder; + return { + id: asset.nft_contract_address, + chainId, + tokenId: asset.token_id ?? asset.nft_asset_id, + type: src/* TokenType.NonFungible */.iv.NonFungible, + address: asset.nft_contract_address, + schema: types/* SchemaType.ERC721 */.XQ.ERC721, + creator: { + address: creator, + avatarURL: '', + nickname: creator, + link: dist_default()(NFTSCAN_BASE + '/:id', { + id: creator + }) + }, + owner: { + address: owner, + avatarURL: '', + nickname: owner, + link: dist_default()(NFTSCAN_BASE + '/:id', { + id: owner + }) + }, + traits: [], + price: { + [src/* CurrencyType.USD */.V2.USD]: asset.last_price + }, + metadata: { + chainId, + name, + symbol: asset.trade_symbol, + description, + imageURL: mediaURL, + mediaURL + }, + contract: { + chainId, + schema: types/* SchemaType.ERC721 */.XQ.ERC721, + address: asset.nft_contract_address, + name, + symbol: asset.trade_symbol + }, + collection: { + chainId, + name, + slug: name, + description, + iconURL: dist_default()(NFTSCAN_LOGO_BASE + '/:id', { + id: asset.nft_contract_address + '.png' + }), + verified: !!asset.nft_asset_id, + createdAt: (0,getUnixTime/* default */.Z)(new Date(asset.nft_create_time)) + } + }; +} +class NFTScanAPI { + async getAsset(address, tokenId) { + const response = await fetchAsset('getSingleNft', { + nft_address: address, + token_id: tokenId + }); + if (!response) return; + return createERC721TokenAsset(response.data); + } + async getAssets(from, { chainId =types/* ChainId.Mainnet */.a_.Mainnet , indicator , size =50 } = {}) { + const response = await fetchAsset('getAllNftByUserAddress', { + page_size: size, + page_index: (indicator?.index ?? 0) + 1, + user_address: from + }); + if (!response?.data) return (0,src/* createPageable */.LI)([], (0,src/* createIndicator */.sz)(indicator)); + const total = response.data.total; + const rest = total - ((indicator?.index ?? 0) + 1) * size; + return (0,src/* createPageable */.LI)(response.data.content.map(createERC721TokenAsset) ?? [], (0,src/* createIndicator */.sz)(indicator), rest > 0 ? (0,src/* createNextIndicator */.gT)(indicator) : undefined); + } +} + + +/***/ }), + +/***/ 38641: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; + +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "N": () => (/* reexport */ NextIDProofAPI), + "I": () => (/* reexport */ NextIDStorageAPI) +}); + +// EXTERNAL MODULE: ../../node_modules/.pnpm/urlcat@2.0.4/node_modules/urlcat/dist/index.js +var dist = __webpack_require__(19802); +var dist_default = /*#__PURE__*/__webpack_require__.n(dist); +// EXTERNAL MODULE: ../../node_modules/.pnpm/lru-cache@7.10.1/node_modules/lru-cache/index.js +var lru_cache = __webpack_require__(85478); +var lru_cache_default = /*#__PURE__*/__webpack_require__.n(lru_cache); +// EXTERNAL MODULE: ../../node_modules/.pnpm/ts-results@3.3.0/node_modules/ts-results/esm/index.js + 3 modules +var esm = __webpack_require__(48160); +;// CONCATENATED MODULE: ../web3-providers/src/NextID/helper.ts + + +const fetchCache = new (lru_cache_default())({ + max: 100, + ttl: 20000 +}); +function deleteCache(key) { + fetchCache.delete(key); +} +async function fetchJSON(url, requestInit, enableCache) { + const fetch = globalThis.r2d2Fetch ?? globalThis.fetch; + const cached = enableCache ? fetchCache.get(url) : undefined; + const isPending = cached instanceof Promise; + if (cached && !isPending) { + return (0,esm.Ok)(cached); + } + let pendingResponse; + if (isPending) { + pendingResponse = cached; + } else { + pendingResponse = fetch(url, requestInit); + if (enableCache) { + fetchCache.set(url, pendingResponse); + } + } + const response = await pendingResponse; + const result = await response.clone().json(); + if (result.message || !response.ok) { + return (0,esm/* Err */.UG)(result.message); + } + fetchCache.set(url, result); + return (0,esm.Ok)(result); +} + +;// CONCATENATED MODULE: ../web3-providers/src/NextID/constants.ts +const MASK_STORAGE_KEY = 'com.mask.plugin'; +const KV_BASE_URL_DEV = 'https://kv-service.nextnext.id'; +const KV_BASE_URL_PROD = 'https://kv-service.next.id'; +const PROOF_BASE_URL_DEV = 'https://proof-service.nextnext.id/'; +const PROOF_BASE_URL_PROD = 'https://proof-service.next.id/'; + +;// CONCATENATED MODULE: ../web3-providers/src/NextID/kv.ts +/** + * Document url: https://github.com/nextdotid/kv_server/blob/develop/docs/api.apib + */ + + + +const BASE_URL = true ? KV_BASE_URL_PROD : 0; +function formatPatchData(pluginId, data) { + return { + [pluginId]: data + }; +} +class NextIDStorageAPI { + /** + * Get current KV of a persona + * @param personaPublicKey + * + */ async getByIdentity(personaPublicKey, platform, identity, pluginId) { + const response = await fetchJSON(dist_default()(BASE_URL, '/v1/kv', { + persona: personaPublicKey + }), undefined, true); + if (!response.ok) return (0,esm/* Err */.UG)('User not found'); + const proofs = (response.val.proofs ?? []).filter((x)=>x.platform === platform + ).filter((x)=>x.identity === identity.toLowerCase() + ); + if (!proofs.length) return (0,esm/* Err */.UG)('Not found'); + return (0,esm.Ok)(proofs[0].content[pluginId]); + } + async get(personaPublicKey) { + return fetchJSON(dist_default()(BASE_URL, '/v1/kv', { + persona: personaPublicKey + })); + } + /** + * Get signature payload for updating + * @param personaPublicKey + * @param platform + * @param identity + * @param patchData + * @param pluginId + * + * We choose [RFC 7396](https://www.rfc-editor.org/rfc/rfc7396) standard for KV modifying. + */ async getPayload(personaPublicKey, platform, identity, patchData, pluginId) { + const requestBody = { + persona: personaPublicKey, + platform, + identity, + patch: formatPatchData(pluginId, patchData) + }; + const response = await fetchJSON(dist_default()(BASE_URL, '/v1/kv/payload'), { + body: JSON.stringify(requestBody), + method: 'POST' + }); + return response.map((x)=>({ + signPayload: JSON.stringify(JSON.parse(x.sign_payload)), + createdAt: x.created_at, + uuid: x.uuid + }) + ); + } + /** + * Update a full set of key-value pairs + * @param uuid + * @param personaPublicKey + * @param signature + * @param platform + * @param identity + * @param createdAt + * @param patchData + * @param pluginId + * + * We choose [RFC 7396](https://www.rfc-editor.org/rfc/rfc7396) standard for KV modifying. + */ set(uuid, personaPublicKey, signature, platform, identity, createdAt, patchData, pluginId) { + const requestBody = { + uuid, + persona: personaPublicKey, + platform, + identity, + signature, + patch: formatPatchData(pluginId, patchData), + created_at: createdAt + }; + deleteCache(dist_default()(BASE_URL, '/v1/kv', { + persona: personaPublicKey + })); + return fetchJSON(dist_default()(BASE_URL, '/v1/kv'), { + body: JSON.stringify(requestBody), + method: 'POST' + }); + } +} + +// EXTERNAL MODULE: ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/head.js +var head = __webpack_require__(29730); +// EXTERNAL MODULE: ../shared-base/src/index.ts + 2 modules +var src = __webpack_require__(44451); +;// CONCATENATED MODULE: ../web3-providers/src/NextID/proof.ts + + + + + +const proof_BASE_URL = true ? PROOF_BASE_URL_PROD : 0; +const getPersonaQueryURL = (platform, identity)=>dist_default()(proof_BASE_URL, '/v1/proof', { + platform, + identity + }) +; +const getExistedBindingQueryURL = (platform, identity, personaPublicKey)=>dist_default()(proof_BASE_URL, '/v1/proof/exists', { + platform, + identity, + public_key: personaPublicKey + }) +; +class NextIDProofAPI { + // TODO: remove 'bind' in project for business context. + async bindProof(uuid, personaPublicKey, action, platform, identity, createdAt, options) { + const requestBody = { + uuid, + action, + platform, + identity, + public_key: personaPublicKey, + proof_location: options?.proofLocation, + extra: { + wallet_signature: options?.walletSignature ? (0,src/* toBase64 */.s3)((0,src/* fromHex */.H_)(options.walletSignature)) : undefined, + signature: options?.signature ? (0,src/* toBase64 */.s3)((0,src/* fromHex */.H_)(options.signature)) : undefined + }, + created_at: createdAt + }; + const result = await fetchJSON(dist_default()(proof_BASE_URL, '/v1/proof'), { + body: JSON.stringify(requestBody), + method: 'POST' + }); + // Should delete cache when proof status changed + const cacheKeyOfQueryPersona = getPersonaQueryURL(src/* NextIDPlatform.NextID */.Vd.NextID, personaPublicKey); + const cacheKeyOfQueryPlatform = getPersonaQueryURL(platform, identity); + const cacheKeyOfExistedBinding = getExistedBindingQueryURL(platform, identity, personaPublicKey); + deleteCache(cacheKeyOfQueryPersona); + deleteCache(cacheKeyOfQueryPlatform); + deleteCache(cacheKeyOfExistedBinding); + return result; + } + async queryExistedBindingByPersona(personaPublicKey, enableCache) { + const url = getPersonaQueryURL(src/* NextIDPlatform.NextID */.Vd.NextID, personaPublicKey); + const response = await fetchJSON(url, {}, enableCache); + // Will have only one item when query by personaPublicKey + return (0,head/* default */.Z)(response.unwrap().ids); + } + async queryExistedBindingByPlatform(platform, identity, page) { + if (!platform && !identity) return []; + const response = await fetchJSON(dist_default()(proof_BASE_URL, '/v1/proof', { + platform, + identity + }), undefined, true); + // TODO: merge Pagination into this + return response.unwrap().ids; + } + async queryIsBound(personaPublicKey, platform, identity, enableCache) { + if (!platform && !identity) return false; + const url = getExistedBindingQueryURL(platform, identity, personaPublicKey); + const result = await fetchJSON(url, {}, enableCache); + return result.map(()=>true + ).unwrapOr(false); + } + async createPersonaPayload(personaPublicKey, action, identity, platform, language) { + const requestBody = { + action, + platform, + identity, + public_key: personaPublicKey + }; + const nextIDLanguageFormat = language?.replace('-', '_'); + const response = await fetchJSON(dist_default()(proof_BASE_URL, '/v1/proof/payload'), { + body: JSON.stringify(requestBody), + method: 'POST' + }); + return response.map((x)=>({ + postContent: x.post_content[nextIDLanguageFormat ?? 'default'] ?? x.post_content.default, + signPayload: JSON.stringify(JSON.parse(x.sign_payload)), + createdAt: x.created_at, + uuid: x.uuid + }) + ).unwrapOr(null); + } +} + +;// CONCATENATED MODULE: ../web3-providers/src/NextID/index.ts + + + + +/***/ }), + +/***/ 65520: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; + +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "m8": () => (/* binding */ Alchemy_EVM_API), + "k0": () => (/* binding */ Alchemy_FLOW_API) +}); + +// UNUSED EXPORTS: Alchemy_EVM_NetworkMap, Alchemy_FLOW_NetworkMap, FILTER_WORDS + +// EXTERNAL MODULE: ../web3-shared/base/src/index.ts + 1 modules +var src = __webpack_require__(67938); +// EXTERNAL MODULE: ../web3-shared/evm/types/index.ts +var types = __webpack_require__(72499); +// EXTERNAL MODULE: ../web3-shared/evm/pipes/index.ts +var pipes = __webpack_require__(70854); +// EXTERNAL MODULE: ../web3-shared/flow/index.ts + 14 modules +var flow = __webpack_require__(85081); +// EXTERNAL MODULE: ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/head.js +var head = __webpack_require__(29730); +// EXTERNAL MODULE: ../../node_modules/.pnpm/urlcat@2.0.4/node_modules/urlcat/dist/index.js +var dist = __webpack_require__(19802); +var dist_default = /*#__PURE__*/__webpack_require__.n(dist); +// EXTERNAL MODULE: ../web3-providers/src/helpers.ts +var helpers = __webpack_require__(7541); +;// CONCATENATED MODULE: ../web3-providers/src/alchemy/constants.ts + + + +const Alchemy_EVM_NetworkMap = { + network: src/* NetworkPluginID.PLUGIN_EVM */.FF.PLUGIN_EVM, + chains: [ + { + chainId: types/* ChainId.Mainnet */.a_.Mainnet, + // cspell:disable-next-line + API_KEY: '3TJz6QYDHCj0ZhCdGvc5IC6EtMMMTKG1', + baseURL: 'https://eth-mainnet.alchemyapi.io/v2/', + contractMetadataURL: 'https://eth-mainnet.g.alchemy.com/nft/v2/', + tokenOwnerURL: 'https://eth-mainnet.g.alchemy.com/nft/v2/' + }, + { + chainId: types/* ChainId.Matic */.a_.Matic, + // cspell:disable-next-line + API_KEY: 'PsJ3gMn6JrSE9FCzShjsjD91irkybmh_', + baseURL: 'https://polygon-mainnet.g.alchemy.com/v2/' + }, + ] +}; +const Alchemy_FLOW_NetworkMap = { + network: src/* NetworkPluginID.PLUGIN_FLOW */.FF.PLUGIN_FLOW, + chains: [ + { + chainId: flow/* ChainId.Mainnet */.a_.Mainnet, + // cspell:disable-next-line + API_KEY: '5359fbk38tw2ggpgxutjjw5qf4jiocpw', + baseURL: 'https://flow-mainnet.g.alchemy.com/v2/' + }, + ] +}; +const FILTER_WORDS = [ + 'description', + 'id', + 'title', + 'number', + 'img', + 'uri' +]; + +;// CONCATENATED MODULE: ../web3-providers/src/alchemy/index.ts + + + + + + + + +class Alchemy_EVM_API { + constructor(){ + this.getAsset = async (address, tokenId, { chainId =types/* ChainId.Mainnet */.a_.Mainnet } = {})=>{ + const chainInfo = Alchemy_EVM_NetworkMap?.chains?.find((chain)=>chain.chainId === chainId + ); + const allSettled = await Promise.allSettled([ + (0,helpers/* fetchJSON */.ZV)(dist_default()(`${chainInfo?.baseURL}${chainInfo?.API_KEY}/getNFTMetadata`, { + contractAddress: address, + tokenId, + tokenType: 'ERC721' + })), + (0,helpers/* fetchJSON */.ZV)(dist_default()(`${chainInfo?.contractMetadataURL}${chainInfo?.API_KEY}/getContractMetadata`, { + contractAddress: address + })), + (0,helpers/* fetchJSON */.ZV)(dist_default()(`${chainInfo?.tokenOwnerURL}${chainInfo?.API_KEY}/getOwnersForToken`, { + contractAddress: address, + tokenId + })), + ]); + const [metadataResponse, contractMetadataResponse, ownersResponse] = allSettled.map((x)=>x.status === 'fulfilled' ? x.value : undefined + ); + if (!metadataResponse) return; + return createNFTAsset_EVM(chainId, metadataResponse, contractMetadataResponse, ownersResponse); + }; + this.getAssets = async (from, { chainId =types/* ChainId.Mainnet */.a_.Mainnet , indicator } = {})=>{ + const chainInfo = Alchemy_EVM_NetworkMap?.chains?.find((chain)=>chain.chainId === chainId + ); + if (!chainInfo) return (0,src/* createPageable */.LI)([], (0,src/* createIndicator */.sz)(indicator, '')); + const res = await (0,helpers/* fetchJSON */.ZV)(dist_default()(`${chainInfo?.baseURL}${chainInfo?.API_KEY}/getNFTs/`, { + owner: from, + pageKey: typeof indicator?.index !== 'undefined' && indicator.index !== 0 ? indicator.id : undefined + })); + const assets = res?.ownedNfts?.map((nft)=>createNftToken_EVM(chainId ?? types/* ChainId.Mainnet */.a_.Mainnet, nft) + ); + return (0,src/* createPageable */.LI)(assets, (0,src/* createIndicator */.sz)(indicator), res?.pageKey ? (0,src/* createNextIndicator */.gT)(indicator, res.pageKey) : undefined); + }; + } +} +class Alchemy_FLOW_API { + constructor(){ + this.getAsset = async (address, tokenId, { chainId =flow/* ChainId.Mainnet */.a_.Mainnet } = {}, ownerAddress, contractName)=>{ + if (!ownerAddress || !contractName) return; + const chainInfo = Alchemy_FLOW_NetworkMap?.chains?.find((chain)=>chain.chainId === chainId + ); + const metaDataResponse = await (0,helpers/* fetchJSON */.ZV)(dist_default()(`${chainInfo?.baseURL}${chainInfo?.API_KEY}/getNFTMetadata/`, { + owner: ownerAddress, + contractName, + contractAddress: address, + tokenId + })); + if (!metaDataResponse) return; + return createNFTAsset_FLOW(chainId, ownerAddress, metaDataResponse); + }; + this.getAssets = async (from, { chainId , indicator } = {})=>{ + const chainInfo = Alchemy_FLOW_NetworkMap?.chains?.find((chain)=>chain.chainId === chainId + ); + const res = await (0,helpers/* fetchJSON */.ZV)(dist_default()(`${chainInfo?.baseURL}${chainInfo?.API_KEY}/getNFTs/`, { + owner: from, + pageKey: typeof indicator?.index !== 'undefined' && indicator.index !== 0 ? indicator.id : undefined + })); + const assets = res?.nfts?.map((nft)=>createNftToken_FLOW(chainId ?? flow/* ChainId.Mainnet */.a_.Mainnet, nft) + ); + return (0,src/* createPageable */.LI)(assets, (0,src/* createIndicator */.sz)(indicator)); + }; + } +} +function resolveCollectionName(asset) { + if (asset?.metadata?.name) return asset?.metadata?.name; + if (asset?.title) return asset?.title; + if (asset?.contract?.address) return asset?.contract?.address; + return ''; +} +function createNftToken_EVM(chainId, asset) { + const contractAddress = asset.contract?.address; + const tokenId = Number.parseInt(asset.id?.tokenId, 16).toString(); + return { + id: `${contractAddress}_${tokenId}`, + chainId, + type: src/* TokenType.NonFungible */.iv.NonFungible, + schema: asset?.id?.tokenMetadata?.tokenType === 'ERC721' ? types/* SchemaType.ERC721 */.XQ.ERC721 : types/* SchemaType.ERC1155 */.XQ.ERC1155, + tokenId, + address: contractAddress, + link: (0,pipes/* resolveOpenSeaLink */.QN)(contractAddress, tokenId, chainId), + metadata: { + chainId, + name: asset?.metadata?.name ?? asset?.title, + symbol: '', + description: asset.description, + imageURL: (0,pipes/* resolveIPFSLinkFromURL */.Yx)(asset?.metadata?.image || asset?.metadata?.image_url || asset?.media?.[0]?.gateway || asset?.metadata?.animation_url || ''), + mediaURL: (0,pipes/* resolveIPFSLinkFromURL */.Yx)(((asset?.media?.[0]?.gateway ?? asset?.media?.[0]?.raw) ?? asset?.metadata?.image_url) ?? asset?.metadata?.image) + }, + contract: { + chainId, + schema: asset?.id?.tokenMetadata?.tokenType === 'ERC721' ? types/* SchemaType.ERC721 */.XQ.ERC721 : types/* SchemaType.ERC1155 */.XQ.ERC1155, + address: contractAddress, + name: asset?.metadata?.name ?? asset?.title, + symbol: '' + }, + collection: { + address: contractAddress, + chainId, + name: '', + slug: '', + description: asset.description + } + }; +} +function createNFTAsset_EVM(chainId, metaDataResponse, contractMetadataResponse, ownersResponse) { + return { + id: metaDataResponse.contract?.address, + chainId, + type: src/* TokenType.NonFungible */.iv.NonFungible, + schema: metaDataResponse?.id?.tokenMetadata?.tokenType === 'ERC721' ? types/* SchemaType.ERC721 */.XQ.ERC721 : types/* SchemaType.ERC1155 */.XQ.ERC1155, + tokenId: metaDataResponse.id?.tokenId, + address: metaDataResponse.contract?.address, + metadata: { + chainId, + name: metaDataResponse?.metadata?.name ?? metaDataResponse?.title, + symbol: '', + description: metaDataResponse.description, + imageURL: (0,pipes/* resolveIPFSLinkFromURL */.Yx)(metaDataResponse?.metadata?.image || metaDataResponse?.media?.[0]?.gateway || metaDataResponse?.media?.[0]?.raw || ''), + mediaURL: (0,pipes/* resolveIPFSLinkFromURL */.Yx)(metaDataResponse?.media?.[0]?.gateway) + }, + contract: { + chainId, + schema: metaDataResponse?.id?.tokenMetadata?.tokenType === 'ERC721' ? types/* SchemaType.ERC721 */.XQ.ERC721 : types/* SchemaType.ERC1155 */.XQ.ERC1155, + address: metaDataResponse?.contract?.address, + name: metaDataResponse?.metadata?.name ?? metaDataResponse?.title, + symbol: contractMetadataResponse?.contractMetadata?.symbol ?? '' + }, + collection: { + chainId, + name: '', + slug: '', + description: metaDataResponse.description + }, + link: (0,pipes/* resolveOpenSeaLink */.QN)(metaDataResponse?.contract?.address, metaDataResponse.id?.tokenId, chainId), + owner: { + address: (0,head/* default */.Z)(ownersResponse?.owners) + }, + traits: metaDataResponse.metadata?.traits?.map((x)=>({ + type: x.trait_type, + value: x.value + }) + ) + }; +} +function createNftToken_FLOW(chainId, asset) { + return { + id: asset.contract?.address, + chainId, + type: src/* TokenType.NonFungible */.iv.NonFungible, + schema: flow/* SchemaType.NonFungible */.XQ.NonFungible, + tokenId: Number.parseInt(asset.id?.tokenId, 16).toString(), + address: asset.contract?.address, + metadata: { + chainId, + name: asset?.contract?.name ?? '', + symbol: '', + description: asset.description, + imageURL: (0,pipes/* resolveIPFS */.Ee)(asset?.metadata?.metadata?.find((data)=>data?.name === 'img' + )?.value || asset?.metadata?.metadata?.find((data)=>data?.name === 'eventImage' + )?.value || asset?.metadata?.metadata?.find((data)=>data?.name === 'ipfsLink' + )?.value || asset?.media?.find((data)=>data?.mimeType === 'image/png | image' + )?.uri || '') || (0,pipes/* resolveAR */.SY)(asset?.metadata?.metadata?.find((data)=>data?.name === 'arLink' + )?.value || ''), + mediaURL: (0,pipes/* resolveIPFS */.Ee)(asset?.media?.find((data)=>data?.mimeType === 'image/png | image' + )?.uri || '') + }, + contract: { + chainId, + schema: flow/* SchemaType.NonFungible */.XQ.NonFungible, + address: asset?.contract?.address, + name: asset?.contract?.name ?? '', + symbol: '' + }, + collection: { + chainId, + name: '', + slug: '', + description: asset.description + } + }; +} +function createNFTAsset_FLOW(chainId, ownerAddress, metaDataResponse) { + return { + id: metaDataResponse.contract?.address, + chainId, + type: src/* TokenType.NonFungible */.iv.NonFungible, + schema: flow/* SchemaType.NonFungible */.XQ.NonFungible, + tokenId: Number.parseInt(metaDataResponse.id?.tokenId, 16).toString(), + address: metaDataResponse.contract?.address, + metadata: { + chainId, + name: metaDataResponse?.contract?.name, + symbol: '', + description: metaDataResponse.description, + imageURL: (0,pipes/* resolveIPFS */.Ee)(metaDataResponse?.metadata?.metadata?.find((data)=>data?.name === 'img' + )?.value || metaDataResponse?.metadata?.metadata?.find((data)=>data?.name === 'eventImage' + )?.value || metaDataResponse?.metadata?.metadata?.find((data)=>data?.name === 'ipfsLink' + )?.value || metaDataResponse?.media?.find((data)=>data?.mimeType === 'image/png | image' + )?.uri || '') || (0,pipes/* resolveAR */.SY)(metaDataResponse?.metadata?.metadata?.find((data)=>data?.name === 'arLink' + )?.value || ''), + mediaURL: (0,pipes/* resolveIPFS */.Ee)(metaDataResponse?.media?.find((data)=>data?.mimeType === 'image/png | image' + )?.uri || '') + }, + contract: { + chainId, + schema: flow/* SchemaType.NonFungible */.XQ.NonFungible, + address: metaDataResponse?.contract?.address, + name: metaDataResponse?.contract?.name, + symbol: '' + }, + collection: { + chainId, + name: '', + slug: '', + description: metaDataResponse.description + }, + link: '', + owner: { + address: ownerAddress + }, + traits: metaDataResponse.metadata?.metadata.map((x)=>({ + type: x.name, + value: x.value + }) + )?.filter((trait)=>FILTER_WORDS?.findIndex((name)=>name === trait.type + ) === -1 + ) + }; +} + + +/***/ }), + +/***/ 49889: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "J": () => (/* binding */ CoinGeckoAPI) +/* harmony export */ }); +/* harmony import */ var _masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(67938); +/* harmony import */ var urlcat__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(19802); +/* harmony import */ var urlcat__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(urlcat__WEBPACK_IMPORTED_MODULE_1__); + + +const COINGECKO_URL_BASE = 'https://api.coingecko.com/api/v3'; +class CoinGeckoAPI { + async getTokenPrice(platform_id, address, currencyType = _masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .CurrencyType.USD */ .V2.USD) { + const price = await this.getTokenPrices(platform_id, [ + address + ], currencyType); + return Number(price[address][currencyType]) ?? 0; + } + async getTokenPrices(platform_id, contractAddresses, currency = _masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .CurrencyType.USD */ .V2.USD) { + const addressList = contractAddresses.join(','); + const requestPath = urlcat__WEBPACK_IMPORTED_MODULE_1___default()(COINGECKO_URL_BASE, '/simple/token_price/:platform_id', { + platform_id, + ['contract_addresses']: addressList, + ['vs_currencies']: currency + }); + return fetch(requestPath).then((r)=>r.json() + ); + } + async getTokenPriceByCoinId(coin_id, currency = _masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .CurrencyType.USD */ .V2.USD) { + const requestPath = urlcat__WEBPACK_IMPORTED_MODULE_1___default()(`${COINGECKO_URL_BASE}/simple/price`, { + ids: coin_id, + ['vs_currencies']: currency + }); + const price = await fetch(requestPath).then((r)=>r.json() + ); + return price[coin_id][currency]; + } + async getTokensPrice(listOfAddress, currencyType = _masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .CurrencyType.USD */ .V2.USD) { + const requestPath = `${COINGECKO_URL_BASE}/simple/price?ids=${listOfAddress}&vs_currencies=${currencyType}`; + const response = await fetch(requestPath).then((r)=>r.json() + ); + return Object.fromEntries(Object.keys(response).map((address)=>[ + address, + response[address][currencyType] + ] + )); + } +} + + +/***/ }), + +/***/ 90131: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; + +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "V": () => (/* binding */ DeBankAPI) +}); + +// EXTERNAL MODULE: ../../node_modules/.pnpm/urlcat@2.0.4/node_modules/urlcat/dist/index.js +var dist = __webpack_require__(19802); +var dist_default = /*#__PURE__*/__webpack_require__.n(dist); +// EXTERNAL MODULE: ../web3-shared/base/src/index.ts + 1 modules +var src = __webpack_require__(67938); +// EXTERNAL MODULE: ../web3-shared/evm/constants/constants.ts + 12 modules +var constants = __webpack_require__(47104); +// EXTERNAL MODULE: ../web3-shared/evm/types/index.ts +var types = __webpack_require__(72499); +// EXTERNAL MODULE: ../web3-shared/evm/utils/formatter.ts +var formatter = __webpack_require__(5326); +// EXTERNAL MODULE: ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/isNil.js +var isNil = __webpack_require__(29330); +// EXTERNAL MODULE: ../web3-shared/evm/utils/resolver.ts +var resolver = __webpack_require__(94861); +// EXTERNAL MODULE: ../web3-shared/evm/utils/token.ts +var token = __webpack_require__(91761); +// EXTERNAL MODULE: ../web3-constants/evm/debank.json +var debank = __webpack_require__(60816); +;// CONCATENATED MODULE: ../web3-providers/src/debank/type.ts +var DebankTransactionDirection; +(function(DebankTransactionDirection) { + DebankTransactionDirection["SEND"] = 'send'; + DebankTransactionDirection["RECEIVE"] = 'receive'; +})(DebankTransactionDirection || (DebankTransactionDirection = {})); + +;// CONCATENATED MODULE: ../web3-providers/src/debank/format.ts + + + + + +function formatAssets(data, chainId1) { + const { NATIVE_TOKEN_ADDRESS } = (0,constants/* getTokenConstants */.aV)(chainId1); + const supportedChains = Object.values({ + ...debank.CHAIN_ID, + BSC: 'bnb' + }).filter(Boolean); + return data.filter((x)=>x.is_verified && resolver/* chainResolver.chainId */.VU.chainId(x.chain) + ).map((x)=>{ + const chainId = resolver/* chainResolver.chainId */.VU.chainId(x.chain); + const address = supportedChains.includes(x.id) ? (0,token/* createNativeToken */.$c)(chainId).address : x.id; + return { + id: address, + address: (0,formatter/* formatEthereumAddress */.j8)(address), + chainId, + type: src/* TokenType.Fungible */.iv.Fungible, + schema: (0,src/* isSameAddress */.Wr)(address, NATIVE_TOKEN_ADDRESS) ? types/* SchemaType.Native */.XQ.Native : types/* SchemaType.ERC20 */.XQ.ERC20, + decimals: x.decimals, + name: x.name, + symbol: x.symbol, + balance: (0,src/* rightShift */.pu)(x.amount, x.decimals).toFixed(), + price: { + [src/* CurrencyType.USD */.V2.USD]: (0,src/* toFixed */.FH)(x.price) + }, + value: { + [src/* CurrencyType.USD */.V2.USD]: (0,src/* multipliedBy */.$q)(x.price ?? 0, x.amount).toFixed() + }, + logoURL: x.logo_url + }; + }); +} +function formatTransactions(chainId, { cate_dict , history_list , token_dict }) { + return history_list.filter((transaction)=>transaction.tx?.name || transaction.cate_id + ).filter(({ cate_id })=>cate_id !== 'approve' + ).map((transaction)=>{ + let type = transaction.tx?.name; + if (!type && !(0,isNil/* default */.Z)(transaction.cate_id)) { + type = cate_dict[transaction.cate_id].name; + } else if (type === '') { + type = 'contract interaction'; + } + return { + id: transaction.id, + chainId, + type, + filterType: transaction.cate_id, + timestamp: transaction.time_at, + from: transaction.tx?.from_addr ?? '', + to: transaction.other_addr, + status: transaction.tx?.status ?? 0, + tokens: [ + ...transaction.sends.map(({ amount , token_id })=>({ + id: token_id, + chainId, + type: src/* TokenType.Fungible */.iv.Fungible, + schema: types/* SchemaType.ERC20 */.XQ.ERC20, + name: token_dict[token_id]?.name ?? 'Unknown Token', + symbol: token_dict[token_id]?.optimized_symbol, + address: token_id, + direction: DebankTransactionDirection.SEND, + amount: amount.toString(), + logoURI: token_dict[token_id].logo_url + }) + ), + ...transaction.receives.map(({ amount , token_id })=>({ + id: token_id, + chainId, + type: src/* TokenType.Fungible */.iv.Fungible, + schema: types/* SchemaType.ERC20 */.XQ.ERC20, + name: token_dict[token_id]?.name ?? 'Unknown Token', + symbol: token_dict[token_id]?.optimized_symbol, + address: token_id, + direction: DebankTransactionDirection.RECEIVE, + amount: amount.toString(), + logoURI: token_dict[token_id]?.logo_url + }) + ), + ], + fee: transaction.tx ? { + eth: transaction.tx.eth_gas_fee.toString(), + usd: transaction.tx.usd_gas_fee.toString() + } : undefined + }; + }); +} + +// EXTERNAL MODULE: ../web3-providers/src/helpers.ts +var helpers = __webpack_require__(7541); +// EXTERNAL MODULE: ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/unionWith.js +var unionWith = __webpack_require__(71846); +;// CONCATENATED MODULE: ../web3-providers/src/debank/index.ts + + + + + + +const DEBANK_API = 'https://api.debank.com'; +const DEBANK_OPEN_API = 'https://openapi.debank.com'; +/** + * Debank's data might be outdated, like gas price for aurora which requires 1 Gwei at least + * https://twitter.com/AlexAuroraDev/status/1490353255817302016 + * Once debank fixes it, we will remove this modifier. + */ function gasModifier(gasDict, chain) { + if (chain === (0,constants/* getDeBankConstants */.Bx)(types/* ChainId.Aurora */.a_.Aurora).CHAIN_ID) { + [ + 'fast', + 'normal', + 'slow' + ].forEach((fieldKey)=>{ + const field = gasDict.data[fieldKey]; + field.price = Math.max(field.price, (0,formatter/* formatGweiToWei */.nU)(1).toNumber()); + }); + } + return gasDict; +} +class DeBankAPI { + async getGasOptions(chainId) { + const { CHAIN_ID ='' } = (0,constants/* getDeBankConstants */.Bx)(chainId); + if (!CHAIN_ID) throw new Error('Failed to get gas price.'); + const response = await fetch(dist_default()(DEBANK_API, '/chain/gas_price_dict_v2', { + chain: CHAIN_ID + })); + const result = await response.json(); + if (result.error_code !== 0) throw new Error('Failed to get gas price.'); + const responseModified = gasModifier(result, CHAIN_ID); + return { + [src/* GasOptionType.FAST */.Qd.FAST]: { + estimatedSeconds: responseModified.data.fast.estimated_seconds, + suggestedMaxFeePerGas: (0,formatter/* formatWeiToGwei */.f1)(responseModified.data.fast.price).toString(), + suggestedMaxPriorityFeePerGas: '0' + }, + [src/* GasOptionType.NORMAL */.Qd.NORMAL]: { + estimatedSeconds: responseModified.data.normal.estimated_seconds, + suggestedMaxFeePerGas: (0,formatter/* formatWeiToGwei */.f1)(responseModified.data.normal.price).toString(), + suggestedMaxPriorityFeePerGas: '0' + }, + [src/* GasOptionType.SLOW */.Qd.SLOW]: { + estimatedSeconds: responseModified.data.slow.estimated_seconds, + suggestedMaxFeePerGas: (0,formatter/* formatWeiToGwei */.f1)(responseModified.data.slow.price).toString(), + suggestedMaxPriorityFeePerGas: '0' + } + }; + } + async getAssets(address, options) { + const response = await fetch(dist_default()(DEBANK_OPEN_API, '/v1/user/token_list', { + id: address.toLowerCase(), + is_all: true, + has_balance: true + })); + const result = await response.json(); + try { + return (0,src/* createPageable */.LI)((0,unionWith/* default */.Z)(formatAssets((result ?? []).map((x)=>({ + ...x, + // rename bsc to bnb + id: x.id === 'bsc' ? 'bnb' : x.id, + chain: x.chain === 'bsc' ? 'bnb' : x.chain + }) + ), options?.chainId), (0,helpers/* getAllEVMNativeAssets */.DN)(), (a, z)=>a.symbol === z.symbol + ), (0,src/* createIndicator */.sz)(options?.indicator)); + } catch { + return (0,src/* createPageable */.LI)([], (0,src/* createIndicator */.sz)(options?.indicator)); + } + } + async getTransactions(address, { chainId =types/* ChainId.Mainnet */.a_.Mainnet } = {}) { + const { CHAIN_ID ='' } = (0,constants/* getDeBankConstants */.Bx)(chainId); + if (!CHAIN_ID) return []; + const response = await fetch(`${DEBANK_API}/history/list?user_addr=${address.toLowerCase()}&chain=${CHAIN_ID}`); + const { data , error_code } = await response.json(); + if (error_code !== 0) throw new Error('Fail to load transactions.'); + return formatTransactions(chainId, data); + } +} + + +/***/ }), + +/***/ 38858: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; + +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "b": () => (/* binding */ NativeExplorerAPI) +}); + +// EXTERNAL MODULE: ../../node_modules/.pnpm/urlcat@2.0.4/node_modules/urlcat/dist/index.js +var dist = __webpack_require__(19802); +var dist_default = /*#__PURE__*/__webpack_require__.n(dist); +;// CONCATENATED MODULE: ../web3-providers/src/explorer/helpers.ts +function toTransaction(transaction) { + return { + nonce: Number.parseInt(transaction.nonce, 10), + blockHash: transaction.blockHash, + blockNumber: Number.parseInt(transaction.blockNumber, 10), + from: transaction.from, + to: transaction.to, + gas: Number.parseInt(transaction.gas, 10), + gasPrice: transaction.gasPrice, + hash: transaction.hash, + input: transaction.input, + transactionIndex: Number.parseInt(transaction.transactionIndex, 10), + value: transaction.value, + status: transaction.txreceipt_status, + confirmations: Number.parseInt(transaction.confirmations, 10) + }; +} + +;// CONCATENATED MODULE: ../web3-providers/src/explorer/index.ts + + +class NativeExplorerAPI { + async getLatestTransactions(account, url, { offset =10 , apikey } = {}) { + const response = await fetch(dist_default()(url, { + module: 'account', + action: 'txlist', + address: account.toLowerCase(), + startBlock: 0, + endblock: 999999999999, + page: 1, + offset, + sort: 'desc', + apikey + })); + const rawTransactions = await response.json(); + return rawTransactions.result?.map(toTransaction) ?? []; + } +} + + +/***/ }), + +/***/ 29128: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; + +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "g": () => (/* binding */ GoPlusLabsAPI) +}); + +// EXTERNAL MODULE: ../../node_modules/.pnpm/urlcat@2.0.4/node_modules/urlcat/dist/index.js +var dist = __webpack_require__(19802); +var dist_default = /*#__PURE__*/__webpack_require__.n(dist); +// EXTERNAL MODULE: ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/uniqBy.js +var uniqBy = __webpack_require__(18443); +// EXTERNAL MODULE: ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/parseInt.js +var lodash_es_parseInt = __webpack_require__(50251); +// EXTERNAL MODULE: ../web3-shared/evm/types/index.ts +var types = __webpack_require__(72499); +// EXTERNAL MODULE: ../web3-providers/src/helpers.ts +var helpers = __webpack_require__(7541); +;// CONCATENATED MODULE: ../web3-providers/src/gopluslabs/constants.ts +const GO_PLUS_LABS_ROOT_URL = 'https://api.gopluslabs.io'; + +;// CONCATENATED MODULE: ../web3-providers/src/gopluslabs/index.ts + + + + + +class GoPlusLabsAPI { + async getTokenSecurity(chainId, listOfAddress) { + const response = await (0,helpers/* fetchJSON */.ZV)(dist_default()(GO_PLUS_LABS_ROOT_URL, 'api/v1/token_security/:id', { + id: chainId, + contract_addresses: (0,uniqBy/* default */.Z)(listOfAddress, (x)=>x.toLowerCase() + ).join() + })); + if (response.code !== 1) return; + return response.result; + } + async getSupportedChain() { + const { code , result } = await (0,helpers/* fetchJSON */.ZV)(dist_default()(GO_PLUS_LABS_ROOT_URL, 'api/v1/supported_chains')); + if (code !== 1) return []; + return result.map((x)=>({ + chainId: (0,lodash_es_parseInt/* default */.Z)(x.id) ?? types/* ChainId.Mainnet */.a_.Mainnet, + name: x.name + }) + ); + } +} + + +/***/ }), + +/***/ 7541: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "DN": () => (/* binding */ getAllEVMNativeAssets), +/* harmony export */ "HN": () => (/* binding */ isProxyENV), +/* harmony export */ "ZV": () => (/* binding */ fetchJSON), +/* harmony export */ "t4": () => (/* binding */ courier) +/* harmony export */ }); +/* harmony import */ var urlcat__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(19802); +/* harmony import */ var urlcat__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(urlcat__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(13898); +/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(91761); + + +function isProxyENV() { + try { + return process.env.PROVIDER_API_ENV === 'proxy'; + } catch { + return false; + } +} +async function fetchJSON(requestInfo, requestInit) { + const fetch = globalThis.r2d2Fetch ?? globalThis.fetch; + const res = await fetch(requestInfo, requestInit); + return res.json(); +} +const CORS_PROXY = 'https://cors.r2d2.to'; +function courier(url) { + return urlcat__WEBPACK_IMPORTED_MODULE_0___default()(`${CORS_PROXY}?:url`, { + url + }); +} +function getAllEVMNativeAssets() { + return _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .NETWORK_DESCRIPTORS.filter */ .qQ.filter((x)=>x.isMainnet + ).map((x)=>({ + ...(0,_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .createNativeToken */ .$c)(x.chainId), + balance: '0' + }) + ); +} + + +/***/ }), + +/***/ 24986: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "l": () => (/* binding */ InstagramAPI) +/* harmony export */ }); +const UPLOAD_AVATAR_URL = 'https://www.instagram.com/accounts/web_change_profile_picture/'; +function getCSRFToken() { + const csrfToken = document.cookie.split('; ').find((x)=>x.includes('csrftoken') + ); + if (!csrfToken) return ''; + const [, value] = csrfToken.split('='); + return value; +} +class InstagramAPI { + async uploadUserAvatar(image, userId) { + const formData = new FormData(); + const csrfToken = getCSRFToken(); + formData.append('profile_pic', image); + const response = await fetch(UPLOAD_AVATAR_URL, { + method: 'POST', + mode: 'cors', + headers: { + 'x-csrfToken': csrfToken, + referer: `https://www.instagram.com/${userId}/` + }, + body: formData + }); + return response.json(); + } +} + + +/***/ }), + +/***/ 98311: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; + +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "Z": () => (/* binding */ KeyValueAPI) +}); + +// UNUSED EXPORTS: JSON_Storage + +// EXTERNAL MODULE: ../../node_modules/.pnpm/urlcat@2.0.4/node_modules/urlcat/dist/index.js +var dist = __webpack_require__(19802); +var dist_default = /*#__PURE__*/__webpack_require__.n(dist); +// EXTERNAL MODULE: ../web3-providers/src/helpers.ts +var helpers = __webpack_require__(7541); +;// CONCATENATED MODULE: ../web3-providers/src/kv/constants.ts +const KV_ROOT_URL = 'https://kv.r2d2.to'; + +;// CONCATENATED MODULE: ../web3-providers/src/kv/index.ts + + + +class JSON_Storage { + async get(key) { + try { + return (0,helpers/* fetchJSON */.ZV)(dist_default()(KV_ROOT_URL, 'api/:name', { + name: `${this.prefix}_${key}` + }), { + method: 'GET', + headers: { + 'Content-Type': 'text/plain' + } + }); + } catch { + return; + } + } + async set(key, value) { + await fetch(dist_default()(KV_ROOT_URL, 'api/:name', { + name: `${this.prefix}_${key}` + }), { + method: 'PUT', + mode: 'cors', + headers: { + 'Content-Type': 'application/json' + }, + body: JSON.stringify(value) + }); + } + constructor(prefix){ + this.prefix = prefix; + } +} +class KeyValueAPI { + createJSON_Storage(key) { + return new JSON_Storage(key); + } +} + + +/***/ }), + +/***/ 44253: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "t": () => (/* binding */ MetaSwapAPI) +/* harmony export */ }); +/* harmony import */ var urlcat__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(19802); +/* harmony import */ var urlcat__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(urlcat__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(67938); + + +const METASWAP_API = 'https://gas-api.metaswap.codefi.network/'; +class MetaSwapAPI { + async getGasOptions(chainId) { + const response = await fetch(urlcat__WEBPACK_IMPORTED_MODULE_0___default()(METASWAP_API, '/networks/:chainId/suggestedGasFees', { + chainId + })); + const result = await response.json(); + return { + [_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .GasOptionType.FAST */ .Qd.FAST]: { + estimatedBaseFee: result.estimatedBaseFee ?? '0', + estimatedSeconds: result.high?.minWaitTimeEstimate ?? 0, + suggestedMaxFeePerGas: result.high?.suggestedMaxFeePerGas ?? '0', + suggestedMaxPriorityFeePerGas: result.high?.suggestedMaxPriorityFeePerGas ?? '0' + }, + [_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .GasOptionType.NORMAL */ .Qd.NORMAL]: { + estimatedBaseFee: result.estimatedBaseFee ?? '0', + estimatedSeconds: result.medium?.minWaitTimeEstimate ?? 0, + suggestedMaxFeePerGas: result.medium?.suggestedMaxFeePerGas ?? '0', + suggestedMaxPriorityFeePerGas: result.medium?.suggestedMaxPriorityFeePerGas ?? '0' + }, + [_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .GasOptionType.SLOW */ .Qd.SLOW]: { + estimatedBaseFee: result.estimatedBaseFee ?? '0', + estimatedSeconds: result.low?.minWaitTimeEstimate ?? 0, + suggestedMaxFeePerGas: result.low?.suggestedMaxFeePerGas ?? '0', + suggestedMaxPriorityFeePerGas: result.low?.suggestedMaxPriorityFeePerGas ?? '0' + } + }; + } +} + + +/***/ }), + +/***/ 1478: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; + +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "r": () => (/* binding */ OpenSeaAPI) +}); + +// EXTERNAL MODULE: ../../node_modules/.pnpm/urlcat@2.0.4/node_modules/urlcat/dist/index.js +var dist = __webpack_require__(19802); +var dist_default = /*#__PURE__*/__webpack_require__.n(dist); +// EXTERNAL MODULE: ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/head.js +var head = __webpack_require__(29730); +// EXTERNAL MODULE: ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/uniqBy.js +var uniqBy = __webpack_require__(18443); +// EXTERNAL MODULE: ../../node_modules/.pnpm/bignumber.js@9.0.2/node_modules/bignumber.js/bignumber.js +var bignumber = __webpack_require__(42263); +var bignumber_default = /*#__PURE__*/__webpack_require__.n(bignumber); +// EXTERNAL MODULE: ../../node_modules/.pnpm/date-fns@2.28.0/node_modules/date-fns/esm/isAfter/index.js +var isAfter = __webpack_require__(91518); +// EXTERNAL MODULE: ../../node_modules/.pnpm/date-fns@2.28.0/node_modules/date-fns/esm/getUnixTime/index.js + 1 modules +var getUnixTime = __webpack_require__(4975); +// EXTERNAL MODULE: ../web3-shared/base/src/index.ts + 1 modules +var src = __webpack_require__(67938); +// EXTERNAL MODULE: ../web3-shared/evm/types/index.ts +var types = __webpack_require__(72499); +// EXTERNAL MODULE: ../web3-shared/evm/utils/token.ts +var utils_token = __webpack_require__(91761); +// EXTERNAL MODULE: ../web3-providers/src/opensea/utils.ts +var utils = __webpack_require__(87893); +;// CONCATENATED MODULE: ../web3-providers/src/opensea/constants.ts +const OPENSEA_ACCOUNT_URL = 'https://opensea.io/accounts/:address'; +const OPENSEA_API_URL = 'https://api.opensea.io'; + +;// CONCATENATED MODULE: ../web3-providers/src/opensea/index.ts + + + + + + + + + +async function fetchFromOpenSea(url, chainId, apiKey) { + if (![ + types/* ChainId.Mainnet */.a_.Mainnet, + types/* ChainId.Rinkeby */.a_.Rinkeby, + types/* ChainId.Matic */.a_.Matic + ].includes(chainId)) return; + const fetch = globalThis.r2d2Fetch ?? globalThis.fetch; + const response = await fetch(dist_default()(OPENSEA_API_URL, url), { + method: 'GET' + }); + if (response.ok) { + return await response.json(); + } else { + throw new Error('Fetch failed'); + } +} +function createTokenDetailed(chainId, token) { + if (token.symbol === 'ETH') return (0,utils_token/* createNativeToken */.$c)(chainId); + return (0,utils_token/* createERC20Token */.wY)(chainId, token.address, token.name, token.symbol, token.decimals); +} +function createAssetLink(account) { + if (!account) return ''; + return dist_default()(OPENSEA_ACCOUNT_URL, { + address: account?.user?.username ?? account?.address + }); +} +function createNFTToken(chainId, asset) { + return { + id: asset.token_address ?? asset.asset_contract.address, + chainId, + type: src/* TokenType.NonFungible */.iv.NonFungible, + schema: asset.asset_contract.schema_name === 'ERC1155' ? types/* SchemaType.ERC1155 */.XQ.ERC1155 : types/* SchemaType.ERC721 */.XQ.ERC721, + tokenId: asset.token_id, + address: asset.token_address ?? asset.asset_contract.address, + metadata: { + chainId, + name: asset.name ?? asset.collection.name, + symbol: asset.asset_contract.symbol, + description: asset.description, + imageURL: (((asset.image_url ?? asset.image_preview_url) ?? asset.image_original_url) ?? asset.animation_url) ?? '', + mediaURL: asset?.animation_url ?? (0,utils/* toImage */.Np)(((asset?.image_original_url ?? asset?.image_preview_url) ?? asset?.image_url) ?? '') + }, + contract: { + chainId, + schema: types/* SchemaType.ERC721 */.XQ.ERC721, + address: asset.token_address ?? asset.asset_contract.address, + name: asset.name ?? asset.collection.name, + symbol: asset.asset_contract.symbol, + owner: asset.owner.address + }, + collection: { + address: asset.token_address ?? asset.asset_contract.address, + chainId, + name: asset.collection.name, + slug: asset.collection.slug, + description: asset.collection.description, + iconURL: (asset.collection.image_url ?? asset.collection.largeImage_url) ?? asset.collection.featured_image_url, + verified: [ + 'approved', + 'verified' + ].includes(asset.collection?.safelist_request_status ?? ''), + createdAt: (0,getUnixTime/* default */.Z)(new Date(asset.collection.created_date)) + } + }; +} +function createNFTAsset(chainId, asset) { + const desktopOrder = (0,head/* default */.Z)(asset.orders?.sort((a, b)=>new (bignumber_default())((0,utils/* getOrderUSDPrice */.t6)(b.current_price, b.payment_token_contract?.usd_price) ?? 0).minus((0,utils/* getOrderUSDPrice */.t6)(a.current_price, a.payment_token_contract?.usd_price) ?? 0).toNumber() + )); + const orderTokens = (0,uniqBy/* default */.Z)(desktopOrder?.payment_token_contract ? [ + createTokenDetailed(chainId, desktopOrder.payment_token_contract) + ] : [], (x)=>x.address.toLowerCase() + ); + const offerTokens = (0,uniqBy/* default */.Z)(asset.collection?.payment_tokens?.map((x)=>createTokenDetailed(chainId, x) + ), (x)=>x.address.toLowerCase() + ); + return { + ...createNFTToken(chainId, asset), + link: asset.opensea_link ?? asset.permalink, + payment_tokens: orderTokens.concat(offerTokens), + auction: (0,isAfter/* default */.Z)(Date.parse(`${asset.endTime ?? ''}Z`), Date.now()) ? { + endAt: (0,getUnixTime/* default */.Z)(new Date(asset.endTime)), + orderTokens, + offerTokens + } : undefined, + creator: { + address: asset.creator.address, + nickname: asset.creator.user?.username ?? 'Unknown', + avatarURL: asset.creator.profile_img_url, + link: createAssetLink(asset.creator) + }, + owner: { + address: asset.owner.address, + nickname: asset.owner.user?.username ?? 'Unknown', + avatarURL: asset.owner.profile_img_url, + link: createAssetLink(asset.owner) + }, + traits: asset.traits.map((x)=>({ + type: x.trait_type, + value: x.value + }) + ), + price: { + [src/* CurrencyType.USD */.V2.USD]: (0,utils/* getOrderUnitPrice */.bb)(asset.last_sale?.total_price, asset.last_sale?.payment_token.decimals, asset.last_sale?.quantity ?? '1')?.toString() + }, + orders: asset.orders?.sort((a, z)=>new (bignumber_default())((0,utils/* getOrderUSDPrice */.t6)(z.current_price, z.payment_token_contract?.usd_price) ?? 0).minus((0,utils/* getOrderUSDPrice */.t6)(a.current_price, a.payment_token_contract?.usd_price) ?? 0).toNumber() + ).map((x)=>({ + id: x.order_hash, + chainId, + assetPermalink: asset.opensea_link, + hash: x.order_hash, + quantity: x.quantity, + createdAt: x.created_time ? (0,getUnixTime/* default */.Z)(new Date(x.created_time)) : undefined, + expiredAt: x.expiration_time, + side: x.side, + price: { + [src/* CurrencyType.USD */.V2.USD]: x.current_price + }, + paymentToken: x.payment_token_contract ? (0,utils_token/* createERC20Token */.wY)(chainId, x.payment_token_contract.address, x.payment_token_contract.name, x.payment_token_contract.symbol, x.payment_token_contract.decimals, x.payment_token_contract.image_url) : undefined + }) + ) + }; +} +function createNFTHistory(chainId, event) { + const accountPair = event.event_type === 'successful' ? { + from: { + address: event.seller?.address, + nickname: event.seller?.user?.username, + avatarURL: event.seller?.profile_img_url, + link: createAssetLink(event.seller) + }, + to: { + address: event.winner_account?.address, + nickname: event.winner_account?.user?.username, + avatarURL: event.winner_account?.profile_img_url, + link: createAssetLink(event.winner_account) + } + } : { + from: { + address: event.from_account?.address, + nickname: event.from_account?.user?.username, + avatarURL: event.from_account?.profile_img_url, + link: createAssetLink(event.from_account) + }, + to: { + address: event.to_account?.address, + nickname: event.to_account?.user?.username, + avatarURL: event.to_account?.profile_img_url, + link: createAssetLink(event.to_account) + } + }; + return { + ...accountPair, + id: event.id, + chainId, + type: event.event_type, + assetPermalink: event.asset.permalink, + quantity: event.quantity, + hash: event.transaction?.transaction_hash, + timestamp: new Date(`${event.created_date}Z`).getTime(), + price: { + [src/* CurrencyType.USD */.V2.USD]: new (bignumber_default())((event.bid_amount ?? event.total_price) ?? 0).dividedBy((0,src/* scale10 */.SI)(event.payment_token.decimals)).dividedBy(event.quantity).multipliedBy(event.payment_token?.usd_price ?? 1).toFixed(2) + }, + paymentToken: event.payment_token ? (0,utils_token/* createERC20Token */.wY)(types/* ChainId.Mainnet */.a_.Mainnet, event.payment_token.address, event.payment_token.name, event.payment_token.symbol, event.payment_token.decimals, event.payment_token.image_url) : undefined + }; +} +function createAssetOrder(chainId, order) { + return { + id: order.order_hash, + chainId, + assetPermalink: order.asset.opensea_link, + hash: order.order_hash, + quantity: order.quantity, + side: order.side, + maker: { + address: order.maker.address, + nickname: order.maker.user?.username, + avatarURL: order.maker.profile_img_url, + link: dist_default()('https://opensea.io/accounts/:address', { + address: order.maker.address + }) + }, + taker: { + address: order.taker.address, + nickname: order.taker.user?.username, + avatarURL: order.taker.profile_img_url + }, + createdAt: order.created_time ? (0,getUnixTime/* default */.Z)(new Date(order.created_time)) : undefined, + expiredAt: order.expiration_time, + price: { + [src/* CurrencyType.USD */.V2.USD]: new (bignumber_default())(order.base_price ?? 0).dividedBy((0,src/* scale10 */.SI)(order.payment_token_contract?.decimals ?? 0)).dividedBy(order.quantity).multipliedBy(order.payment_token_contract?.usd_price ?? 1).toFixed(2) + }, + paymentToken: order.payment_token_contract ? (0,utils_token/* createERC20Token */.wY)(types/* ChainId.Mainnet */.a_.Mainnet, order.payment_token_contract.address, order.payment_token_contract.name, order.payment_token_contract.symbol, order.payment_token_contract.decimals, order.payment_token_contract.image_url) : undefined + }; +} +class OpenSeaAPI { + async getAsset(address, tokenId, { chainId =types/* ChainId.Mainnet */.a_.Mainnet } = {}) { + const response = await fetchFromOpenSea(dist_default()('/api/v1/asset/:address/:tokenId', { + address, + tokenId + }), chainId); + if (!response) return; + return createNFTAsset(chainId, response); + } + async getAssets(from, { chainId =types/* ChainId.Mainnet */.a_.Mainnet , indicator , size =50 } = {}) { + if (chainId !== types/* ChainId.Mainnet */.a_.Mainnet) return (0,src/* createPageable */.LI)([], (0,src/* createIndicator */.sz)(indicator)); + const response = await fetchFromOpenSea(dist_default()('/api/v1/assets', { + owner: from, + offset: (indicator?.index ?? 0) * size, + limit: size + }), chainId, this._apiKey); + const tokens = (response?.assets ?? [])?.filter((x)=>[ + 'non-fungible', + 'semi-fungible' + ].includes(x.asset_contract.asset_contract_type) || [ + 'ERC721', + 'ERC1155' + ].includes(x.asset_contract.schema_name) + ).map((asset)=>createNFTAsset(chainId, asset) + ); + return (0,src/* createPageable */.LI)(tokens, (0,src/* createIndicator */.sz)(indicator), tokens.length === size ? (0,src/* createNextIndicator */.gT)(indicator) : undefined); + } + async getToken(address, tokenId, { chainId =types/* ChainId.Mainnet */.a_.Mainnet } = {}) { + const response = await fetchFromOpenSea(dist_default()('/api/v1/asset/:address/:tokenId', { + address, + tokenId + }), chainId); + if (!response) return; + return createNFTToken(chainId, response); + } + async getContract(address, { chainId =types/* ChainId.Mainnet */.a_.Mainnet } = {}) { + const assetContract = await fetchFromOpenSea(dist_default()('/api/v1/asset_contract/:address', { + address + }), chainId); + return (0,src/* createNonFungibleTokenContract */.Xi)(chainId, types/* SchemaType.ERC721 */.XQ.ERC721, address, assetContract?.name ?? 'Unknown Token', assetContract?.symbol ?? 'UNKNOWN'); + } + async getEvents(address, tokenId, { chainId =types/* ChainId.Mainnet */.a_.Mainnet , indicator , size } = {}) { + const response = await fetchFromOpenSea(dist_default()('/api/v1/events', { + asset_contract_address: address, + token_id: tokenId, + offset: indicator, + limit: size + }), chainId); + return response?.asset_events?.map((x)=>createNFTHistory(chainId, x) + ) ?? []; + } + async getOrders(address, tokenId, side, { chainId =types/* ChainId.Mainnet */.a_.Mainnet , indicator , size } = {}) { + const response = await fetchFromOpenSea(dist_default()('/wyvern/v1/orders', { + asset_contract_address: address, + token_id: tokenId, + side, + offset: indicator, + limit: size + }), chainId); + return response?.orders?.map((x)=>createAssetOrder(chainId, x) + ) ?? []; + } + async getCollections(address, { chainId =types/* ChainId.Mainnet */.a_.Mainnet , indicator , size =50 } = {}) { + if (chainId !== types/* ChainId.Mainnet */.a_.Mainnet) return (0,src/* createPageable */.LI)([], (0,src/* createIndicator */.sz)(indicator)); + const response = await fetchFromOpenSea(dist_default()('/api/v1/collections', { + asset_owner: address, + offset: (indicator?.index ?? 0) * size, + limit: size + }), chainId, this._apiKey); + if (!response) return (0,src/* createPageable */.LI)([], (0,src/* createIndicator */.sz)(indicator)); + const collections = response?.map((x)=>({ + chainId, + name: x.name, + slug: x.slug, + address: x.primary_asset_contracts?.[0]?.address, + symbol: x.primary_asset_contracts?.[0]?.symbol, + schema_name: x.primary_asset_contracts?.[0]?.schema_name, + description: x.description, + iconURL: x.image_url, + balance: x.owned_asset_count, + verified: [ + 'approved', + 'verified' + ].includes(x.safelist_request_status ?? ''), + createdAt: (0,getUnixTime/* default */.Z)(new Date(x.created_date)) + }) + ).filter((x)=>x.address + ) ?? []; + return (0,src/* createPageable */.LI)(collections, (0,src/* createIndicator */.sz)(indicator), collections.length === size ? (0,src/* createNextIndicator */.gT)(indicator) : undefined); + } + constructor(apiKey){ + this._apiKey = apiKey; + } +} + + +/***/ }), + +/***/ 87893: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "Np": () => (/* binding */ toImage), +/* harmony export */ "bb": () => (/* binding */ getOrderUnitPrice), +/* harmony export */ "t6": () => (/* binding */ getOrderUSDPrice) +/* harmony export */ }); +/* harmony import */ var bignumber_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(42263); +/* harmony import */ var bignumber_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(bignumber_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(67938); +/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(70854); + + + +function getOrderUnitPrice(currentPrice, decimals, quantity) { + if (!currentPrice || !decimals || !quantity) return; + const _currentPrice = new (bignumber_js__WEBPACK_IMPORTED_MODULE_0___default())(currentPrice).div((0,_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .pow10 */ .wA)(decimals)); + const _quantity = new (bignumber_js__WEBPACK_IMPORTED_MODULE_0___default())(quantity).div((0,_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .pow10 */ .wA)((0,_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .isOne */ .P$)(quantity) ? 0 : 8)); + return _currentPrice.dividedBy(_quantity).decimalPlaces(4, 2); +} +function getOrderUSDPrice(currentPrice, usdPrice, decimals) { + if (!currentPrice || !decimals) return; + const quantity = new (bignumber_js__WEBPACK_IMPORTED_MODULE_0___default())(currentPrice).div((0,_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .pow10 */ .wA)(decimals)); + return new (bignumber_js__WEBPACK_IMPORTED_MODULE_0___default())(usdPrice ?? 0).multipliedBy(quantity).decimalPlaces(2, 2); +} +function toImage(url) { + if (!url) return ''; + if (url.startsWith('ipfs://')) { + const cid = url.replace(/^ipfs:\/\//, ''); + return (0,_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .resolveIPFSLink */ .r5)(cid); + } + return url; +} + + +/***/ }), + +/***/ 52698: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; + +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "I": () => (/* binding */ RaribleAPI) +}); + +// EXTERNAL MODULE: ../../node_modules/.pnpm/urlcat@2.0.4/node_modules/urlcat/dist/index.js +var dist = __webpack_require__(19802); +var dist_default = /*#__PURE__*/__webpack_require__.n(dist); +// EXTERNAL MODULE: ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/head.js +var head = __webpack_require__(29730); +// EXTERNAL MODULE: ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/compact.js +var compact = __webpack_require__(27862); +// EXTERNAL MODULE: ../../node_modules/.pnpm/date-fns@2.28.0/node_modules/date-fns/esm/getUnixTime/index.js + 1 modules +var getUnixTime = __webpack_require__(4975); +// EXTERNAL MODULE: ../web3-shared/base/src/index.ts + 1 modules +var src = __webpack_require__(67938); +// EXTERNAL MODULE: ../web3-shared/evm/types/index.ts +var types = __webpack_require__(72499); +// EXTERNAL MODULE: ../web3-shared/evm/pipes/index.ts +var pipes = __webpack_require__(70854); +;// CONCATENATED MODULE: ../web3-providers/src/rarible/types.ts +var RARIBLE_FEATURES; +(function(RARIBLE_FEATURES) { + RARIBLE_FEATURES["APPROVE_FOR_ALL"] = "APPROVE_FOR_ALL"; + RARIBLE_FEATURES["SET_URI_PREFIX"] = "SET_URI_PREFIX"; + RARIBLE_FEATURES["BURN"] = "BURN"; + RARIBLE_FEATURES["MINT_WITH_ADDRESS"] = "MINT_WITH_ADDRESS"; + RARIBLE_FEATURES["SECONDARY_SALE_FEES"] = "SECONDARY_SALE_FEES"; +})(RARIBLE_FEATURES || (RARIBLE_FEATURES = {})); +var RaribleProfileType; +(function(RaribleProfileType) { + RaribleProfileType["USER"] = "USER"; + RaribleProfileType["COLLECTION"] = "COLLECTION"; +})(RaribleProfileType || (RaribleProfileType = {})); +var RaribleEventType; +(function(RaribleEventType) { + RaribleEventType["ORDER"] = 'order'; + RaribleEventType["BUY"] = 'buy'; + RaribleEventType["TRANSFER"] = 'transfer'; + RaribleEventType["OFFER"] = 'offer'; +})(RaribleEventType || (RaribleEventType = {})); + +;// CONCATENATED MODULE: ../web3-providers/src/rarible/constants.ts +const RaribleURL = 'https://api.rarible.com/'; +const RaribleChainURL = 'https://ethereum-api.rarible.org/'; +const RaribleUserURL = 'https://rarible.com/user/'; +const RaribleRopstenUserURL = 'https://ropsten.rarible.com/user/'; +const RaribleMainnetURL = 'https://api-mainnet.rarible.com/marketplace/api/v4/'; +const RaribleStagingMainnetAPI_URL = 'https://api-staging.rarible.com/protocol/v0.1'; +const RaribleMainnetSearchURL = 'https://api-mainnet.rarible.com/marketplace/search/v1/'; + +// EXTERNAL MODULE: ../web3-providers/src/helpers.ts +var helpers = __webpack_require__(7541); +;// CONCATENATED MODULE: ../web3-providers/src/rarible/index.ts + + + + + + + + +const resolveRaribleUserNetwork = (0,src/* createLookupTableResolver */.FG)({ + [types/* ChainId.Mainnet */.a_.Mainnet]: RaribleUserURL, + [types/* ChainId.Ropsten */.a_.Ropsten]: RaribleRopstenUserURL +}, RaribleUserURL); +async function fetchFromRarible(url, path, init) { + const response = await fetch(dist_default()(url, path), { + ...!(0,helpers/* isProxyENV */.HN)() && { + mode: 'cors' + }, + ...init + }); + return response.json(); +} +function getProfilesFromRarible(addresses) { + return fetchFromRarible(RaribleMainnetURL, '/profiles/list', { + method: 'POST', + body: JSON.stringify(addresses), + headers: { + 'content-type': 'application/json' + } + }); +} +function createERC721Token(tokenAddress, tokenId, asset) { + const imageURL = (0,pipes/* resolveIPFSLinkFromURL */.Yx)((asset?.meta?.image?.url.ORIGINAL ?? asset?.meta?.image?.url.PREVIEW) ?? ''); + return (0,src/* createNonFungibleToken */.RV)(types/* ChainId.Mainnet */.a_.Mainnet, tokenAddress, types/* SchemaType.ERC721 */.XQ.ERC721, tokenId, (0,head/* default */.Z)(asset?.owners), (0,src/* createNonFungibleTokenMetadata */.BD)(types/* ChainId.Mainnet */.a_.Mainnet, asset?.meta?.name ?? '', '', asset?.meta?.description, undefined, imageURL, imageURL), (0,src/* createNonFungibleTokenContract */.Xi)(types/* ChainId.Mainnet */.a_.Mainnet, types/* SchemaType.ERC721 */.XQ.ERC721, tokenAddress, asset?.meta?.name ?? '', ''), (0,src/* createNonFungibleTokenCollection */.GN)(types/* ChainId.Mainnet */.a_.Mainnet, asset?.meta?.name ?? '', '', '', '')); +} +function createERC721Asset(chainId, asset) { + const owner = (0,head/* default */.Z)(asset?.owners); + const creator = (0,head/* default */.Z)(asset?.creators); + return { + id: asset.id || asset.contract, + chainId, + tokenId: asset.tokenId, + type: src/* TokenType.NonFungible */.iv.NonFungible, + address: asset.contract, + schema: types/* SchemaType.ERC721 */.XQ.ERC721, + creator: creator ? { + address: creator.account, + avatarURL: '', + nickname: creator.account, + link: '' + } : undefined, + owner: owner ? { + address: owner, + avatarURL: '', + nickname: owner, + link: '' + } : undefined, + traits: asset?.meta?.attributes.map(({ key , value })=>({ + type: key, + value + }) + ) ?? [], + price: { + [src/* CurrencyType.USD */.V2.USD]: '0' + }, + metadata: { + chainId, + name: asset.meta?.name ?? '', + symbol: '', + description: asset.meta?.description, + imageURL: asset.meta?.image?.url.ORIGINAL, + mediaURL: asset?.meta?.animation?.url.ORIGINAL + }, + contract: { + chainId, + schema: types/* SchemaType.ERC721 */.XQ.ERC721, + address: asset.contract ?? asset.id, + name: asset.meta?.name ?? '', + symbol: '' + }, + collection: { + chainId, + name: asset.meta?.name ?? '', + slug: asset.meta?.name ?? '', + description: asset.meta?.description, + iconURL: (asset.meta?.image?.url.PREVIEW ?? asset.meta?.image?.url.ORIGINAL) ?? asset.meta?.image?.url.BIG, + verified: !asset.deleted, + createdAt: (0,getUnixTime/* default */.Z)(new Date(asset.mintedAt)) + } + }; +} +function _getAsset(address, tokenId) { + const requestPath = dist_default()('/v0.1/nft/items/:address::tokenId', { + includeMeta: true, + address, + tokenId + }); + return fetchFromRarible(RaribleChainURL, requestPath, { + method: 'GET', + mode: 'cors', + headers: { + 'content-type': 'application/json' + } + }); +} +class RaribleAPI { + async getAsset(address, tokenId, { chainId =types/* ChainId.Mainnet */.a_.Mainnet } = {}) { + const asset = await _getAsset(address, tokenId); + if (!asset) return; + return createERC721Asset(chainId, asset); + } + async getAssets(from, { chainId , indicator , size =50 } = {}) { + if (chainId !== types/* ChainId.Mainnet */.a_.Mainnet) return (0,src/* createPageable */.LI)([], (0,src/* createIndicator */.sz)(indicator, '')); + const requestPath = dist_default()('/protocol/v0.1/ethereum/nft/items/byOwner', { + owner: from, + size + }); + const asset1 = await fetchFromRarible(RaribleURL, requestPath, undefined); + if (!asset1) return (0,src/* createPageable */.LI)([], (0,src/* createIndicator */.sz)(indicator, '')); + const items = asset1.items.map((asset)=>createERC721Asset(chainId, asset) + ).filter((x)=>(0,src/* isSameAddress */.Wr)(x.ownerId, from) + ) ?? []; + return (0,src/* createPageable */.LI)(items, (0,src/* createIndicator */.sz)(indicator), (0,src/* createNextIndicator */.gT)(indicator, asset1.continuation)); + } + async getToken(tokenAddress, tokenId) { + const asset = await _getAsset(tokenAddress, tokenId); + return createERC721Token(tokenAddress, tokenId, asset); + } + async getOffers(tokenAddress, tokenId, { chainId =types/* ChainId.Mainnet */.a_.Mainnet } = {}) { + const requestPath = dist_default()('/items/:tokenAddress::tokenId/offers', { + tokenAddress, + tokenId + }); + const orders = await fetchFromRarible(RaribleMainnetURL, requestPath, { + method: 'POST', + body: JSON.stringify({ + size: 20 + }), + headers: { + 'content-type': 'application/json' + } + }); + const profiles = await getProfilesFromRarible(orders.map((item)=>item.maker + )); + return orders.map((order)=>{ + const ownerInfo = profiles.find((owner)=>owner.id === order.maker + ); + return { + id: order.tokenId, + chainId: types/* ChainId.Mainnet */.a_.Mainnet, + assetPermalink: '', + createdAt: Number(order.updateDate), + price: { + usd: order.buyPrice.toString() + }, + paymentToken: { + name: order.token, + id: order.tokenId, + type: src/* TokenType.NonFungible */.iv.NonFungible, + schema: types/* SchemaType.ERC20 */.XQ.ERC20, + chainId, + address: tokenAddress, + symbol: '', + decimals: 0 + }, + side: src/* OrderSide.Buy */.oU.Buy, + quantity: order.value.toString(), + expiredAt: 0 + }; + }); + } + async getListings(tokenAddress, tokenId, { chainId =types/* ChainId.Mainnet */.a_.Mainnet } = {}) { + const requestPath = dist_default()('/items/:tokenAddress::tokenId/ownerships', { + tokenAddress, + tokenId + }); + const assets = await fetchFromRarible(RaribleMainnetURL, requestPath); + const listings = assets.filter((x)=>x.selling + ); + const profiles = await getProfilesFromRarible(listings.map((x)=>x.owner + )); + return listings.map((asset)=>{ + const ownerInfo = profiles.find((owner)=>owner.id === asset.owner + ); + return { + id: asset.tokenId, + chainId: types/* ChainId.Mainnet */.a_.Mainnet, + assetPermalink: '', + createdAt: Number(asset.date ?? 0), + price: { + usd: asset.price + }, + paymentToken: { + name: asset.token, + id: asset.tokenId, + decimals: 0, + chainId: types/* ChainId.Mainnet */.a_.Mainnet, + address: tokenAddress, + type: src/* TokenType.NonFungible */.iv.NonFungible + }, + side: src/* OrderSide.Buy */.oU.Buy, + quantity: asset.value.toString(), + expiredAt: 0 + }; + }); + } + async getOrders(tokenAddress, tokenId, side, opts = {}) { + switch(side){ + case src/* OrderSide.Buy */.oU.Buy: + return this.getOffers(tokenAddress, tokenId, opts); + case src/* OrderSide.Sell */.oU.Sell: + return this.getListings(tokenAddress, tokenId, opts); + default: + return []; + } + } + async getEvents(tokenAddress, tokenId) { + const response = await fetchFromRarible(RaribleMainnetURL, '/activity', { + method: 'POST', + body: JSON.stringify({ + // types: ['BID', 'BURN', 'BUY', 'CANCEL', 'CANCEL_BID', 'ORDER', 'MINT', 'TRANSFER', 'SALE'], + filter: { + '@type': 'by_item', + address: tokenAddress, + tokenId + }, + size: 100 + }), + headers: { + 'content-type': 'application/json' + } + }); + const histories = response.filter((x)=>Object.values(RaribleEventType).includes(x['@type']) + ); + const profiles = await getProfilesFromRarible((0,compact/* default */.Z)([ + ...histories.map((history)=>history.owner + ), + ...histories.map((history)=>history.buyer + ), + ...histories.map((history)=>history.from + ), + ])); + return histories.map((history)=>{ + const ownerInfo = profiles.find((profile)=>profile.id === history.owner + ); + const fromInfo = profiles.find((profile)=>profile.id === history.buyer || profile.id === history.from + ); + return { + id: history.id, + chainId: types/* ChainId.Mainnet */.a_.Mainnet, + type: history['@type'], + assetPermalink: '', + quantity: history.value, + timestamp: history.date.getTime() ?? 0, + hash: history.transactionHash, + from: { + username: fromInfo?.name, + address: fromInfo?.id, + imageUrl: fromInfo?.image, + link: '' + }, + to: { + username: ownerInfo?.name, + address: ownerInfo?.id, + imageUrl: ownerInfo?.image, + link: '' + } + }; + }); + } +} + + +/***/ }), + +/***/ 51827: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "o": () => (/* binding */ RiskWarningAPI) +/* harmony export */ }); +const BASE_URL_MAP = { + production: 'https://backup.mask.io/api', + development: 'https://vaalh28dbi.execute-api.ap-east-1.amazonaws.com/api', + // @ts-ignore + test: 'https://vaalh28dbi.execute-api.ap-east-1.amazonaws.com/api' +}; +const BASE_URL = BASE_URL_MAP["production"]; +class RiskWarningAPI { + async approve(address, pluginID = '') { + await fetch(`${BASE_URL}/v1/risk_warning/confirm`, { + method: 'POST', + body: JSON.stringify({ + address, + plugin_id: pluginID + }) + }); + } +} + + +/***/ }), + +/***/ 65186: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; + +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "M": () => (/* binding */ RSS3API) +}); + +// EXTERNAL MODULE: ../../node_modules/.pnpm/urlcat@2.0.4/node_modules/urlcat/dist/index.js +var dist = __webpack_require__(19802); +var dist_default = /*#__PURE__*/__webpack_require__.n(dist); +// EXTERNAL MODULE: ../../node_modules/.pnpm/rss3-next@0.6.17/node_modules/rss3-next/dist/browser/RSS3.js +var RSS3 = __webpack_require__(42303); +var RSS3_default = /*#__PURE__*/__webpack_require__.n(RSS3); +// EXTERNAL MODULE: ../web3-shared/evm/types/index.ts +var types = __webpack_require__(72499); +;// CONCATENATED MODULE: ../web3-providers/src/rss3/constants.ts +const RSS3_ENDPOINT = 'https://hub.pass3.me'; + +// EXTERNAL MODULE: ../web3-providers/src/types.ts +var src_types = __webpack_require__(3779); +// EXTERNAL MODULE: ../web3-providers/src/helpers.ts +var helpers = __webpack_require__(7541); +// EXTERNAL MODULE: ../web3-shared/base/src/index.ts + 1 modules +var src = __webpack_require__(67938); +;// CONCATENATED MODULE: ../web3-providers/src/rss3/index.ts + + + + + + + +class RSS3API { + createRSS3(address, sign = ()=>{ + throw new Error('Not supported.'); + }) { + return new (RSS3_default())({ + endpoint: RSS3_ENDPOINT, + address, + sign + }); + } + async getFileData(rss3, address, key) { + const file = await rss3.files.get(address); + if (!file) throw new Error('The account was not found.'); + const descriptor = Object.getOwnPropertyDescriptor(file, key); + return descriptor?.value; + } + async setFileData(rss3, address, key, data) { + const file = await rss3.files.get(address); + if (!file) throw new Error('The account was not found.'); + const descriptor = Object.getOwnPropertyDescriptor(file, key); + const value = { + ...descriptor?.value, + ...data + }; + rss3.files.set(Object.assign(file, { + [key]: value + })); + await rss3.files.sync(); + return value; + } + async getDonations(address) { + const url = dist_default()(RSS3_ENDPOINT, '/assets/list', { + personaID: address, + type: src_types/* RSS3BaseAPI.AssetType.GitcoinDonation */.b.AssetType.GitcoinDonation + }); + return (0,helpers/* fetchJSON */.ZV)(url); + } + async getFootprints(address) { + const url = dist_default()(RSS3_ENDPOINT, '/assets/list', { + personaID: address, + type: src_types/* RSS3BaseAPI.AssetType.POAP */.b.AssetType.POAP + }); + return (0,helpers/* fetchJSON */.ZV)(url); + } + async getNameInfo(id) { + if (!id) return; + const url = dist_default()('https://rss3.domains/name/:id', { + id + }); + return (0,helpers/* fetchJSON */.ZV)(url); + } + async getProfileInfo(address) { + if (!address) return; + const url = dist_default()(RSS3_ENDPOINT, '/:address', { + address + }); + const rsp = await (0,helpers/* fetchJSON */.ZV)(url); + return rsp?.profile; + } + async getAssets(address1, { chainId: chainId1 , indicator , size =50 } = {}) { + if (chainId1 !== types/* ChainId.Mainnet */.a_.Mainnet && chainId1 !== types/* ChainId.Matic */.a_.Matic) return (0,src/* createPageable */.LI)([], (0,src/* createIndicator */.sz)(indicator)); + const url = dist_default()(RSS3_ENDPOINT, '/assets/list', { + personaID: address1, + type: src_types/* RSS3BaseAPI.AssetType.NFT */.b.AssetType.NFT + }); + const { status , assets =[] } = await (0,helpers/* fetchJSON */.ZV)(url); + if (!status) return (0,src/* createPageable */.LI)([], (0,src/* createIndicator */.sz)(indicator)); + const data = assets.filter((x)=>[ + 'Ethereum-NFT', + 'Polygon-NFT' + ].includes(x.type) + ).map((asset)=>{ + const [address, tokenId] = asset.id.split('-'); + const chainId = asset.type === 'Ethereum-NFT' ? types/* ChainId.Mainnet */.a_.Mainnet : types/* ChainId.Matic */.a_.Matic; + return { + id: asset.id, + type: src/* TokenType.NonFungible */.iv.NonFungible, + schema: types/* SchemaType.ERC721 */.XQ.ERC721, + chainId, + address, + tokenId, + collection: { + chainId, + name: asset.info.collection ?? '', + slug: '' + } + }; + }).filter((x)=>x.chainId === chainId1 + ); + return (0,src/* createPageable */.LI)(data, (0,src/* createIndicator */.sz)(indicator)); + } +} + + +/***/ }), + +/***/ 37894: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "U": () => (/* binding */ TokenListAPI) +/* harmony export */ }); +/* harmony import */ var lodash_unified__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(18443); +/* harmony import */ var _dimensiondev_kit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(46123); +/* harmony import */ var _masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(67938); +/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(72499); +/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(94861); +/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(5326); + + + + +const fetchTokenList = (0,_dimensiondev_kit__WEBPACK_IMPORTED_MODULE_0__/* .memoizePromise */ .J3)(async (url)=>{ + const response = await fetch(url, { + cache: 'force-cache' + }); + return response.json(); +}, (url)=>url +); +/** + * Fetch tokens from common token list + * @param url + * @param chainId + */ async function fetchCommonERC20TokensFromTokenList(url, chainId = _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Mainnet */ .a_.Mainnet) { + return (await fetchTokenList(url)).tokens.filter((x)=>x.chainId === chainId && ( true ? _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .chainResolver.isMainnet */ .VU.isMainnet(chainId) : 0) + ).map((x)=>({ + id: x.address, + type: _masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .TokenType.Fungible */ .iv.Fungible, + schema: _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .SchemaType.ERC20 */ .XQ.ERC20, + ...x, + logoURL: x.logoURI + }) + ); +} +/** + * Fetch tokens adapter + * @param urls + * @param chainId + */ async function fetchERC20TokensFromTokenList(urls, chainId = _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Mainnet */ .a_.Mainnet) { + const allRequest = urls.map(async (x)=>{ + const tokens = await fetchCommonERC20TokensFromTokenList(x, chainId); + return { + tokens, + weight: x.startsWith('https://tokens.r2d2.to') ? 1 : 0 + }; + }); + const allListResponse = await Promise.allSettled(allRequest); + return allListResponse.map((x)=>x.status === 'fulfilled' ? x.value : { + tokens: [], + weight: 0 + } + ); +} +/** + * Fetch tokens from multiple token lists + * @param urls + * @param chainId + */ class TokenListAPI { + async fetchFungibleTokensFromTokenLists(chainId1, url) { + const result = (0,_dimensiondev_kit__WEBPACK_IMPORTED_MODULE_0__/* .memoizePromise */ .J3)(async (urls, chainId = _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Mainnet */ .a_.Mainnet)=>{ + const tokens = (await fetchERC20TokensFromTokenList(urls, chainId)).sort((a, b)=>b.weight - a.weight + ).flatMap((x)=>x.tokens + ); + return (0,lodash_unified__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z)(tokens, (x)=>x.address.toLowerCase() + ).map((token)=>{ + return { + ...token, + address: (0,_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_5__/* .formatEthereumAddress */ .j8)(token.address) + }; + }); + }, (urls, chainId)=>`${chainId}-${urls.join()}` + ); + return result(url, chainId1); + } +} + + +/***/ }), + +/***/ 90586: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "I": () => (/* binding */ TwitterAPI) +/* harmony export */ }); +/* harmony import */ var lodash_unified__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(39345); +/* harmony import */ var urlcat__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(19802); +/* harmony import */ var urlcat__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(urlcat__WEBPACK_IMPORTED_MODULE_0__); + + +const UPLOAD_AVATAR_URL = 'https://upload.twitter.com/i/media/upload.json'; +function getScriptURL(content, name) { + const matchURL = new RegExp(`https://abs.twimg.com/responsive-web/\(client-web|client-web-\\w+\)\{1\}/${(0,lodash_unified__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)(`${name}.`)}\\w+${(0,lodash_unified__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)('.js')}`, 'm'); + const [url] = content.match(matchURL) ?? []; + return url; +} +function getScriptContentMatched(content, pattern) { + const [, matched] = content.match(pattern) ?? []; + return matched; +} +function getCSRFToken() { + const ct0 = document.cookie.split('; ').find((x)=>x.includes('ct0') + ); + if (!ct0) return ''; + const [, value] = ct0.split('='); + return value; +} +async function getScriptContent(url) { + const response = await fetch(url); + return response.text(); +} +async function getTokens() { + const swContent = await getScriptContent('https://twitter.com/sw.js'); + const mainContent = await getScriptContent(getScriptURL(swContent ?? '', 'main')); + const nftContent = await getScriptContent(getScriptURL(swContent ?? '', 'bundle.UserNft')); + const bearerToken = getScriptContentMatched(mainContent ?? '', /s="(\w+%3D\w+)"/); + const queryToken = getScriptContentMatched(nftContent ?? '', /{\s?id:\s?"([\w-]+)"/); + const csrfToken = getCSRFToken(); + return { + bearerToken, + queryToken, + csrfToken + }; +} +async function getUserNftContainer(screenName, queryToken, bearerToken, csrfToken) { + const response = await fetch(urlcat__WEBPACK_IMPORTED_MODULE_0___default()(`https://twitter.com/i/api/graphql/:queryToken/userNftContainer_Query?variables=${encodeURIComponent(JSON.stringify({ + screenName + }))}`, { + queryToken + }), { + headers: { + authorization: `Bearer ${bearerToken}`, + 'x-csrf-token': csrfToken, + 'content-type': 'application/json', + 'x-twitter-auth-type': 'OAuth2Session', + 'x-twitter-active-user': 'yes', + referer: `https://twitter.com/${screenName}/nft` + } + }); + return response.json(); +} +async function getSettings(bearerToken, csrfToken) { + const response = await fetch(urlcat__WEBPACK_IMPORTED_MODULE_0___default()('https://twitter.com/i/api/1.1/account/settings.json', { + include_mention_filter: false, + include_nsfw_user_flag: false, + include_nsfw_admin_flag: false, + include_ranked_timeline: false, + include_alt_text_compose: false, + include_country_code: false, + include_ext_dm_nsfw_media_filter: false + }), { + headers: { + authorization: `Bearer ${bearerToken}`, + 'x-csrf-token': csrfToken, + 'content-type': 'application/json', + 'x-twitter-auth-type': 'OAuth2Session', + 'x-twitter-active-user': 'yes', + referer: 'https://twitter.com/home' + } + }); + return response.json(); +} +class TwitterAPI { + async getSettings() { + const { bearerToken , queryToken , csrfToken } = await getTokens(); + if (!bearerToken || !csrfToken) return; + return getSettings(bearerToken, csrfToken); + } + async getUserNftContainer(screenName) { + const { bearerToken , queryToken , csrfToken } = await getTokens(); + if (!bearerToken || !queryToken || !csrfToken) return; + const result = await getUserNftContainer(screenName, queryToken, bearerToken, csrfToken); + if (!result?.data?.user?.result?.has_nft_avatar) return; + return { + address: result.data.user.result.nft_avatar_metadata.smart_contract.address, + token_id: result.data.user.result.nft_avatar_metadata.token_id, + type_name: result.data.user.result.nft_avatar_metadata.smart_contract.__typename + }; + } + async uploadUserAvatar(screenName, image) { + // INIT + const initURL = `${UPLOAD_AVATAR_URL}?command=INIT&total_bytes=${image.size}&media_type=${encodeURIComponent(image.type)}`; + const initRes = await request(initURL, { + method: 'POST', + credentials: 'include' + }); + const mediaId = initRes.media_id_string; + // APPEND + const appendURL = `${UPLOAD_AVATAR_URL}?command=APPEND&media_id=${mediaId}&segment_index=0`; + const formData = new FormData(); + formData.append('media', image); + await fetch(appendURL, { + method: 'POST', + credentials: 'include', + body: formData + }); + // FINALIZE + const finalizeURL = `${UPLOAD_AVATAR_URL}?command=FINALIZE&media_id=${mediaId}`; + return request(finalizeURL, { + method: 'POST', + credentials: 'include' + }); + } + async updateProfileImage(screenName, media_id_str) { + const { bearerToken , queryToken , csrfToken } = await getTokens(); + const headers = { + authorization: `Bearer ${bearerToken}`, + 'x-csrf-token': csrfToken, + 'content-type': 'application/json', + 'x-twitter-auth-type': 'OAuth2Session', + 'x-twitter-active-user': 'yes', + referer: `https://twitter.com/${screenName}` + }; + const updateProfileImageURL = 'https://twitter.com/i/api/1.1/account/update_profile_image.json'; + if (!bearerToken || !queryToken || !csrfToken) return; + const response = await fetch(urlcat__WEBPACK_IMPORTED_MODULE_0___default()(updateProfileImageURL, { + media_id: media_id_str, + skip_status: 1, + return_user: true + }), { + method: 'POST', + credentials: 'include', + headers + }); + const updateInfo = await response.json(); + return { + imageUrl: updateInfo.profile_image_url_https, + mediaId: updateInfo.id_str, + nickname: updateInfo.name, + userId: updateInfo.screen_name + }; + } +} +function request(url, // `RequestInit` is a type for configuring +// a `fetch` request. By default, an empty object. +config = {}) { + // Inside, we call the `fetch` function with + // a URL and config given: + return fetch(url, config)// When got a response call a `json` method on it + .then((response)=>response.json() + )// and return the result data. + .then((data)=>data + ); +// We also can use some post-response +// data-transformations in the last `then` clause. +} + + +/***/ }), + +/***/ 3779: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "b": () => (/* binding */ RSS3BaseAPI) +/* harmony export */ }); +var RSS3BaseAPI; +(function(RSS3BaseAPI1) { + let AssetType; + (function(AssetType) { + AssetType["GitcoinDonation"] = 'Gitcoin-Donation'; + AssetType["POAP"] = "POAP"; + AssetType["NFT"] = "NFT"; + })(AssetType = RSS3BaseAPI1.AssetType || (RSS3BaseAPI1.AssetType = {})); +})(RSS3BaseAPI || (RSS3BaseAPI = {})); + + +/***/ }), + +/***/ 47769: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "F": () => (/* binding */ EthereumWeb3API) +/* harmony export */ }); +/* harmony import */ var lodash_unified__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(49086); +/* harmony import */ var lodash_unified__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(29730); +/* harmony import */ var web3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(75692); +/* harmony import */ var web3__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(web3__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(67938); +/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(5326); +/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(47104); +/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(94861); + + + + +function avg(arr) { + // eslint-disable-next-line unicorn/no-array-reduce + const sum = arr.reduce((a, v)=>a + v + ); + return Math.round(sum / arr.length); +} +class EthereumWeb3API { + formatFeeHistory(result) { + let index = 0; + const blockNumber = Number(result.oldestBlock); + const blocks = []; + while(index < EthereumWeb3API.HISTORICAL_BLOCKS){ + blocks.push({ + number: blockNumber + index, + baseFeePerGas: Number.parseInt((0,lodash_unified__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z)(result.baseFeePerGas, index) ?? '0', 16), + gasUsedRatio: (0,lodash_unified__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z)(result.gasUsedRatio, index) || 0, + priorityFeePerGas: (0,lodash_unified__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z)(result.reward, index)?.map((x)=>Number.parseInt(x, 16) + ) ?? Array.from({ + length: 3 + }).fill(0) + }); + index += 1; + } + return blocks; + } + async getGasOptionsForEIP1559(web3) { + const history = await web3.eth.getFeeHistory(EthereumWeb3API.HISTORICAL_BLOCKS, 'pending', [ + 25, + 50, + 75 + ]); + const blocks = this.formatFeeHistory(history); + const slow = avg(blocks.map((b)=>b.priorityFeePerGas[0] + )); + const normal = avg(blocks.map((b)=>b.priorityFeePerGas[1] + )); + const fast = avg(blocks.map((b)=>b.priorityFeePerGas[2] + )); + // get the base fee per gas from the pending block + const block = await web3.eth.getBlock('pending'); + const baseFeePerGas = block?.baseFeePerGas ?? 0; + return { + [_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .GasOptionType.FAST */ .Qd.FAST]: { + estimatedBaseFee: (0,_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .formatWeiToGwei */ .f1)(baseFeePerGas).toFixed(), + estimatedSeconds: 0, + suggestedMaxFeePerGas: (0,_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .formatWeiToGwei */ .f1)(baseFeePerGas + fast).toFixed(), + suggestedMaxPriorityFeePerGas: (0,_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .formatWeiToGwei */ .f1)(fast).toFixed() + }, + [_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .GasOptionType.NORMAL */ .Qd.NORMAL]: { + estimatedBaseFee: (0,_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .formatWeiToGwei */ .f1)(baseFeePerGas).toFixed(), + estimatedSeconds: 0, + suggestedMaxFeePerGas: (0,_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .formatWeiToGwei */ .f1)(baseFeePerGas + normal).toFixed(), + suggestedMaxPriorityFeePerGas: (0,_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .formatWeiToGwei */ .f1)(normal).toFixed() + }, + [_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .GasOptionType.SLOW */ .Qd.SLOW]: { + estimatedBaseFee: (0,_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .formatWeiToGwei */ .f1)(baseFeePerGas).toFixed(), + estimatedSeconds: 0, + suggestedMaxFeePerGas: (0,_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .formatWeiToGwei */ .f1)(baseFeePerGas + slow).toFixed(), + suggestedMaxPriorityFeePerGas: (0,_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .formatWeiToGwei */ .f1)(slow).toFixed() + } + }; + } + async getGasOptionsForPriorEIP1559(web3) { + const gasPrice = await web3.eth.getGasPrice(); + return { + [_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .GasOptionType.FAST */ .Qd.FAST]: { + estimatedBaseFee: '0', + estimatedSeconds: 0, + suggestedMaxFeePerGas: (0,_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .formatWeiToGwei */ .f1)(gasPrice).toFixed(), + suggestedMaxPriorityFeePerGas: '0' + }, + [_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .GasOptionType.NORMAL */ .Qd.NORMAL]: { + estimatedBaseFee: '0', + estimatedSeconds: 0, + suggestedMaxFeePerGas: (0,_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .formatWeiToGwei */ .f1)(gasPrice).toFixed(), + suggestedMaxPriorityFeePerGas: '0' + }, + [_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .GasOptionType.SLOW */ .Qd.SLOW]: { + estimatedBaseFee: '0', + estimatedSeconds: 0, + suggestedMaxFeePerGas: (0,_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .formatWeiToGwei */ .f1)(gasPrice).toFixed(), + suggestedMaxPriorityFeePerGas: '0' + } + }; + } + async getGasOptions(chainId) { + const RPC_URL = (0,lodash_unified__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z)((0,_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_5__/* .getRPCConstants */ .t0)(chainId).RPC_URLS); + if (!RPC_URL) throw new Error('Failed to create web3 provider.'); + const web3 = new (web3__WEBPACK_IMPORTED_MODULE_0___default())(RPC_URL); + const isEIP1559 = _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_6__/* .chainResolver.isSupport */ .VU.isSupport(chainId, 'EIP1559'); + if (isEIP1559) return this.getGasOptionsForEIP1559(web3); + else return this.getGasOptionsForPriorEIP1559(web3); + } +} +EthereumWeb3API.HISTORICAL_BLOCKS = 4; + + +/***/ }), + +/***/ 23975: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; + +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "C": () => (/* binding */ ZerionAPI) +}); + +// UNUSED EXPORTS: resolveZerionAssetsScopeName + +// EXTERNAL MODULE: ../../node_modules/.pnpm/socket.io-client@2.4.0/node_modules/socket.io-client/lib/index.js +var lib = __webpack_require__(99941); +var lib_default = /*#__PURE__*/__webpack_require__.n(lib); +// EXTERNAL MODULE: ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/values.js + 1 modules +var values = __webpack_require__(70682); +// EXTERNAL MODULE: ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/unionWith.js +var unionWith = __webpack_require__(71846); +// EXTERNAL MODULE: ../../node_modules/.pnpm/@dimensiondev+kit@0.0.0-20220617045824-8bc7a27/node_modules/@dimensiondev/kit/esm/index.js +var esm = __webpack_require__(46123); +// EXTERNAL MODULE: ../web3-shared/base/src/index.ts + 1 modules +var src = __webpack_require__(67938); +// EXTERNAL MODULE: ../web3-shared/evm/types/index.ts +var types = __webpack_require__(72499); +// EXTERNAL MODULE: ../web3-shared/evm/constants/constants.ts + 12 modules +var constants = __webpack_require__(47104); +// EXTERNAL MODULE: ../../node_modules/.pnpm/bignumber.js@9.0.2/node_modules/bignumber.js/bignumber.js +var bignumber = __webpack_require__(42263); +var bignumber_default = /*#__PURE__*/__webpack_require__.n(bignumber); +// EXTERNAL MODULE: ../web3-shared/evm/utils/formatter.ts +var formatter = __webpack_require__(5326); +;// CONCATENATED MODULE: ../web3-providers/src/zerion/type.ts +var ZerionRBDTransactionType; +(function(ZerionRBDTransactionType) { + ZerionRBDTransactionType["SEND"] = 'send'; + ZerionRBDTransactionType["RECEIVE"] = 'receive'; + ZerionRBDTransactionType["TRADE"] = 'trade'; + ZerionRBDTransactionType["AUTHORIZE"] = 'authorize'; + ZerionRBDTransactionType["EXECUTION"] = 'execution'; + ZerionRBDTransactionType["DEPLOYMENT"] = 'deployment'; + ZerionRBDTransactionType["CANCEL"] = 'cancel'; + ZerionRBDTransactionType["DEPOSIT"] = 'deposit'; + ZerionRBDTransactionType["WITHDRAW"] = 'withdraw'; + ZerionRBDTransactionType["BORROW"] = 'borrow'; + ZerionRBDTransactionType["REPAY"] = 'repay'; + ZerionRBDTransactionType["STAKE"] = 'stake'; + ZerionRBDTransactionType["UNSTAKE"] = 'unstake'; + ZerionRBDTransactionType["CLAIM"] = 'claim'; +})(ZerionRBDTransactionType || (ZerionRBDTransactionType = {})); +var ZerionTransactionStatus; +(function(ZerionTransactionStatus) { + ZerionTransactionStatus["CONFIRMED"] = 'confirmed'; + ZerionTransactionStatus["FAILED"] = 'failed'; + ZerionTransactionStatus["PENDING"] = 'pending'; +})(ZerionTransactionStatus || (ZerionTransactionStatus = {})); +var ZerionTransactionDirection; +(function(ZerionTransactionDirection) { + ZerionTransactionDirection["IN"] = 'in'; + ZerionTransactionDirection["OUT"] = 'out'; + ZerionTransactionDirection["SELF"] = 'self'; +})(ZerionTransactionDirection || (ZerionTransactionDirection = {})); + +;// CONCATENATED MODULE: ../web3-providers/src/zerion/format.ts + + + + +function resolveZerionAssetsScopeName(networkType) { + return getZerionConstants(networkResolver.networkChainId(networkType)).ASSETS_SCOPE_NAME ?? ''; +} +const resolveChainByScope = (0,src/* createLookupTableResolver */.FG)({ + assets: { + chain: 'eth', + chainId: types/* ChainId.Mainnet */.a_.Mainnet + }, + 'bsc-assets': { + chain: 'bsc', + chainId: types/* ChainId.BSC */.a_.BSC + }, + 'polygon-assets': { + chain: 'matic', + chainId: types/* ChainId.Matic */.a_.Matic + } +}, { + chain: 'unknown' +}); +function formatAssets(chainId, data) { + return data.map(({ asset , quantity })=>{ + const balance = (0,src/* leftShift */.w5)(quantity, asset.decimals).toNumber(); + const value = (asset.price?.value ?? asset.value) ?? 0; + const isNativeToken = (symbol)=>[ + 'ETH', + 'BNB', + 'MATIC', + 'ARETH', + 'AETH', + 'ONE' + ].includes(symbol) + ; + const address = isNativeToken(asset.symbol) ? (0,constants/* getTokenConstants */.aV)().NATIVE_TOKEN_ADDRESS ?? '' : asset.asset_code; + return { + id: address, + chainId, + type: src/* TokenType.Fungible */.iv.Fungible, + schema: types/* SchemaType.ERC20 */.XQ.ERC20, + name: asset.name ?? 'Unknown Token', + symbol: asset.symbol, + decimals: asset.decimals, + address: (0,formatter/* formatEthereumAddress */.j8)(address), + logoURI: asset.icon_url, + balance: quantity, + price: { + usd: new (bignumber_default())(value).toString() + }, + value: { + usd: (0,src/* multipliedBy */.$q)(balance, value).toString() + } + }; + }); +} +function formatTransactions(chainId, data) { + return data.filter(({ type })=>type !== ZerionRBDTransactionType.AUTHORIZE + ).map((transaction)=>{ + const ethGasFee = (0,src/* leftShift */.w5)(transaction.fee?.value ?? 0, 18).toString(); + const usdGasFee = (0,src/* multipliedBy */.$q)(ethGasFee, transaction.fee?.price ?? 0).toString(); + return { + id: transaction.hash, + type: transaction.type, + filterType: transaction.type, + from: transaction.address_from ?? '', + to: transaction.address_to ?? '', + timestamp: transaction.mined_at, + status: transaction.status === ZerionTransactionStatus.FAILED ? 0 : 1, + tokens: transaction.changes?.map(({ asset , direction , value })=>{ + return { + id: asset.asset_code, + // TODO: distinguish NFT + type: src/* TokenType.Fungible */.iv.Fungible, + schema: types/* SchemaType.ERC20 */.XQ.ERC20, + chainId, + name: asset.name, + symbol: asset.symbol, + address: asset.asset_code, + direction, + amount: (0,src/* leftShift */.w5)(value, asset.decimals).toString(), + logoURI: asset.icon_url + }; + }) ?? [], + fee: { + eth: ethGasFee, + usd: usdGasFee + } + }; + }); +} + +// EXTERNAL MODULE: ../web3-providers/src/helpers.ts +var helpers = __webpack_require__(7541); +;// CONCATENATED MODULE: ../web3-providers/src/zerion/index.ts + + + + + + + +const ZERION_API = 'wss://api-v4.zerion.io'; +// cspell:disable-next-line +const ZERION_TOKEN = 'Mask.yEUEfDnoxgLBwNEcYPVussxxjdrGwapj'; +let socket = null; +function zerion_resolveZerionAssetsScopeName(chainId) { + return getZerionConstants(chainId).ASSETS_SCOPE_NAME ?? ''; +} +function createSocket() { + if (socket?.connected) return socket; + if (socket) socket.removeAllListeners(); + return socket = lib_default()(`${ZERION_API}/address`, { + transports: [ + 'websocket' + ], + query: { + api_token: ZERION_TOKEN + }, + // disable the auto reconnection + reconnection: false + }); +} +function verify(request, response) { + // each value in request payload must be found in response meta + return Object.keys(request.payload).every((key)=>{ + const requestValue = request.payload[key]; + const responseMetaValue = response.meta[key]; + if (typeof requestValue === 'object') { + return JSON.stringify(requestValue) === JSON.stringify(responseMetaValue); + } + return responseMetaValue === requestValue; + }); +} +function subscribeFromZerion(socketNamespace, requestBody) { + return new Promise((resolve)=>{ + const { socket: socket1 , namespace } = socketNamespace; + const model = requestBody.scope[0]; + socket1.emit('subscribe', requestBody); + socket1.on(`received ${namespace} ${model}`, (data)=>{ + if (verify(requestBody, data)) { + resolve(data); + } + }); + }); +} +async function getAssetsList(address, scope) { + return await subscribeFromZerion({ + namespace: 'address', + socket: createSocket() + }, { + scope: [ + scope + ], + payload: { + address, + currency: 'usd' + } + }); +} +async function getTransactionList(address, scope, page, size = 30) { + return await subscribeFromZerion({ + namespace: 'address', + socket: createSocket() + }, { + scope: [ + scope + ], + payload: { + address, + currency: 'usd', + transactions_limit: size, + transactions_offset: (page ?? 0) * size, + transactions_search_query: '' + } + }); +} +const filterAssetType = [ + 'compound', + 'trash', + 'uniswap', + 'uniswap-v2', + 'nft' +]; +class ZerionAPI { + async getAssets(address, options) { + let result = []; + const pairs = (0,esm/* getEnumAsArray */.Yl)(types/* ChainId */.a_).map((x)=>[ + x.value, + (0,constants/* getZerionConstants */.oV)(x.value).ASSETS_SCOPE_NAME + ] + ); + for (const [chainId, scope] of pairs){ + if (!scope) continue; + const { meta , payload } = await getAssetsList(address, scope); + if (meta.status !== 'ok') throw new Error('Fail to load assets.'); + const assets = Object.entries(payload).map(([key, value])=>{ + if (key === 'assets') { + const assetsList = (0,values/* default */.Z)(value).filter(({ asset })=>asset.is_displayable && !filterAssetType.some((type)=>type === asset.type + ) && asset.icon_url + ); + return formatAssets(chainId, assetsList); + } + return formatAssets(chainId, (0,values/* default */.Z)(value)); + }); + result = [ + ...result, + ...assets.flat() + ]; + } + return (0,src/* createPageable */.LI)((0,unionWith/* default */.Z)(result, (0,helpers/* getAllEVMNativeAssets */.DN)(), (a, z)=>a.symbol === z.symbol + ), (0,src/* createIndicator */.sz)(options?.indicator)); + } + async getTransactions(address, options) { + let result = []; + // xdai-assets is not support + const pairs = (0,esm/* getEnumAsArray */.Yl)(types/* ChainId */.a_).map((x)=>[ + x.value, + (0,constants/* getZerionConstants */.oV)(x.value).TRANSACTIONS_SCOPE_NAME + ] + ); + for (const [chainId, scope] of pairs){ + if (!scope) continue; + const { meta , payload } = await getTransactionList(address, scope); + if (meta.status !== 'ok') throw new Error('Fail to load transactions.'); + result = [ + ...result, + ...formatTransactions(chainId, payload.transactions) + ]; + } + return result; + } +} + + +/***/ }), + +/***/ 11379: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "c": () => (/* binding */ ZoraAPI) +/* harmony export */ }); +// import { getAssetQuery, getTokenHistoryQuery, getBidsQuery, getAsksQuery } from './queries' +// import { ZORA_MAINNET_GRAPHQL_URL } from './constants' +// function createNFTAsset(asset: ZoraToken): NonFungibleAsset { +// const image_url = +// asset.metadata.json.image ?? asset.metadata.json.animation_url ?? asset.metadata.json.image_url ?? '' +// const animation_url = asset.metadata.json.image ?? asset.metadata.json.animation_url ?? '' +// return { +// is_verified: false, +// is_auction: asset.currentAuction !== null, +// image_url: resolveIPFSLinkFromURL(image_url), +// asset_contract: { +// name: asset.tokenContract.name, +// description: '', +// schemaName: '', +// }, +// current_price: asset.v3Ask ? formatWeiToEther(asset.v3Ask.askPrice).toNumber() : null, +// current_symbol: asset.symbol ?? 'ETH', +// owner: asset.owner +// ? { +// address: asset.owner, +// profile_img_url: '', +// user: { username: asset.owner }, +// link: `https://zora.co/${asset?.owner}`, +// } +// : null, +// creator: asset.metadata.json.created_by +// ? { +// address: asset.metadata.json.created_by, +// profile_img_url: '', +// user: { username: asset.metadata.json.created_by }, +// link: `https://zora.co/${asset?.metadata.json.created_by}`, +// } +// : null, +// token_id: asset.tokenId, +// token_address: asset.address, +// traits: asset.metadata.json.attributes, +// safelist_request_status: '', +// description: asset.metadata.json.description, +// name: asset.name ?? asset.metadata.json.name, +// collection_name: '', +// animation_url: resolveIPFSLinkFromURL(animation_url), +// end_time: asset.currentAuction ? new Date(asset.currentAuction.expiresAt) : null, +// order_payment_tokens: [] as FungibleTokenDetailed[], +// offer_payment_tokens: [] as FungibleTokenDetailed[], +// slug: '', +// top_ownerships: asset.owner +// ? [ +// { +// owner: { +// address: asset.owner, +// profile_img_url: '', +// user: { username: asset.owner }, +// link: `https://zora.co/${asset.owner}`, +// }, +// }, +// ] +// : [], +// response_: asset, +// last_sale: null, +// } +// } +// function createERC721TokenFromAsset(tokenAddress: string, tokenId: string, asset?: ZoraToken): ERC721TokenDetailed { +// return { +// contractDetailed: { +// type: EthereumTokenType.ERC721, +// chainId: ChainId.Mainnet, +// address: tokenAddress, +// name: asset?.tokenContract.name ?? '', +// symbol: '', +// }, +// info: { +// name: asset?.metadata.json.name ?? '', +// description: asset?.metadata.json.description ?? '', +// mediaUrl: asset?.metadata.json.animation_url ?? asset?.metadata.json.image_url ?? '', +// owner: asset?.owner, +// }, +// tokenId, +// } +// } +class ZoraAPI { +} + + +/***/ }), + +/***/ 67938: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; + +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "V2": () => (/* reexport */ specs/* CurrencyType */.V2), + "Qd": () => (/* reexport */ specs/* GasOptionType */.Qd), + "FF": () => (/* reexport */ specs/* NetworkPluginID */.FF), + "ry": () => (/* reexport */ utils/* ONE */.ry), + "oU": () => (/* reexport */ specs/* OrderSide */.oU), + "bN": () => (/* reexport */ specs/* SocialAddressType */.bN), + "PO": () => (/* reexport */ specs/* SourceType */.PO), + "iv": () => (/* reexport */ specs/* TokenType */.iv), + "vt": () => (/* reexport */ specs/* TransactionDescriptorType */.vt), + "g8": () => (/* reexport */ specs/* TransactionStatusType */.g8), + "xE": () => (/* reexport */ utils/* ZERO */.xE), + "Ck": () => (/* reexport */ utils/* attemptUntil */.Ck), + "ti": () => (/* reexport */ utils/* createChainResolver */.ti), + "Qv": () => (/* reexport */ utils/* createExplorerResolver */.Qv), + "mn": () => (/* reexport */ utils/* createFungibleToken */.mn), + "iI": () => (/* reexport */ utils/* createFungibleTokensFromConstants */.iI), + "sz": () => (/* reexport */ utils/* createIndicator */.sz), + "FG": () => (/* reexport */ utils/* createLookupTableResolver */.FG), + "iu": () => (/* reexport */ utils/* createNetworkResolver */.iu), + "gT": () => (/* reexport */ utils/* createNextIndicator */.gT), + "RV": () => (/* reexport */ utils/* createNonFungibleToken */.RV), + "GN": () => (/* reexport */ utils/* createNonFungibleTokenCollection */.GN), + "Xi": () => (/* reexport */ utils/* createNonFungibleTokenContract */.Xi), + "BD": () => (/* reexport */ utils/* createNonFungibleTokenMetadata */.BD), + "LI": () => (/* reexport */ utils/* createPageable */.LI), + "Km": () => (/* reexport */ utils/* createPredicate */.Km), + "Xg": () => (/* reexport */ utils/* createProviderResolver */.Xg), + "DC": () => (/* reexport */ utils/* currySameAddress */.DC), + "az": () => (/* reexport */ utils/* formatBalance */.az), + "xG": () => (/* reexport */ utils/* formatCurrency */.xG), + "SL": () => (/* reexport */ utils/* hookTransform */.SL), + "T1": () => (/* reexport */ utils/* isGreaterThan */.T1), + "KH": () => (/* reexport */ utils/* isGreaterThanOrEqualTo */.KH), + "FI": () => (/* reexport */ utils/* isLessThan */.FI), + "PW": () => (/* reexport */ utils/* isLessThanOrEqualTo */.PW), + "P$": () => (/* reexport */ utils/* isOne */.P$), + "xP": () => (/* reexport */ utils/* isPositive */.xP), + "Wr": () => (/* reexport */ utils/* isSameAddress */.Wr), + "Fr": () => (/* reexport */ utils/* isZero */.Fr), + "w5": () => (/* reexport */ utils/* leftShift */.w5), + "h9": () => (/* reexport */ utils/* minus */.h9), + "$q": () => (/* reexport */ utils/* multipliedBy */.$q), + "J": () => (/* reexport */ utils/* pageableToIterator */.J), + "wA": () => (/* reexport */ utils/* pow10 */.wA), + "Vk": () => (/* reexport */ utils/* resolveSourceName */.Vk), + "pu": () => (/* reexport */ utils/* rightShift */.pu), + "SI": () => (/* reexport */ utils/* scale10 */.SI), + "FH": () => (/* reexport */ utils/* toFixed */.FH), + "ux": () => (/* reexport */ utils/* toZero */.ux), + "vs": () => (/* reexport */ utils/* transform */.vs), + "rm": () => (/* reexport */ utils/* transformFromJSON */.rm) +}); + +// UNUSED EXPORTS: ProviderProxy, dividedBy, getProxyWebsocketInstance, getWebSocketInstance, resolveCurrencyName, sendMessageToProxy, toNumber + +// EXTERNAL MODULE: ../web3-shared/base/src/specs/index.ts +var specs = __webpack_require__(4922); +// EXTERNAL MODULE: ../web3-shared/base/src/utils/index.ts +var utils = __webpack_require__(6405); +// EXTERNAL MODULE: ../../node_modules/.pnpm/date-fns@2.28.0/node_modules/date-fns/esm/differenceInSeconds/index.js +var differenceInSeconds = __webpack_require__(23131); +// EXTERNAL MODULE: ../../node_modules/.pnpm/date-fns@2.28.0/node_modules/date-fns/esm/compareAsc/index.js +var compareAsc = __webpack_require__(10671); +// EXTERNAL MODULE: ../../node_modules/.pnpm/reconnecting-websocket@4.4.0/node_modules/reconnecting-websocket/dist/reconnecting-websocket-mjs.js +var reconnecting_websocket_mjs = __webpack_require__(10568); +;// CONCATENATED MODULE: ../web3-shared/base/src/proxy/index.ts + + + +const POOL_CACHE_EXPIRE_TIME = 30; +const POOL_CACHE_MAX_CAPACITY = 10; +class ProviderProxy { + /** + * Send request to proxy websocket + * @param message + */ send(message) { + this.clearPool(); + const cache = this._pool.get(message.id); + if (cache && !cache.done) return; + if (cache && !this.isExpired(cache)) { + const notify = message.notify || this._globalNotify; + notify({ + id: message.id, + done: true, + from: 'cache' + }); + return; + } + this._socket.send(JSON.stringify({ + id: message.id, + method: message.method, + params: message.params + })); + this._pool.set(message.id, { + data: [], + createdAt: new Date(), + notify: message.notify || this._globalNotify + }); + } + /** + * Send async request to proxy websocket, Avoid use this method + * @param message + */ async sendAsync(message) { + this.clearPool(); + const cache = this._pool.get(message.id); + if (cache && !this.isExpired(cache)) return this.getResult(message.id) ?? []; + const innerMessagePromise = ()=>new Promise((resolve, reject)=>{ + message.notify = (info)=>{ + if (info.done) resolve(info); + if (info.error) reject(info); + }; + this.send(message); + }) + ; + await innerMessagePromise(); + return this.getResult(message.id) ?? []; + } + get socket() { + return this._socket; + } + getResult(id) { + const item = this._pool.get(id); + if (!item) return []; + const newItem = { + ...item, + pickedAt: new Date() + }; + this._pool.set(id, newItem); + return item.data; + } + /** + * Cache is expired + * @param item cache item + * @returns boolean + */ isExpired(item) { + const now = new Date(); + return !!item.updatedAt && (0,differenceInSeconds/* default */.Z)(now, item.updatedAt) > POOL_CACHE_EXPIRE_TIME; + } + clearPool() { + let beCleaned = []; + const entities = Array.from(this._pool.entries()); + // clear expired + beCleaned = entities.filter((x)=>this.isExpired(x[1]) + ); + // clear overed size + if (entities.length > POOL_CACHE_MAX_CAPACITY) { + const picks = entities.sort((a, b)=>(0,compareAsc/* default */.Z)(a[1].pickedAt || a[1].createdAt, b[1].pickedAt || b[1].createdAt) + ).slice(0, entities.length - POOL_CACHE_MAX_CAPACITY); + beCleaned = [ + ...beCleaned, + ...picks + ]; + } + beCleaned.forEach((x)=>this._pool.delete(x[0]) + ); + } + constructor(point, notifyFn){ + this.waitingOpen = ()=>{ + return new Promise((resolve, reject)=>{ + this._socket.addEventListener('open', ()=>resolve() + ); + this._socket.addEventListener('error', ()=>reject() + ); + }); + }; + this.onMessage = (event)=>{ + const { id , results , error } = JSON.parse(event.data); + const itemInPoll = this._pool.get(id); + if (!itemInPoll) return; + if (error || !id) { + itemInPoll.notify({ + id, + done: true, + error, + from: 'remote' + }); + } + const updatedAt = new Date(); + if (!results || results.length === 0) { + this._pool.set(id, { + ...itemInPoll, + done: true + }); + itemInPoll.notify({ + id, + done: true, + from: 'remote' + }); + return; + } + const dataInPool = itemInPoll?.data ?? []; + const patchData = [ + ...dataInPool, + ...results ?? [] + ]; + this._pool.set(id, { + ...itemInPoll, + updatedAt, + data: patchData + }); + itemInPoll.notify({ + id, + done: false, + from: 'remote' + }); + }; + this.registerMessage = ()=>{ + this._socket.removeEventListener('message', this.onMessage); + this._socket.addEventListener('message', this.onMessage); + }; + this._socket = new reconnecting_websocket_mjs/* default */.Z(point, undefined, { + minUptime: 20000 + }); + this._pool = new Map(); + this._globalNotify = notifyFn; + } +} +const SOCKET_POINT = // workaround, should create a stage env for QA testing + true ? 'wss://hyper-proxy-production.mask-reverse-proxy.workers.dev' : 0; +var SocketState; +(function(SocketState) { + SocketState[SocketState["CONNECTING"] = 0] = "CONNECTING"; + SocketState[SocketState["OPEN"] = 1] = "OPEN"; + SocketState[SocketState["CLOSING"] = 2] = "CLOSING"; + SocketState[SocketState["CLOSED"] = 3] = "CLOSED"; +})(SocketState || (SocketState = {})); +/** + * Provider a ProxySocket instance + * @returns a function to operate socket instance + */ function getProxyWebsocketInstanceWrapper() { + let cachedInstance; + const createNewInstance = async (notify)=>{ + cachedInstance = new ProviderProxy(SOCKET_POINT, notify); + await cachedInstance.waitingOpen(); + cachedInstance.registerMessage(); + }; + return async (notify)=>{ + if (cachedInstance) return cachedInstance; + await createNewInstance(notify); + return cachedInstance; + }; +} +const getProxyWebsocketInstance = getProxyWebsocketInstanceWrapper(); +/** + * Provide a websocket instance for once, avoid use it. + * @param endPoint websocket endpoint + * @returns websocket instance + */ const getWebSocketInstance = async (endPoint)=>{ + const socket = new WebSocket(endPoint ?? SOCKET_POINT); + const waitingOpen = ()=>{ + return new Promise((resolve, reject)=>{ + socket.addEventListener('open', ()=>resolve() + ); + socket.addEventListener('error', ()=>reject() + ); + }); + }; + await waitingOpen(); + return socket; +}; +/** + * Provide a websocket instance for once, avoid use it. + * @param message endPoint + * @param [endPoint = SOCKET_POINT] endPoint + * @returns promise of request + */ const sendMessageToProxy = async (message, endPoint)=>{ + let data = []; + const socket = await getWebSocketInstance(SOCKET_POINT ?? endPoint); + const sendPromise = ()=>new Promise((resolve, reject)=>{ + socket.addEventListener('message', (event)=>{ + const { results =[] , error } = JSON.parse(event.data); + if (error) { + socket.close(); + reject(error); + } + if (results.length === 0) { + socket.close(); + resolve(data); + } + data = [ + ...data, + ...results + ]; + }); + socket.send(JSON.stringify(message)); + }) + ; + return sendPromise(); +}; + +;// CONCATENATED MODULE: ../web3-shared/base/src/index.ts + + + + + +/***/ }), + +/***/ 4922: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "FF": () => (/* binding */ NetworkPluginID), +/* harmony export */ "PO": () => (/* binding */ SourceType), +/* harmony export */ "Qd": () => (/* binding */ GasOptionType), +/* harmony export */ "V2": () => (/* binding */ CurrencyType), +/* harmony export */ "bN": () => (/* binding */ SocialAddressType), +/* harmony export */ "g8": () => (/* binding */ TransactionStatusType), +/* harmony export */ "iv": () => (/* binding */ TokenType), +/* harmony export */ "oU": () => (/* binding */ OrderSide), +/* harmony export */ "vt": () => (/* binding */ TransactionDescriptorType) +/* harmony export */ }); +var NetworkPluginID; +(function(NetworkPluginID) { + NetworkPluginID["PLUGIN_EVM"] = 'com.mask.evm'; + NetworkPluginID["PLUGIN_FLOW"] = 'com.mask.flow'; + NetworkPluginID["PLUGIN_SOLANA"] = 'com.mask.solana'; +})(NetworkPluginID || (NetworkPluginID = {})); +var CurrencyType; +(function(CurrencyType) { + CurrencyType["NATIVE"] = 'native'; + CurrencyType["BTC"] = 'btc'; + CurrencyType["USD"] = 'usd'; +})(CurrencyType || (CurrencyType = {})); +var OrderSide; +(function(OrderSide) { + OrderSide[OrderSide["Buy"] = 0] = "Buy"; + OrderSide[OrderSide["Sell"] = 1] = "Sell"; +})(OrderSide || (OrderSide = {})); +var GasOptionType; +(function(GasOptionType) { + GasOptionType["FAST"] = 'fast'; + GasOptionType["NORMAL"] = 'normal'; + GasOptionType["SLOW"] = 'slow'; +})(GasOptionType || (GasOptionType = {})); +var TokenType; +(function(TokenType) { + TokenType["Fungible"] = "Fungible"; + TokenType["NonFungible"] = "NonFungible"; +})(TokenType || (TokenType = {})); +var SourceType; +(function(SourceType) { + SourceType[// FT assets + "DeBank"] = "DeBank"; + SourceType["Zerion"] = "Zerion"; + SourceType[// NFT assets + "RSS3"] = "RSS3"; + SourceType["Zora"] = 'zora'; + SourceType["OpenSea"] = 'opensea'; + SourceType["Rarible"] = 'rarible'; + SourceType["NFTScan"] = "NFTScan"; + SourceType["Alchemy_EVM"] = "Alchemy_EVM"; + SourceType["Alchemy_FLOW"] = "Alchemy_FLOW"; +})(SourceType || (SourceType = {})); +var TransactionStatusType; +(function(TransactionStatusType) { + TransactionStatusType[TransactionStatusType["NOT_DEPEND"] = 1] = "NOT_DEPEND"; + TransactionStatusType[TransactionStatusType["SUCCEED"] = 2] = "SUCCEED"; + TransactionStatusType[TransactionStatusType["FAILED"] = 3] = "FAILED"; +})(TransactionStatusType || (TransactionStatusType = {})); +var TransactionDescriptorType; +(function(TransactionDescriptorType) { + TransactionDescriptorType[/** Transfer on chain value. */ "TRANSFER"] = 'transfer'; + TransactionDescriptorType[/** A transaction to operate state mutations. */ "INTERACTION"] = 'interaction'; + TransactionDescriptorType[/** A transaction to deploy programs. */ "DEPLOYMENT"] = 'deployment'; + TransactionDescriptorType[/** A transaction to cancel a previous transaction. */ "CANCEL"] = 'cancel'; + TransactionDescriptorType[/** A transaction to modify a previous transaction. */ "RETRY"] = 'retry'; +})(TransactionDescriptorType || (TransactionDescriptorType = {})); +var SocialAddressType; +(function(SocialAddressType) { + SocialAddressType["ADDRESS"] = "ADDRESS"; + SocialAddressType["ENS"] = "ENS"; + SocialAddressType["UNS"] = "UNS"; + SocialAddressType["DNS"] = "DNS"; + SocialAddressType["RSS3"] = "RSS3"; + SocialAddressType["KV"] = "KV"; + SocialAddressType["GUN"] = "GUN"; + SocialAddressType["THE_GRAPH"] = "THE_GRAPH"; + SocialAddressType["TWITTER_BLUE"] = "TWITTER_BLUE"; + SocialAddressType["NEXT_ID"] = "NEXT_ID"; + SocialAddressType["SOL"] = "SOL"; +})(SocialAddressType || (SocialAddressType = {})); + + +/***/ }), + +/***/ 77362: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "D": () => (/* binding */ currySameAddress), +/* harmony export */ "W": () => (/* binding */ isSameAddress) +/* harmony export */ }); +/* harmony import */ var lodash_unified__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(27862); +/* harmony import */ var lodash_unified__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(78854); +/* harmony import */ var lodash_unified__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(70322); + +function isSameAddress(address, otherAddress) { + if (!address || !otherAddress) return false; + return address.toLowerCase() === otherAddress.toLowerCase(); +} +function currySameAddress(addresses = []) { + addresses = (0,lodash_unified__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)((0,lodash_unified__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)((0,lodash_unified__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z)(addresses))).map((address)=>address.toLowerCase() + ); + return (target)=>{ + if (addresses.length === 0 || !target) return false; + if (typeof target === 'string') { + return addresses.includes(target.toLowerCase()); + } else if (typeof target === 'object' && typeof target.address === 'string') { + return addresses.includes(target.address.toLowerCase()); + } + throw new Error('Unsupported `target` address format'); + }; +} + + +/***/ }), + +/***/ 64469: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "a": () => (/* binding */ formatBalance) +/* harmony export */ }); +/* harmony import */ var bignumber_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(42263); +/* harmony import */ var bignumber_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(bignumber_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _number__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(13763); + + +function formatBalance(rawValue = '0', decimals = 0, significant = decimals) { + let balance = new (bignumber_js__WEBPACK_IMPORTED_MODULE_0___default())(rawValue); + if (balance.isNaN()) return '0'; + const negative = balance.isNegative() // balance < 0n + ; + const base = (0,_number__WEBPACK_IMPORTED_MODULE_1__/* .pow10 */ .wA)(decimals) // 10n ** decimals + ; + if (negative) balance = balance.absoluteValue() // balance * -1n + ; + let fraction = balance.modulo(base).toString(10) // (balance % base).toString(10) + ; + // add leading zeros + while(fraction.length < decimals)fraction = `0${fraction}`; + // match significant digits + const matchSignificantDigits = new RegExp(`^0*[1-9]\\d{0,${significant > 0 ? significant - 1 : 0}}`); + fraction = fraction.match(matchSignificantDigits)?.[0] ?? ''; + // trim tailing zeros + fraction = fraction.replace(/0+$/g, ''); + const whole = balance.dividedToIntegerBy(base).toString(10) // (balance / base).toString(10) + ; + const value = `${whole}${fraction === '' ? '' : `.${fraction}`}`; + const raw = negative ? `-${value}` : value; + return raw.includes('.') ? raw.replace(/0+$/, '').replace(/\.$/, '') : raw; +} + + +/***/ }), + +/***/ 78182: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "SL": () => (/* binding */ hookTransform), +/* harmony export */ "rm": () => (/* binding */ transformFromJSON), +/* harmony export */ "vs": () => (/* binding */ transform) +/* harmony export */ }); +/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(58757); + +function transform(chainIdEnum, constants, environment = {}) { + return (chainId = 1)=>{ + const chainName = chainIdEnum[chainId]; + // unknown chain id + if (!chainName) return Object.freeze({}); + const entries = Object.keys(constants).map((name)=>{ + let value = constants[name][chainName]; + if (Array.isArray(value)) { + value = value.map((item)=>{ + if (typeof item === 'string') { + return replaceAll(item, environment); + } + return item; + }); + } else if (typeof value === 'string') { + value = replaceAll(value, environment); + } + return [ + name, + value + ]; + }); + return Object.freeze(Object.fromEntries(entries)); + }; +} +function transformFromJSON(chainIdEnum, json, fallbackConstants, environment = {}) { + try { + const constants = JSON.parse(json); + return transform(chainIdEnum, constants, environment); + } catch { + return transform(chainIdEnum, fallbackConstants, environment); + } +} +function hookTransform(getConstants) { + return function useConstants(chainId = 1) { + return (0,react__WEBPACK_IMPORTED_MODULE_0__.useMemo)(()=>getConstants(chainId) + , [ + chainId + ]); + }; +} +function replaceAll(input, values) { + return input.replace(/\${([^}]+)}/g, (match, p1)=>values[p1] ?? match + ); +} + + +/***/ }), + +/***/ 73403: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "x": () => (/* binding */ formatCurrency) +/* harmony export */ }); +/* harmony import */ var bignumber_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(42263); +/* harmony import */ var bignumber_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(bignumber_js__WEBPACK_IMPORTED_MODULE_0__); + +function formatCurrency(value, currency = 'USD') { + return new Intl.NumberFormat('en-US', { + style: 'currency', + currency, + currencyDisplay: 'narrowSymbol' + }).format(new (bignumber_js__WEBPACK_IMPORTED_MODULE_0___default())(value).toNumber()); +} + + +/***/ }), + +/***/ 40485: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "C": () => (/* binding */ attemptUntil), +/* harmony export */ "K": () => (/* binding */ createPredicate) +/* harmony export */ }); +function createPredicate(candidates) { + return (candidate)=>!!candidate && candidates.includes(candidate) + ; +} +async function attemptUntil(funcs, fallback) { + for (const func of funcs){ + try { + return await func(); + } catch { + continue; + } + } + return fallback; +} + + +/***/ }), + +/***/ 13763: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "$q": () => (/* binding */ multipliedBy), +/* harmony export */ "FH": () => (/* binding */ toFixed), +/* harmony export */ "FI": () => (/* binding */ isLessThan), +/* harmony export */ "Fr": () => (/* binding */ isZero), +/* harmony export */ "KH": () => (/* binding */ isGreaterThanOrEqualTo), +/* harmony export */ "P$": () => (/* binding */ isOne), +/* harmony export */ "PW": () => (/* binding */ isLessThanOrEqualTo), +/* harmony export */ "SI": () => (/* binding */ scale10), +/* harmony export */ "T1": () => (/* binding */ isGreaterThan), +/* harmony export */ "h9": () => (/* binding */ minus), +/* harmony export */ "pu": () => (/* binding */ rightShift), +/* harmony export */ "ry": () => (/* binding */ ONE), +/* harmony export */ "ux": () => (/* binding */ toZero), +/* harmony export */ "w5": () => (/* binding */ leftShift), +/* harmony export */ "wA": () => (/* binding */ pow10), +/* harmony export */ "xE": () => (/* binding */ ZERO), +/* harmony export */ "xP": () => (/* binding */ isPositive) +/* harmony export */ }); +/* unused harmony exports dividedBy, toNumber */ +/* harmony import */ var bignumber_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(42263); +/* harmony import */ var bignumber_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(bignumber_js__WEBPACK_IMPORTED_MODULE_0__); + +const ZERO = new (bignumber_js__WEBPACK_IMPORTED_MODULE_0___default())('0'); +const ONE = new (bignumber_js__WEBPACK_IMPORTED_MODULE_0___default())('1'); +/** if abs(n) < m then return 0 */ function toZero(n, m = 1e-6) { + const n_ = new (bignumber_js__WEBPACK_IMPORTED_MODULE_0___default())(n); + return n_.abs().isLessThanOrEqualTo(m) ? ZERO : n_; +} +/** n === 0 */ function isZero(n) { + return n === 0 || n === '0' || new (bignumber_js__WEBPACK_IMPORTED_MODULE_0___default())(n).isZero(); +} +/** n === 1 */ function isOne(n) { + return n === 1 || n === '1' || new (bignumber_js__WEBPACK_IMPORTED_MODULE_0___default())(n).isEqualTo(ONE); +} +/** a > b */ function isGreaterThan(a, b) { + return new (bignumber_js__WEBPACK_IMPORTED_MODULE_0___default())(a).isGreaterThan(b); +} +/** a >= b */ function isGreaterThanOrEqualTo(a, b) { + return new (bignumber_js__WEBPACK_IMPORTED_MODULE_0___default())(a).isGreaterThanOrEqualTo(b); +} +/** a < b */ function isLessThan(a, b) { + return new (bignumber_js__WEBPACK_IMPORTED_MODULE_0___default())(a).isLessThan(b); +} +/** a <= b */ function isLessThanOrEqualTo(a, b) { + return new (bignumber_js__WEBPACK_IMPORTED_MODULE_0___default())(a).isLessThanOrEqualTo(b); +} +/** a > 0 */ function isPositive(n) { + return new (bignumber_js__WEBPACK_IMPORTED_MODULE_0___default())(n).isPositive(); +} +/** a * b */ function multipliedBy(a, b) { + return new (bignumber_js__WEBPACK_IMPORTED_MODULE_0___default())(a).multipliedBy(b); +} +/** a - b */ function minus(a, b) { + return new (bignumber_js__WEBPACK_IMPORTED_MODULE_0___default())(a).minus(b); +} +/** 10 ** n */ /** @deprecated use scale10 */ function pow10(n) { + return new (bignumber_js__WEBPACK_IMPORTED_MODULE_0___default())(10).pow(n); +} +/** scale 10 ** n * m */ function scale10(m, n = 1) { + const x = new (bignumber_js__WEBPACK_IMPORTED_MODULE_0___default())(1).shiftedBy(n); + return n === 1 ? x : x.multipliedBy(m); +} +/** n * (10 ** m) */ function rightShift(n, m) { + return new (bignumber_js__WEBPACK_IMPORTED_MODULE_0___default())(n).shiftedBy(+(m ?? 0)); +} +/** n / (10 ** m) */ function leftShift(n, m) { + return new (bignumber_js__WEBPACK_IMPORTED_MODULE_0___default())(n).shiftedBy(-(m ?? 0)); +} +/** a / b */ function dividedBy(a, b) { + return new BigNumber(a).dividedBy(b); +} +/** new BigNumber(n).toNumber() */ function toNumber(value, fallback = 0) { + return new BigNumber(value ?? fallback).toNumber(); +} +function toFixed(value = 0, decimalPlaces) { + const n = new (bignumber_js__WEBPACK_IMPORTED_MODULE_0___default())(value); + return decimalPlaces ? n.toFixed(decimalPlaces) : n.toFixed(); +} + + +/***/ }), + +/***/ 60668: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "LI": () => (/* binding */ createPageable), +/* harmony export */ "T1": () => (/* binding */ pageableToIterator), +/* harmony export */ "gT": () => (/* binding */ createNextIndicator), +/* harmony export */ "sz": () => (/* binding */ createIndicator) +/* harmony export */ }); +function createIndicator(indicator, id) { + const index = indicator?.index ?? 0; + return { + id: (id ?? indicator?.id) ?? index.toString(), + index + }; +} +function createNextIndicator(indicator, id) { + const index = (indicator?.index ?? 0) + 1; + return typeof id === 'string' ? { + id, + index + } : { + id: index.toString(), + index + }; +} +function createPageable(data, indicator, nextIndicator) { + if (typeof nextIndicator !== 'undefined') { + return { + data, + indicator, + nextIndicator + }; + } + return { + data, + indicator + }; +} +async function* pageableToIterator(getPageable, { maxSize =25 } = {}) { + let indicator = createIndicator(); + for(let i = 0; i < maxSize; i += 1){ + try { + const pageable = await getPageable(indicator); + if (!pageable) return; + yield* pageable.data; + if (!pageable.nextIndicator) return; + indicator = pageable.nextIndicator; + } catch (error) { + yield new Error(error.message); + } + } +} + + +/***/ }), + +/***/ 31257: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "FG": () => (/* binding */ createLookupTableResolver), +/* harmony export */ "Qv": () => (/* binding */ createExplorerResolver), +/* harmony export */ "Vk": () => (/* binding */ resolveSourceName), +/* harmony export */ "Xg": () => (/* binding */ createProviderResolver), +/* harmony export */ "iu": () => (/* binding */ createNetworkResolver), +/* harmony export */ "ti": () => (/* binding */ createChainResolver) +/* harmony export */ }); +/* unused harmony export resolveCurrencyName */ +/* harmony import */ var urlcat__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(19802); +/* harmony import */ var urlcat__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(urlcat__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _specs__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(4922); + + +function createLookupTableResolver(map, fallback) { + function resolveFallback(key) { + if (typeof fallback === 'function') return fallback(key); + return fallback; + } + return (key)=>map[key] ?? resolveFallback(key) + ; +} +function createChainResolver(descriptors) { + const getChainDescriptor = (chainId)=>descriptors.find((x)=>x.chainId === chainId + ) + ; + return { + chainId: (name)=>name ? descriptors.find((x1)=>[ + x1.name, + x1.fullName, + x1.shortName, + x1.network + ].map((x)=>x?.toLowerCase() + ).filter(Boolean).includes(name?.toLowerCase()) + )?.chainId : undefined + , + coinMarketCapChainId: (chainId)=>getChainDescriptor(chainId)?.coinMarketCapChainId + , + coinGeckoChainId: (chainId)=>getChainDescriptor(chainId)?.coinGeckoChainId + , + coinGeckoPlatformId: (chainId)=>getChainDescriptor(chainId)?.coinGeckoPlatformId + , + chainName: (chainId)=>getChainDescriptor(chainId)?.name + , + chainFullName: (chainId)=>getChainDescriptor(chainId)?.fullName + , + chainShortName: (chainId)=>getChainDescriptor(chainId)?.shortName + , + chainColor: (chainId)=>getChainDescriptor(chainId)?.color + , + chainPrefix: (chainId)=>'ETH:' + , + chainNetworkType: (chainId)=>getChainDescriptor(chainId)?.type + , + infoURL: (chainId)=>getChainDescriptor(chainId)?.explorerURL + , + nativeCurrency: (chainId)=>getChainDescriptor(chainId)?.nativeCurrency + , + isValid: (chainId, testnet = false)=>getChainDescriptor(chainId)?.network === 'mainnet' || testnet + , + isMainnet: (chainId)=>getChainDescriptor(chainId)?.network === 'mainnet' + , + isSupport: (chainId, feature)=>!!(feature && getChainDescriptor(chainId)?.features?.includes(feature)) + }; +} +function createExplorerResolver(descriptors, { addressPathname ='/address/:address' , blockPathname ='/block/:blockNumber' , transactionPathname ='/tx/:id' , domainPathname ='/address/:domain' , fungibleTokenPathname ='/address/:address' , nonFungibleTokenPathname ='/nft/:address/:tokenId' } = {}) { + const getExplorerURL = (chainId)=>{ + const chainDescriptor = descriptors.find((x)=>x.chainId === chainId + ); + return chainDescriptor?.explorerURL ?? { + url: '' + }; + }; + return { + explorerURL: getExplorerURL, + addressLink: (chainId, address)=>urlcat__WEBPACK_IMPORTED_MODULE_0___default()(getExplorerURL(chainId).url, addressPathname, { + address, + ...getExplorerURL(chainId)?.parameters + }) + , + blockLink: (chainId, blockNumber)=>urlcat__WEBPACK_IMPORTED_MODULE_0___default()(getExplorerURL(chainId).url, blockPathname, { + blockNumber, + ...getExplorerURL(chainId)?.parameters + }) + , + transactionLink: (chainId, id)=>urlcat__WEBPACK_IMPORTED_MODULE_0___default()(getExplorerURL(chainId).url, transactionPathname, { + id, + ...getExplorerURL(chainId)?.parameters + }) + , + domainLink: (chainId, domain)=>urlcat__WEBPACK_IMPORTED_MODULE_0___default()(getExplorerURL(chainId).url, domainPathname, { + domain, + ...getExplorerURL(chainId)?.parameters + }) + , + fungibleTokenLink: (chainId, address)=>urlcat__WEBPACK_IMPORTED_MODULE_0___default()(getExplorerURL(chainId).url, fungibleTokenPathname, { + address, + ...getExplorerURL(chainId)?.parameters + }) + , + nonFungibleTokenLink: (chainId, address, tokenId)=>{ + return urlcat__WEBPACK_IMPORTED_MODULE_0___default()(getExplorerURL(chainId).url, nonFungibleTokenPathname, { + address, + tokenId, + ...getExplorerURL(chainId)?.parameters + }); + } + }; +} +function createNetworkResolver(descriptors) { + const getNetworkDescriptor = (networkType)=>descriptors.find((x)=>x.type === networkType + ) + ; + return { + networkName: (networkType)=>getNetworkDescriptor(networkType)?.name + , + networkChainId: (networkType)=>getNetworkDescriptor(networkType)?.chainId + }; +} +function createProviderResolver(descriptors) { + const getProviderDescriptor = (providerType)=>descriptors.find((x)=>x.type === providerType + ) + ; + return { + providerName: (providerType)=>getProviderDescriptor(providerType)?.name + , + providerHomeLink: (providerType)=>getProviderDescriptor(providerType)?.homeLink + , + providerShortenLink: (providerType)=>getProviderDescriptor(providerType)?.shortenLink + , + providerDownloadLink: (providerType)=>getProviderDescriptor(providerType)?.downloadLink + }; +} +// A workaround for extracting un-exported internal types. +// Learn more https://stackoverflow.com/questions/50321419/typescript-returntype-of-generic-function +class Wrapper { + createChainResolver(descriptors) { + return createChainResolver(descriptors); + } + createExplorerResolver(descriptors, routes) { + return createExplorerResolver(descriptors, routes); + } + createNetworkResolver(descriptors) { + return createNetworkResolver(descriptors); + } + createProviderResolver(descriptors) { + return createProviderResolver(descriptors); + } +} +const resolveSourceName = createLookupTableResolver({ + [_specs__WEBPACK_IMPORTED_MODULE_1__/* .SourceType.DeBank */ .PO.DeBank]: 'DeBank', + [_specs__WEBPACK_IMPORTED_MODULE_1__/* .SourceType.Zerion */ .PO.Zerion]: 'Zerion', + [_specs__WEBPACK_IMPORTED_MODULE_1__/* .SourceType.RSS3 */ .PO.RSS3]: 'RSS3', + [_specs__WEBPACK_IMPORTED_MODULE_1__/* .SourceType.OpenSea */ .PO.OpenSea]: 'OpenSea', + [_specs__WEBPACK_IMPORTED_MODULE_1__/* .SourceType.Rarible */ .PO.Rarible]: 'Rarible', + [_specs__WEBPACK_IMPORTED_MODULE_1__/* .SourceType.NFTScan */ .PO.NFTScan]: 'NFTScan', + [_specs__WEBPACK_IMPORTED_MODULE_1__/* .SourceType.Zora */ .PO.Zora]: 'Zora', + [_specs__WEBPACK_IMPORTED_MODULE_1__/* .SourceType.Alchemy_EVM */ .PO.Alchemy_EVM]: 'Alchemy_EVM', + [_specs__WEBPACK_IMPORTED_MODULE_1__/* .SourceType.Alchemy_FLOW */ .PO.Alchemy_FLOW]: 'Alchemy_FLOW' +}, (providerType)=>{ + throw new Error(`Unknown provider type: ${providerType}.`); +}); +const resolveCurrencyName = createLookupTableResolver({ + [_specs__WEBPACK_IMPORTED_MODULE_1__/* .CurrencyType.BTC */ .V2.BTC]: 'BTC', + [_specs__WEBPACK_IMPORTED_MODULE_1__/* .CurrencyType.NATIVE */ .V2.NATIVE]: 'ETH', + [_specs__WEBPACK_IMPORTED_MODULE_1__/* .CurrencyType.USD */ .V2.USD]: 'USD' +}, (CurrencyType1)=>{ + throw new Error(`Unknown currency type: ${CurrencyType1}.`); +}); + + +/***/ }), + +/***/ 75387: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "BD": () => (/* binding */ createNonFungibleTokenMetadata), +/* harmony export */ "GN": () => (/* binding */ createNonFungibleTokenCollection), +/* harmony export */ "RV": () => (/* binding */ createNonFungibleToken), +/* harmony export */ "Xi": () => (/* binding */ createNonFungibleTokenContract), +/* harmony export */ "iI": () => (/* binding */ createFungibleTokensFromConstants), +/* harmony export */ "mn": () => (/* binding */ createFungibleToken) +/* harmony export */ }); +/* harmony import */ var lodash_unified__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(26972); +/* harmony import */ var lodash_unified__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(43543); +/* harmony import */ var _specs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(4922); + + +function createFungibleToken(chainId, schema, address, name, symbol, decimals, logoURL) { + return { + chainId, + type: _specs__WEBPACK_IMPORTED_MODULE_0__/* .TokenType.Fungible */ .iv.Fungible, + schema, + id: address, + address, + name, + symbol, + decimals, + logoURL + }; +} +function createNonFungibleTokenMetadata(chainId, name, symbol, description, mediaType, mediaURL, imageURL) { + return { + chainId, + name, + symbol, + description, + mediaURL, + mediaType, + imageURL + }; +} +function createNonFungibleTokenContract(chainId, schema, address, name, symbol) { + return { + chainId, + schema, + name, + symbol, + address + }; +} +function createNonFungibleTokenCollection(chainId, name, slug, description, iconURL, verified, createdAt) { + return { + chainId, + name, + slug, + description, + iconURL, + verified, + createdAt + }; +} +function createNonFungibleToken(chainId, address, schema, tokenId, ownerId, metadata, contract, collection) { + return { + chainId, + id: address, + type: _specs__WEBPACK_IMPORTED_MODULE_0__/* .TokenType.NonFungible */ .iv.NonFungible, + schema, + address, + tokenId, + ownerId, + metadata, + contract, + collection + }; +} +function createFungibleTokensFromConstants(chainIds, schema, constants) { + return (key, name, symbol, decimals)=>{ + const chainIdGroup = (0,lodash_unified__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)(chainIds, 'value'); + return (0,lodash_unified__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z)(chainIdGroup, ({ key: chainName , value: chainId })=>{ + const evaluator = (f)=>// @ts-ignore + typeof f === 'function' ? f(chainId) : f + ; + return createFungibleToken(chainId, schema, constants[key][chainName] ?? '', evaluator(name), evaluator(symbol), evaluator(decimals)); + }); + }; +} + + +/***/ }), + +/***/ 47104: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; + +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "wG": () => (/* binding */ getAaveConstants), + "V6": () => (/* binding */ getCoinGeckoConstants), + "fN": () => (/* binding */ getCoinMarketCapConstants), + "Bx": () => (/* binding */ getDeBankConstants), + "Wt": () => (/* binding */ getEthereumConstants), + "i1": () => (/* binding */ getExplorerConstants), + "af": () => (/* binding */ getITOConstants), + "oO": () => (/* binding */ getLidoConstants), + "pS": () => (/* binding */ getNftRedPacketConstants), + "hc": () => (/* binding */ getOpenOceanConstants), + "t0": () => (/* binding */ getRPCConstants), + "GV": () => (/* binding */ getRedPacketConstants), + "ed": () => (/* binding */ getTokenAssetBaseURLConstants), + "aV": () => (/* binding */ getTokenConstants), + "Hi": () => (/* binding */ getTokenListConstants), + "Gr": () => (/* binding */ getTraderConstants), + "$o": () => (/* binding */ getTrendingConstants), + "oV": () => (/* binding */ getZerionConstants), + "Qq": () => (/* binding */ useArtBlocksConstants), + "ZK": () => (/* binding */ useCryptoArtAIConstants), + "HV": () => (/* binding */ useEthereumConstants), + "N_": () => (/* binding */ useGitcoinConstants), + "JH": () => (/* binding */ useGoodGhostingConstants), + "mg": () => (/* binding */ useITOConstants), + "kt": () => (/* binding */ useMaskBoxConstants), + "uq": () => (/* binding */ useNftRedPacketConstants), + "tL": () => (/* binding */ usePoolTogetherConstants), + "j8": () => (/* binding */ useRPCConstants), + "AA": () => (/* binding */ useRedPacketConstants), + "kd": () => (/* binding */ useTokenConstants), + "L7": () => (/* binding */ useTraderConstants) +}); + +// UNUSED EXPORTS: getAirdropConstants, getArtBlocksConstants, getCryptoArtAIConstants, getGitcoinConstants, getGoodGhostingConstants, getMaskBoxConstants, getOpenseaAPIConstants, getPoolTogetherConstants, getSpaceStationGalaxyConstants, useAaveConstants, useAirdropConstants, useCoinGeckoConstants, useCoinMarketCapConstants, useDeBankConstants, useExplorerConstants, useLidoConstants, useOpenOceanConstants, useOpenseaAPIConstants, useSpaceStationGalaxyConstants, useTokenAssetBaseURLConstants, useTokenListConstants, useTrendingConstants, useZerionConstants + +// EXTERNAL MODULE: ../web3-constants/evm/airdrop.json +var airdrop = __webpack_require__(65757); +;// CONCATENATED MODULE: ../web3-constants/evm/ethereum.json +const ethereum_namespaceObject = JSON.parse('{"BALANCE_CHECKER_ADDRESS":{"Mainnet":"0xb1F8e55c7f64D203C1400B9D8555d050F94aDF39","Ropsten":"0xD5C432dFbDEcB6068583BC5241D1b308D70721a4","Rinkeby":"0x0987506Bc4C4167E1a6d0Be0e007E4A9609d5c77","Kovan":"","Gorli":"","BSC":"0xC119574D5Fb333F5AC018658D4d8b5035E16bf39","BSCT":"0x7f004a42D760Eb68eB95Fa50f739917675181fCA","Matic":"0x6cc1b1058F9153358278C35E0b2D382f1585854B","Mumbai":"0xFEd05EE9b7DdbAb97Abc55e27EF95C7c14688Aad","Arbitrum":"0xAb7B1bE4233A04e5C43a810E75657ECED8E5463B","Arbitrum_Rinkeby":"0xF98dC9391273c5ab9fa2c980A8d4F875ece802db","xDai":"0x96c7D011cdFD467f551605f0f5Fce279F86F4186","Avalanche":"0xC119574D5Fb333F5AC018658D4d8b5035E16bf39","Avalanche_Fuji":"","Celo":"0x8e28F1d64ceD52b9A09aB1AA3071Aa3c05802d1F","Fantom":"0xc119574d5fb333f5ac018658d4d8b5035e16bf39","Aurora":"0xC119574D5Fb333F5AC018658D4d8b5035E16bf39","Aurora_Testnet":"","Conflux":"","Harmony":"0xc119574d5fb333f5ac018658d4d8b5035e16bf39","Harmony_Test":""},"MULTICALL_ADDRESS":{"Mainnet":"0x1F98415757620B543A52E61c46B32eB19261F984","Ropsten":"0x1F98415757620B543A52E61c46B32eB19261F984","Rinkeby":"0x1F98415757620B543A52E61c46B32eB19261F984","Kovan":"0x1F98415757620B543A52E61c46B32eB19261F984","Gorli":"0x1F98415757620B543A52E61c46B32eB19261F984","BSC":"0x5211fe40fE49a13CC86E3bC77855152457eDE585","BSCT":"","Matic":"0x54c06a5D7C6447BE47E07390eD7da7e6994585f4","Mumbai":"","Arbitrum":"0xadF885960B47eA2CD9B55E6DAc6B42b7Cb2806dB","Arbitrum_Rinkeby":"0xa501c031958F579dB7676fF1CE78AD305794d579","xDai":"0xAb7B1bE4233A04e5C43a810E75657ECED8E5463B","Avalanche":"0x6cc1b1058F9153358278C35E0b2D382f1585854B","Avalanche_Fuji":"","Celo":"0x072453AdEC16cFC7FB6Af1517c3f25407180cccC","Fantom":"0x913975af2Bb8a6Be4100D7dc5e9765B77F6A5d6c","Aurora":"0x6cc1b1058F9153358278C35E0b2D382f1585854B","Aurora_Testnet":"","Conflux":"0x19f179d7e0d7d9f9d5386afff64271d98a91615b","Harmony":"0x6cc1b1058f9153358278c35e0b2d382f1585854b","Harmony_Test":""},"ENS_REGISTRAR_ADDRESS":{"Mainnet":"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e","Ropsten":"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e","Rinkeby":"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e","Kovan":"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e","Gorli":"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"ENS_REVERSE_RECORDS_ADDRESS":{"Mainnet":"0x3671aE578E63FdF66ad4F3E12CC0c0d71Ac7510C","Ropsten":"0x3671aE578E63FdF66ad4F3E12CC0c0d71Ac7510C","Rinkeby":"0x3671aE578E63FdF66ad4F3E12CC0c0d71Ac7510C","Kovan":"0x3671aE578E63FdF66ad4F3E12CC0c0d71Ac7510C","Gorli":"0x3671aE578E63FdF66ad4F3E12CC0c0d71Ac7510C","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""}}'); +// EXTERNAL MODULE: ../web3-constants/evm/debank.json +var debank = __webpack_require__(60816); +;// CONCATENATED MODULE: ../web3-constants/evm/coingecko.json +const coingecko_namespaceObject = JSON.parse('{"PLATFORM_ID":{"Mainnet":"ethereum","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"binance-smart-chain","BSCT":"","Matic":"polygon-pos","Mumbai":"","Arbitrum":"arbitrum-one","Arbitrum_Rinkeby":"","xDai":"xdai","Avalanche":"avalanche","Avalanche_Fuji":"","Celo":"celo","Fantom":"fantom","Aurora":"aurora","Aurora_Testnet":"","Conflux":"","Harmony":"harmony","Harmony_Test":""},"COIN_ID":{"Mainnet":"ethereum","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"binancecoin","BSCT":"","Matic":"matic-network","Mumbai":"arbitrum-one","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"xdai","Avalanche":"avalanche-2","Avalanche_Fuji":"","Celo":"celo","Fantom":"fantom","Aurora":"ethereum","Aurora_Testnet":"","Conflux":"conflux-token","Harmony":"harmony","Harmony_Test":""}}'); +;// CONCATENATED MODULE: ../web3-constants/evm/coinmarketcap.json +const coinmarketcap_namespaceObject = JSON.parse('{"CHAIN_ID":{"Mainnet":"1027","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"1839","BSCT":"","Matic":"3890","Mumbai":"","Arbitrum":"11841","Arbitrum_Rinkeby":"","xDai":"5601","Avalanche":"43114","Avalanche_Fuji":"","Celo":"5567","Fantom":"3513","Aurora":"14803","Aurora_Testnet":"","Conflux":"7334","Harmony":"3945","Harmony_Test":""}}'); +;// CONCATENATED MODULE: ../web3-constants/evm/zerion.json +const zerion_namespaceObject = JSON.parse('{"ASSETS_SCOPE_NAME":{"Mainnet":"assets","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"bsc-assets","BSCT":"","Matic":"polygon-assets","Mumbai":"","Arbitrum":"arbitrum-assets","Arbitrum_Rinkeby":"","xDai":"xdai-assets","Avalanche":"avalanche-assets","Avalanche_Fuji":"","Celo":"celo-assets","Fantom":"fantom-assets","Aurora":"aurora-assets","Aurora_Testnet":"","Conflux":"","Harmony":"harmony-assets","Harmony_Test":""},"TRANSACTIONS_SCOPE_NAME":{"Mainnet":"transactions","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"bsc-transactions","BSCT":"","Matic":"polygon-transactions","Mumbai":"","Arbitrum":"arbitrum-transactions","Arbitrum_Rinkeby":"","xDai":"xdai-transactions","Avalanche":"avalanche-transactions","Avalanche_Fuji":"","Celo":"celo-transactions","Fantom":"fantom-transactions","Aurora":"aurora-transactions","Aurora_Testnet":"","Conflux":"","Harmony":"harmony-transactions","Harmony_Test":""}}'); +// EXTERNAL MODULE: ../web3-constants/evm/gitcoin.json +var gitcoin = __webpack_require__(56417); +;// CONCATENATED MODULE: ../web3-constants/evm/openocean.json +const openocean_namespaceObject = JSON.parse('{"REFERRER_ADDRESS":{"Mainnet":"0x934B510D4C9103E6a87AEf13b816fb080286D649","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"0x934B510D4C9103E6a87AEf13b816fb080286D649","BSCT":"","Matic":"0x934B510D4C9103E6a87AEf13b816fb080286D649","Mumbai":"","Arbitrum":"0x934B510D4C9103E6a87AEf13b816fb080286D649","Arbitrum_Rinkeby":"","xDai":"0x934B510D4C9103E6a87AEf13b816fb080286D649","Avalanche":"0x934B510D4C9103E6a87AEf13b816fb080286D649","Avalanche_Fuji":"0x934B510D4C9103E6a87AEf13b816fb080286D649","Celo":"0x934B510D4C9103E6a87AEf13b816fb080286D649","Fantom":"0x934B510D4C9103E6a87AEf13b816fb080286D649","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""}}'); +// EXTERNAL MODULE: ../web3-constants/evm/ito.json +var ito = __webpack_require__(25664); +// EXTERNAL MODULE: ../web3-constants/evm/red-packet.json +var red_packet = __webpack_require__(76260); +// EXTERNAL MODULE: ../web3-constants/evm/nft-red-packet.json +var nft_red_packet = __webpack_require__(11847); +// EXTERNAL MODULE: ../web3-constants/evm/token.json +var token = __webpack_require__(25704); +// EXTERNAL MODULE: ../web3-constants/evm/trader.json +var trader = __webpack_require__(24699); +;// CONCATENATED MODULE: ../web3-constants/evm/trending.json +const trending_namespaceObject = JSON.parse('{"UNISWAP_V2_SUBGRAPH_URL":{"Mainnet":"https://api.thegraph.com/subgraphs/name/uniswap/uniswap-v2","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"UNISWAP_V2_HEALTH_URL":{"Mainnet":"https://api.thegraph.com/index-node/graphql","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"ETHEREUM_BLOCKS_SUBGRAPH_URL":{"Mainnet":"https://api.thegraph.com/subgraphs/name/blocklytics/ethereum-blocks","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""}}'); +// EXTERNAL MODULE: ../web3-constants/evm/mask-box.json +var mask_box = __webpack_require__(96054); +;// CONCATENATED MODULE: ../web3-constants/evm/rpc.json +const rpc_namespaceObject = JSON.parse('{"RPC_URLS":{"Mainnet":["https://mainnet.infura.io/v3/d65858b010d249419cf8687eca12b094","https://mainnet.infura.io/v3/d74bd8586b9e44449cef131d39ceeefb","https://mainnet.infura.io/v3/a9d66980bf334e59a42ca19095f3daeb","https://mainnet.infura.io/v3/f39cc8734e294fba9c3938486df2b1bc","https://mainnet.infura.io/v3/659123dd11294baf8a294d7a11cec92c"],"Ropsten":["https://ropsten.infura.io/v3/d65858b010d249419cf8687eca12b094","https://ropsten.infura.io/v3/d74bd8586b9e44449cef131d39ceeefb","https://ropsten.infura.io/v3/a9d66980bf334e59a42ca19095f3daeb","https://ropsten.infura.io/v3/f39cc8734e294fba9c3938486df2b1bc","https://ropsten.infura.io/v3/659123dd11294baf8a294d7a11cec92c"],"Rinkeby":["https://rinkeby.infura.io/v3/d65858b010d249419cf8687eca12b094","https://rinkeby.infura.io/v3/d74bd8586b9e44449cef131d39ceeefb","https://rinkeby.infura.io/v3/a9d66980bf334e59a42ca19095f3daeb","https://rinkeby.infura.io/v3/f39cc8734e294fba9c3938486df2b1bc","https://rinkeby.infura.io/v3/659123dd11294baf8a294d7a11cec92c"],"Kovan":["https://kovan.infura.io/v3/d65858b010d249419cf8687eca12b094","https://kovan.infura.io/v3/d74bd8586b9e44449cef131d39ceeefb","https://kovan.infura.io/v3/a9d66980bf334e59a42ca19095f3daeb","https://kovan.infura.io/v3/f39cc8734e294fba9c3938486df2b1bc","https://kovan.infura.io/v3/659123dd11294baf8a294d7a11cec92c"],"Gorli":["https://goerli.infura.io/v3/d65858b010d249419cf8687eca12b094","https://goerli.infura.io/v3/d74bd8586b9e44449cef131d39ceeefb","https://goerli.infura.io/v3/a9d66980bf334e59a42ca19095f3daeb","https://goerli.infura.io/v3/f39cc8734e294fba9c3938486df2b1bc","https://goerli.infura.io/v3/659123dd11294baf8a294d7a11cec92c"],"BSC":["https://bsc-dataseed.binance.org/"],"BSCT":["https://data-seed-prebsc-1-s1.binance.org:8545/"],"Matic":["https://polygon-mainnet.infura.io/v3/d65858b010d249419cf8687eca12b094","https://polygon-mainnet.infura.io/v3/d74bd8586b9e44449cef131d39ceeefb","https://polygon-mainnet.infura.io/v3/a9d66980bf334e59a42ca19095f3daeb","https://polygon-mainnet.infura.io/v3/f39cc8734e294fba9c3938486df2b1bc","https://polygon-mainnet.infura.io/v3/659123dd11294baf8a294d7a11cec92c"],"Mumbai":["https://polygon-mumbai.infura.io/v3/d65858b010d249419cf8687eca12b094","https://polygon-mumbai.infura.io/v3/d74bd8586b9e44449cef131d39ceeefb","https://polygon-mumbai.infura.io/v3/a9d66980bf334e59a42ca19095f3daeb","https://polygon-mumbai.infura.io/v3/f39cc8734e294fba9c3938486df2b1bc","https://polygon-mumbai.infura.io/v3/659123dd11294baf8a294d7a11cec92c"],"Arbitrum":["https://arb1.arbitrum.io/rpc"],"Arbitrum_Rinkeby":["https://rinkeby.arbitrum.io/rpc"],"xDai":["https://rpc.gnosischain.com"],"Avalanche":["https://api.avax.network/ext/bc/C/rpc"],"Avalanche_Fuji":["https://api.avax-test.network/ext/bc/C/rpc"],"Celo":["https://forno.celo.org"],"Fantom":["https://rpc.ftm.tools"],"Aurora":["https://mainnet.aurora.dev"],"Aurora_Testnet":["https://testnet.aurora.dev"],"Conflux":["https://evm.confluxrpc.com"],"Harmony":["https://harmony-0-rpc.gateway.pokt.network","https://api.harmony.one","https://a.api.s0.t.hmny.io","https://api.s0.t.hmny.io","https://rpc.hermesdefi.io/"],"Harmony_Test":["https://api.s0.b.hmny.io/"]},"RPC_WEIGHTS":{"Mainnet":[0,1,2,3,4],"Ropsten":[0,1,2,3,4],"Rinkeby":[0,1,2,3,4],"Kovan":[0,1,2,3,4],"Gorli":[0,1,2,3,4],"BSC":[0,0,0,0,0],"BSCT":[0,0,0,0,0],"Matic":[0,1,2,3,4],"Mumbai":[0,1,2,3,4],"Arbitrum":[0,0,0,0,0],"Arbitrum_Rinkeby":[0,0,0,0,0],"xDai":[0,0,0,0,0],"Avalanche":[0,0,0,0,0],"Avalanche_Fuji":[0,0,0,0,0],"Celo":[0,0,0,0,0],"Fantom":[0,0,0,0,0],"Aurora":[0,0,0,0,0],"Aurora_Testnet":[0,0,0,0,0],"Conflux":[0,0,0,0,0],"Harmony":[0,0,0,0,0],"Harmony_Test":[0,0,0,0,0]}}'); +;// CONCATENATED MODULE: ../web3-constants/evm/explorer.json +const explorer_namespaceObject = JSON.parse('{"API_KEYS":{"Mainnet":["26GHYKIAZREN4HWJ5NCICTGKC183IGXY9A"],"Ropsten":[],"Rinkeby":[],"Kovan":[],"Gorli":[],"BSC":["5FQ5JHS1BEK4186QCZASE3SD23YD8FIMM8"],"BSCT":[],"Matic":["5HVFKYFPQXWNQ2TFHCAYJJZ3YIYPWQ5HP8"],"Mumbai":[],"Arbitrum":["BE8VU1P9FUKRT15FBHKQMU84829VITWWF2"],"Arbitrum_Rinkeby":[],"xDai":[],"Avalanche":[],"Avalanche_Fuji":[],"Celo":[],"Fantom":["AST4WWPNEYDURUXG2GH32JZMYWEFDP999S"],"Aurora":[],"Aurora_Testnet":[],"Conflux":[],"Harmony":[],"Harmony_Test":[]},"EXPLORER_API":{"Mainnet":"https://api.etherscan.io/api","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"https://api.bscscan.com/api","BSCT":"","Matic":"https://api.polygonscan.com/api","Mumbai":"","Arbitrum":"https://api.arbiscan.io/api","Arbitrum_Rinkeby":"","xDai":"https://blockscout.com/xdai/mainnet/api","Avalanche":"https://api.snowtrace.io/api","Avalanche_Fuji":"https://api-testnet.snowtrace.io/api","Celo":"https://explorer.celo.org/api","Fantom":"https://api.ftmscan.com/api","Aurora":"https://explorer.mainnet.aurora.dev/api","Aurora_Testnet":"https://explorer.testnet.aurora.dev/api","Conflux":"https://evmapi.confluxscan.net/api","Harmony":"https://explorer.harmony.one","Harmony_Test":""}}'); +// EXTERNAL MODULE: ../web3-constants/evm/pooltogether.json +var pooltogether = __webpack_require__(29690); +;// CONCATENATED MODULE: ../web3-constants/evm/token-list.json +const token_list_namespaceObject = JSON.parse('{"FUNGIBLE_TOKEN_LISTS":{"Mainnet":["https://tokens.r2d2.to/latest/1/tokens.json"],"Ropsten":["https://tokens.r2d2.to/latest/3/tokens.json"],"Rinkeby":["https://tokens.r2d2.to/latest/4/tokens.json"],"Kovan":["https://irhonin.github.io/kovan-token-list/kovan-token-list.json"],"Gorli":["https://tokens.r2d2.to/latest/5/tokens.json"],"BSC":["https://tokens.r2d2.to/latest/56/tokens.json"],"BSCT":["https://tokens.r2d2.to/latest/97/tokens.json"],"Matic":["https://tokens.r2d2.to/latest/137/tokens.json"],"Mumbai":["https://tokens.r2d2.to/latest/80001/tokens.json"],"Arbitrum":["https://tokens.r2d2.to/latest/42161/tokens.json"],"Arbitrum_Rinkeby":["https://tokens.r2d2.to/latest/421611/tokens.json"],"xDai":["https://tokens.r2d2.to/latest/100/tokens.json"],"Avalanche":["https://tokens.r2d2.to/latest/43114/tokens.json"],"Avalanche_Fuji":[],"Celo":["https://tokens.r2d2.to/latest/42220/tokens.json"],"Fantom":["https://tokens.r2d2.to/latest/250/tokens.json"],"Aurora":["https://tokens.r2d2.to/latest/1313161554/tokens.json"],"Aurora_Testnet":[],"Conflux":["https://tokens.r2d2.to/latest/1030/tokens.json"],"Harmony":["https://tokens.r2d2.to/latest/1666600000/tokens.json"],"Harmony_Test":["https://tokens.r2d2.to/latest/1666700000/tokens.json"]},"NON_FUNGIBLE_TOKEN_LISTS":{"Mainnet":["https://tokens.r2d2.to/latest/1/non-fungible-tokens.json"],"Ropsten":[],"Rinkeby":[],"Kovan":[],"Gorli":[],"BSC":[],"BSCT":[],"Matic":[],"Mumbai":[],"Arbitrum":[],"Arbitrum_Rinkeby":[],"xDai":[],"Avalanche":[],"Avalanche_Fuji":[],"Celo":[],"Fantom":[],"Aurora":[],"Aurora_Testnet":[],"Conflux":[],"Harmony":[],"Harmony_Test":[]}}'); +;// CONCATENATED MODULE: ../web3-constants/evm/token-asset-base-url.json +const token_asset_base_url_namespaceObject = JSON.parse('{"TOKEN_ASSET_BASE_URI":{"Mainnet":["https://raw.githubusercontent.com/dimensiondev/assets/master/blockchains/ethereum","https://rawcdn.githack.com/dimensiondev/assets/master/blockchains/ethereum"],"Ropsten":["https://raw.githubusercontent.com/dimensiondev/assets/master/blockchains/ethereum","https://rawcdn.githack.com/dimensiondev/assets/master/blockchains/ethereum"],"Rinkeby":["https://raw.githubusercontent.com/dimensiondev/assets/master/blockchains/ethereum","https://rawcdn.githack.com/dimensiondev/assets/master/blockchains/ethereum"],"Kovan":["https://raw.githubusercontent.com/dimensiondev/assets/master/blockchains/ethereum","https://rawcdn.githack.com/dimensiondev/assets/master/blockchains/ethereum"],"Gorli":["https://raw.githubusercontent.com/dimensiondev/assets/master/blockchains/ethereum","https://rawcdn.githack.com/dimensiondev/assets/master/blockchains/ethereum"],"BSC":["https://raw.githubusercontent.com/dimensiondev/assets/master/blockchains/smartchain","https://rawcdn.githack.com/dimensiondev/assets/master/blockchains/smartchain"],"BSCT":["https://raw.githubusercontent.com/dimensiondev/assets/master/blockchains/smartchain","https://rawcdn.githack.com/dimensiondev/assets/master/blockchains/smartchain"],"Matic":["https://raw.githubusercontent.com/dimensiondev/assets/master/blockchains/polygon","https://rawcdn.githack.com/dimensiondev/assets/master/blockchains/polygon"],"Mumbai":["https://raw.githubusercontent.com/dimensiondev/assets/master/blockchains/polygon","https://rawcdn.githack.com/dimensiondev/assets/master/blockchains/polygon"],"Arbitrum":["https://raw.githubusercontent.com/dimensiondev/assets/master/blockchains/arbitrum","https://rawcdn.githack.com/dimensiondev/assets/master/blockchains/arbitrum"],"Arbitrum_Rinkeby":[],"xDai":["https://raw.githubusercontent.com/dimensiondev/assets/master/blockchains/xdai","https://rawcdn.githack.com/dimensiondev/assets/master/blockchains/xdai"],"Avalanche":["https://raw.githubusercontent.com/dimensiondev/assets/master/blockchains/avalanchec","https://rawcdn.githack.com/dimensiondev/assets/master/blockchains/avalanchec"],"Avalanche_Fuji":[],"Celo":[],"Fantom":["https://raw.githubusercontent.com/dimensiondev/assets/master/blockchains/fantom","https://rawcdn.githack.com/dimensiondev/assets/master/blockchains/fantom"],"Aurora":["https://raw.githubusercontent.com/dimensiondev/assets/master/blockchains/aurora","https://rawcdn.githack.com/dimensiondev/assets/master/blockchains/aurora"],"Aurora_Testnet":[],"Conflux":["https://raw.githubusercontent.com/dimensiondev/assets/master/blockchains/conflux","https://rawcdn.githack.com/dimensiondev/assets/master/blockchains/conflux"],"Harmony":["https://raw.githubusercontent.com/dimensiondev/assets/master/blockchains/harmony","https://rawcdn.githack.com/dimensiondev/assets/master/blockchains/harmony"],"Harmony_Test":[]}}'); +// EXTERNAL MODULE: ../web3-constants/evm/good-ghosting.json +var good_ghosting = __webpack_require__(42953); +;// CONCATENATED MODULE: ../web3-constants/evm/space-station-galaxy.json +const space_station_galaxy_namespaceObject = JSON.parse('{"CONTRACT_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"0xdeb1F826c512EEE2FA9398225A3401A0Dd5311E2","Mumbai":"0x1e82cFbcF7292DEf91a2A5736265555883FF0289","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"SUBGRAPH_URL":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"https://graphigo.prd.galaxy.eco/query","Mumbai":"https://graphigo.stg.galaxy.eco/query","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""}}'); +;// CONCATENATED MODULE: ../web3-constants/evm/opensea-api.json +const opensea_api_namespaceObject = JSON.parse('{"GET_CONTRACT_URL":{"Mainnet":"https://api.opensea.io/api/v1/asset_contract","Ropsten":"","Rinkeby":"https://rinkeby-api.opensea.io/api/v1/asset_contract","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"GET_SINGLE_ASSET_URL":{"Mainnet":"https://api.opensea.io/api/v1/asset","Ropsten":"","Rinkeby":"https://rinkeby-api.opensea.io/api/v1/asset","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"GET_ASSETS_URL":{"Mainnet":"https://api.opensea.io/api/v1/assets","Ropsten":"","Rinkeby":"https://rinkeby-api.opensea.io/api/v1/assets","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""}}'); +// EXTERNAL MODULE: ../web3-constants/evm/cryptoartai.json +var cryptoartai = __webpack_require__(35934); +// EXTERNAL MODULE: ../web3-constants/evm/artblocks.json +var artblocks = __webpack_require__(70901); +// EXTERNAL MODULE: ../web3-constants/evm/aave.json +var aave = __webpack_require__(36621); +// EXTERNAL MODULE: ../web3-constants/evm/lido.json +var lido = __webpack_require__(34476); +// EXTERNAL MODULE: ../web3-shared/base/src/index.ts + 1 modules +var src = __webpack_require__(67938); +// EXTERNAL MODULE: ../web3-shared/evm/types/index.ts +var types = __webpack_require__(72499); +;// CONCATENATED MODULE: ../web3-shared/evm/constants/constants.ts + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +function getEnvConstants(key) { + try { + const map = { + WEB3_CONSTANTS_RPC: "" + }; + return map[key] ?? ''; + } catch { + return ''; + } +} +const getAirdropConstants = (0,src/* transform */.vs)(types/* ChainId */.a_, airdrop); +const useAirdropConstants = (0,src/* hookTransform */.SL)(getAirdropConstants); +const getEthereumConstants = (0,src/* transform */.vs)(types/* ChainId */.a_, ethereum_namespaceObject); +const useEthereumConstants = (0,src/* hookTransform */.SL)(getEthereumConstants); +const getDeBankConstants = (0,src/* transform */.vs)(types/* ChainId */.a_, debank); +const useDeBankConstants = (0,src/* hookTransform */.SL)(getDeBankConstants); +const getCoinGeckoConstants = (0,src/* transform */.vs)(types/* ChainId */.a_, coingecko_namespaceObject); +const useCoinGeckoConstants = (0,src/* hookTransform */.SL)(getCoinGeckoConstants); +const getCoinMarketCapConstants = (0,src/* transform */.vs)(types/* ChainId */.a_, coinmarketcap_namespaceObject); +const useCoinMarketCapConstants = (0,src/* hookTransform */.SL)(getCoinMarketCapConstants); +const getZerionConstants = (0,src/* transform */.vs)(types/* ChainId */.a_, zerion_namespaceObject); +const useZerionConstants = (0,src/* hookTransform */.SL)(getZerionConstants); +const getGitcoinConstants = (0,src/* transform */.vs)(types/* ChainId */.a_, gitcoin); +const useGitcoinConstants = (0,src/* hookTransform */.SL)(getGitcoinConstants); +const getOpenOceanConstants = (0,src/* transform */.vs)(types/* ChainId */.a_, openocean_namespaceObject); +const useOpenOceanConstants = (0,src/* hookTransform */.SL)(getOpenOceanConstants); +const getITOConstants = (0,src/* transform */.vs)(types/* ChainId */.a_, ito); +const useITOConstants = (0,src/* hookTransform */.SL)(getITOConstants); +const getRedPacketConstants = (0,src/* transform */.vs)(types/* ChainId */.a_, red_packet); +const useRedPacketConstants = (0,src/* hookTransform */.SL)(getRedPacketConstants); +const getTokenConstants = (0,src/* transform */.vs)(types/* ChainId */.a_, token); +const useTokenConstants = (0,src/* hookTransform */.SL)(getTokenConstants); +const getTraderConstants = (0,src/* transform */.vs)(types/* ChainId */.a_, trader); +const useTraderConstants = (0,src/* hookTransform */.SL)(getTraderConstants); +const getTrendingConstants = (0,src/* transform */.vs)(types/* ChainId */.a_, trending_namespaceObject); +const useTrendingConstants = (0,src/* hookTransform */.SL)(getTrendingConstants); +const getMaskBoxConstants = (0,src/* transform */.vs)(types/* ChainId */.a_, mask_box); +const useMaskBoxConstants = (0,src/* hookTransform */.SL)(getMaskBoxConstants); +const getRPCConstants = (0,src/* transformFromJSON */.rm)(types/* ChainId */.a_, getEnvConstants('WEB3_CONSTANTS_RPC'), rpc_namespaceObject); +const useRPCConstants = (0,src/* hookTransform */.SL)(getRPCConstants); +const getExplorerConstants = (0,src/* transform */.vs)(types/* ChainId */.a_, explorer_namespaceObject); +const useExplorerConstants = (0,src/* hookTransform */.SL)(getExplorerConstants); +const getTokenListConstants = (0,src/* transform */.vs)(types/* ChainId */.a_, token_list_namespaceObject); +const useTokenListConstants = (0,src/* hookTransform */.SL)(getTokenListConstants); +const getTokenAssetBaseURLConstants = (0,src/* transform */.vs)(types/* ChainId */.a_, token_asset_base_url_namespaceObject); +const useTokenAssetBaseURLConstants = (0,src/* hookTransform */.SL)(getTokenAssetBaseURLConstants); +const getPoolTogetherConstants = (0,src/* transform */.vs)(types/* ChainId */.a_, pooltogether); +const usePoolTogetherConstants = (0,src/* hookTransform */.SL)(getPoolTogetherConstants); +const getGoodGhostingConstants = (0,src/* transform */.vs)(types/* ChainId */.a_, good_ghosting); +const useGoodGhostingConstants = (0,src/* hookTransform */.SL)(getGoodGhostingConstants); +const getSpaceStationGalaxyConstants = (0,src/* transform */.vs)(types/* ChainId */.a_, space_station_galaxy_namespaceObject); +const useSpaceStationGalaxyConstants = (0,src/* hookTransform */.SL)(getSpaceStationGalaxyConstants); +const getOpenseaAPIConstants = (0,src/* transform */.vs)(types/* ChainId */.a_, opensea_api_namespaceObject); +const useOpenseaAPIConstants = (0,src/* hookTransform */.SL)(getOpenseaAPIConstants); +const getCryptoArtAIConstants = (0,src/* transform */.vs)(types/* ChainId */.a_, cryptoartai); +const useCryptoArtAIConstants = (0,src/* hookTransform */.SL)(getCryptoArtAIConstants); +const getArtBlocksConstants = (0,src/* transform */.vs)(types/* ChainId */.a_, artblocks); +const useArtBlocksConstants = (0,src/* hookTransform */.SL)(getArtBlocksConstants); +const getNftRedPacketConstants = (0,src/* transform */.vs)(types/* ChainId */.a_, nft_red_packet); +const useNftRedPacketConstants = (0,src/* hookTransform */.SL)(getNftRedPacketConstants); +const getAaveConstants = (0,src/* transform */.vs)(types/* ChainId */.a_, aave); +const useAaveConstants = (0,src/* hookTransform */.SL)(getAaveConstants); +const getLidoConstants = (0,src/* transform */.vs)(types/* ChainId */.a_, lido); +const useLidoConstants = (0,src/* hookTransform */.SL)(getLidoConstants); + + +/***/ }), + +/***/ 13898: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; + +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "Q_": () => (/* binding */ CHAIN_DESCRIPTORS), + "qQ": () => (/* binding */ NETWORK_DESCRIPTORS), + "zM": () => (/* binding */ PROVIDER_DESCRIPTORS) +}); + +// EXTERNAL MODULE: ../../node_modules/.pnpm/@dimensiondev+kit@0.0.0-20220617045824-8bc7a27/node_modules/@dimensiondev/kit/esm/index.js +var esm = __webpack_require__(46123); +// EXTERNAL MODULE: ../web3-shared/base/src/index.ts + 1 modules +var src = __webpack_require__(67938); +;// CONCATENATED MODULE: ../web3-shared/evm/constants/chains.json +const chains_namespaceObject = JSON.parse('[{"chainId":1,"type":"Ethereum","name":"ETH","color":"rgb(28, 104, 243)","network":"mainnet","fullName":"Ethereum","shortName":"eth","features":["EIP1559"],"nativeCurrency":{"chainId":1,"name":"Ether","symbol":"ETH","decimals":18,"logoURL":"https://static.debank.com/image/token/logo_url/eth/935ae4e4d1d12d59a99717a24f2540b5.png"},"infoURL":"https://ethereum.org","explorers":[{"name":"etherscan","url":"https://etherscan.io","standard":"EIP3091"}]},{"chainId":3,"type":"Ethereum","name":"Ropsten","color":"rgb(255, 65, 130)","network":"ropsten","fullName":"Ropsten Test Network","shortName":"rop","features":["EIP1559"],"nativeCurrency":{"chainId":3,"name":"Ropsten Ether","symbol":"ROP","decimals":18,"logoURL":"https://static.debank.com/image/token/logo_url/eth/935ae4e4d1d12d59a99717a24f2540b5.png"},"infoURL":"https://github.com/ethereum/ropsten","explorers":[{"name":"etherscan","url":"https://ropsten.etherscan.io","standard":"EIP3091"}]},{"chainId":4,"type":"Ethereum","name":"Rinkeby","color":"rgb(133, 89, 255)","network":"rinkeby","fullName":"Rinkeby Test Network","shortName":"rin","features":[],"nativeCurrency":{"chainId":4,"name":"Rinkeby Ether","symbol":"RIN","decimals":18,"logoURL":"https://static.debank.com/image/token/logo_url/eth/935ae4e4d1d12d59a99717a24f2540b5.png"},"infoURL":"https://www.rinkeby.io","explorers":[{"name":"etherscan","url":"https://rinkeby.etherscan.io","standard":"EIP3091"}]},{"chainId":42,"type":"Ethereum","name":"Kovan","color":"rgb(133, 89,255)","network":"kovan","fullName":"Kovan Test Network","shortName":"kov","features":[],"nativeCurrency":{"chainId":42,"name":"Kovan Ether","symbol":"KOV","decimals":18},"infoURL":"https://kovan-testnet.github.io/website","explorers":[{"name":"etherscan","url":"https://kovan.etherscan.io","standard":"EIP3091"}]},{"chainId":5,"type":"Ethereum","name":"Goerli","color":"rgb(48, 153, 242)","network":"goerli","fullName":"Goerli Test Network","shortName":"gor","features":[],"nativeCurrency":{"chainId":5,"name":"Görli Ether","symbol":"GOR","decimals":18},"infoURL":"https://goerli.net/#about","explorers":[{"name":"etherscan","url":"https://goerli.etherscan.io","standard":"EIP3091"}]},{"chainId":56,"type":"Binance","name":"BNB Chain","color":"rgb(240, 185, 10)","network":"mainnet","fullName":"Binance","shortName":"bnb","features":[],"nativeCurrency":{"chainId":56,"name":"Binance Chain Native Token","symbol":"BNB","decimals":18,"logoURL":"https://static.debank.com/image/bsc_token/logo_url/bsc/8bfdeaa46fe9be8f5cd43a53b8d1eea1.png"},"infoURL":"https://www.binance.org","explorers":[{"name":"bscscan","url":"https://bscscan.com","standard":"EIP3091"}]},{"chainId":97,"type":"Binance","name":"BNB Chain","color":"rgb(240, 185, 10)","network":"chapel","fullName":"Binance","shortName":"bnbt","features":[],"nativeCurrency":{"chainId":97,"name":"Binance Chain Native Token","symbol":"tBNB","decimals":18},"infoURL":"https://testnet.binance.org/","explorers":[{"name":"bscscan-testnet","url":"https://testnet.bscscan.com","standard":"EIP3091"}]},{"chainId":137,"type":"Polygon","name":"Polygon","color":"rgb(119, 62, 225)","network":"mainnet","fullName":"Polygon","shortName":"matic","features":["EIP1559"],"nativeCurrency":{"chainId":137,"name":"Matic","symbol":"MATIC","decimals":18,"logoURL":"https://static.debank.com/image/matic_token/logo_url/matic/e5a8a2860ba5cf740a474dcab796dc63.png"},"infoURL":"https://matic.network/","explorers":[{"name":"matic","url":"https://polygonscan.com","standard":"EIP3091"}]},{"chainId":80001,"type":"Polygon","name":"Polygon","color":"rgb(130, 71, 229)","network":"testnet","fullName":"Polygon","shortName":"maticmum","features":["EIP1559"],"nativeCurrency":{"chainId":80001,"name":"Matic","symbol":"tMATIC","decimals":18,"logoURL":"https://static.debank.com/image/matic_token/logo_url/matic/e5a8a2860ba5cf740a474dcab796dc63.png"},"infoURL":"https://matic.network/","explorers":[{"name":"matic","url":"https://explorer-mumbai.maticvigil.com","standard":"EIP3091"}]},{"chainId":42161,"type":"Arbitrum","name":"Arbitrum","color":"rgb(36, 150, 238)","network":"mainnet","fullName":"Arbitrum One","shortName":"arb","features":[],"nativeCurrency":{"chainId":42161,"name":"Arbitrum Ether","symbol":"ARETH","decimals":18,"logoURL":"https://assets.debank.com/static/media/arbitrum.8e326f58.svg"},"infoURL":"https://arbitrum.io","explorers":[{"name":"arbitrum","url":"https://arbiscan.io","standard":"EIP3091"}]},{"chainId":421611,"type":"Arbitrum","name":"Arbitrum","color":"rgb(36, 150, 238)","network":"rinkeby","fullName":"Arbitrum","shortName":"arb-rinkeby","features":[],"nativeCurrency":{"chainId":421611,"name":"Arbitrum Rinkeby Ether","symbol":"ARETH","decimals":18},"infoURL":"https://arbitrum.io","explorers":[{"name":"arbitrum-rinkeby","url":"https://rinkeby-explorer.arbitrum.io","standard":"EIP3091"}]},{"chainId":2,"name":"EXP","network":"mainnet","shortName":"exp","features":[],"nativeCurrency":{"chainId":2,"name":"Expanse Network Ether","symbol":"EXP","decimals":18},"infoURL":"https://expanse.tech"},{"chainId":7,"name":"TCH","network":"mainnet","shortName":"tch","features":[],"nativeCurrency":{"chainId":7,"name":"ThaiChain Ether","symbol":"TCH","decimals":18},"infoURL":"https://thaichain.io"},{"chainId":8,"name":"UBQ","network":"mainnet","shortName":"ubq","features":[],"nativeCurrency":{"chainId":8,"name":"Ubiq Ether","symbol":"UBQ","decimals":18},"infoURL":"https://ubiqsmart.com"},{"chainId":9,"name":"UBQ","network":"mainnet","shortName":"tubq","features":[],"nativeCurrency":{"chainId":9,"name":"Ubiq Testnet Ether","symbol":"TUBQ","decimals":18},"infoURL":"https://ethersocial.org"},{"chainId":10,"type":"Optimistic","name":"OPT","network":"mainnet","shortName":"oeth","features":[],"nativeCurrency":{"chainId":10,"name":"Ether","symbol":"OETH","decimals":18},"infoURL":"https://optimism.io"},{"chainId":11,"name":"META","network":"mainnet","shortName":"meta","features":[],"nativeCurrency":{"chainId":11,"name":"Metadium Mainnet Ether","symbol":"META","decimals":18},"infoURL":"https://metadium.com"},{"chainId":12,"name":"META","network":"testnet","shortName":"kal","features":[],"nativeCurrency":{"chainId":12,"name":"Metadium Testnet Ether","symbol":"KAL","decimals":18},"infoURL":"https://metadium.com"},{"chainId":13,"name":"DIODE","network":"testnet","shortName":"dstg","features":[],"nativeCurrency":{"chainId":13,"name":"Staging Diodes","symbol":"sDIODE","decimals":18},"infoURL":"https://diode.io/staging"},{"chainId":14,"name":"FLR","network":"flare","shortName":"flr","features":[],"nativeCurrency":{"chainId":14,"name":"Spark","symbol":"FLR","decimals":18},"infoURL":"https://flare.xyz"},{"chainId":15,"name":"DIODE","network":"mainnet","shortName":"diode","features":[],"nativeCurrency":{"chainId":15,"name":"Diodes","symbol":"DIODE","decimals":18},"infoURL":"https://diode.io/prenet"},{"chainId":16,"name":"FLR","network":"coston","shortName":"cflr","features":[],"nativeCurrency":{"chainId":16,"name":"Coston Spark","symbol":"CFLR","decimals":18},"infoURL":"https://github.com/flare-eng/coston"},{"chainId":17,"name":"TCH","network":"thaifi","shortName":"tfi","features":[],"nativeCurrency":{"chainId":17,"name":"Thaifi Ether","symbol":"TFI","decimals":18},"infoURL":"https://exp.thaifi.com"},{"chainId":18,"name":"TST","network":"testnet","shortName":"TST","features":[],"nativeCurrency":{"chainId":18,"name":"ThunderCore Testnet Ether","symbol":"TST","decimals":18},"infoURL":"https://thundercore.com"},{"chainId":20,"name":"ELA-ETH","network":"mainnet","shortName":"elaeth","features":[],"nativeCurrency":{"chainId":20,"name":"Elastos","symbol":"ELA","decimals":18},"infoURL":"https://www.elastos.org/"},{"chainId":21,"name":"ELA-ETH","network":"testnet","shortName":"elaetht","features":[],"nativeCurrency":{"chainId":21,"name":"Elastos","symbol":"tELA","decimals":18},"infoURL":"https://elaeth.io/"},{"chainId":22,"name":"ELA-ETH","network":"mainnet","shortName":"eladid","features":[],"nativeCurrency":{"chainId":22,"name":"Elastos","symbol":"ELA","decimals":18},"infoURL":"https://www.elastos.org/"},{"chainId":23,"name":"ELA-ETH","network":"testnet","shortName":"eladidt","features":[],"nativeCurrency":{"chainId":23,"name":"Elastos","symbol":"tELA","decimals":18},"infoURL":"https://elaeth.io/"},{"chainId":30,"name":"RSK","network":"mainnet","shortName":"rsk","features":[],"nativeCurrency":{"chainId":30,"name":"RSK Mainnet Ether","symbol":"RBTC","decimals":18},"infoURL":"https://rsk.co"},{"chainId":31,"name":"RSK","network":"testnet","shortName":"trsk","features":[],"nativeCurrency":{"chainId":31,"name":"RSK Testnet Ether","symbol":"tRBTC","decimals":18},"infoURL":"https://rsk.co"},{"chainId":32,"name":"GooD","network":"testnet","shortName":"GooDT","features":[],"nativeCurrency":{"chainId":32,"name":"GoodData Testnet Ether","symbol":"GooD","decimals":18},"infoURL":"https://www.goodata.org"},{"chainId":33,"name":"GooD","network":"mainnet","shortName":"GooD","features":[],"nativeCurrency":{"chainId":33,"name":"GoodData Mainnet Ether","symbol":"GooD","decimals":18},"infoURL":"https://www.goodata.org"},{"chainId":35,"name":"TBWG","network":"mainnet","shortName":"tbwg","features":[],"nativeCurrency":{"chainId":35,"name":"TBWG Ether","symbol":"TBG","decimals":18},"infoURL":"https://tbwg.io"},{"chainId":38,"name":"VAL","network":"mainnet","shortName":"val","features":[],"nativeCurrency":{"chainId":38,"name":"Valorbit","symbol":"VAL","decimals":18},"infoURL":"https://valorbit.com"},{"chainId":40,"name":"TLOS","network":"mainnet","shortName":"Telos EVM","features":[],"nativeCurrency":{"chainId":40,"name":"Telos","symbol":"TLOS","decimals":18},"infoURL":"https://telos.net"},{"chainId":41,"name":"TLOS","network":"testnet","shortName":"Telos EVM Testnet","features":[],"nativeCurrency":{"chainId":41,"name":"Telos","symbol":"TLOS","decimals":18},"infoURL":"https://telos.net"},{"chainId":43,"name":"pangolin","network":"free testnet","shortName":"darwinia","features":[],"nativeCurrency":{"chainId":43,"name":"Pangolin RING","symbol":"PRING","decimals":9},"infoURL":"https://darwinia.network/"},{"chainId":44,"name":"crab","network":"Crab network","shortName":"crab","features":[],"nativeCurrency":{"chainId":44,"name":"Crab Token","symbol":"CRING","decimals":9},"infoURL":"https://crab.network/"},{"chainId":50,"name":"XDC","network":"mainnet","shortName":"xdc","features":[],"nativeCurrency":{"chainId":50,"name":"XinFin","symbol":"XDC","decimals":18},"infoURL":"https://xinfin.org"},{"chainId":51,"name":"TXDC","network":"testnet","shortName":"TXDC","features":[],"nativeCurrency":{"chainId":51,"name":"XinFinTest","symbol":"TXDC","decimals":18},"infoURL":"https://xinfin.org"},{"chainId":52,"name":"CSC","network":"mainnet","shortName":"cet","features":[],"nativeCurrency":{"chainId":52,"name":"CoinEx Chain Native Token","symbol":"cet","decimals":18},"infoURL":"http://www.coinex.org/"},{"chainId":53,"name":"CSC","network":"testnet","shortName":"tcet","features":[],"nativeCurrency":{"chainId":53,"name":"CoinEx Chain Test Native Token","symbol":"cett","decimals":18},"infoURL":"http://www.coinex.org/"},{"chainId":58,"name":"Ontology","network":"mainnet","shortName":"Ontology Mainnet","features":[],"nativeCurrency":{"chainId":58,"name":"ONG","symbol":"ONG","decimals":9},"infoURL":"https://ont.io/","explorers":[{"name":"explorer","url":"https://explorer.ont.io/","standard":"EIP3091"}]},{"chainId":59,"name":"EOS","network":"mainnet","shortName":"EOS Mainnet","features":[],"nativeCurrency":{"chainId":59,"name":"EOS","symbol":"EOS","decimals":18},"infoURL":"https://eoscommunity.org/","explorers":[{"name":"bloks","url":"https://api.eosargentina.io","standard":"EIP3091"}]},{"chainId":60,"name":"GO","network":"mainnet","shortName":"go","features":[],"nativeCurrency":{"chainId":60,"name":"GoChain Ether","symbol":"GO","decimals":18},"infoURL":"https://gochain.io"},{"chainId":61,"name":"ETC","network":"mainnet","shortName":"etc","features":[],"nativeCurrency":{"chainId":61,"name":"Ethereum Classic Ether","symbol":"ETC","decimals":18},"infoURL":"https://ethereumclassic.org"},{"chainId":62,"name":"ETC","network":"testnet","shortName":"tetc","features":[],"nativeCurrency":{"chainId":62,"name":"Ethereum Classic Testnet Ether","symbol":"TETC","decimals":18},"infoURL":"https://ethereumclassic.org"},{"chainId":63,"name":"ETC","network":"testnet","shortName":"metc","features":[],"nativeCurrency":{"chainId":63,"name":"Mordor Classic Testnet Ether","symbol":"METC","decimals":18},"infoURL":"https://github.com/eth-classic/mordor/"},{"chainId":64,"name":"ELLA","network":"mainnet","shortName":"ella","features":[],"nativeCurrency":{"chainId":64,"name":"Ellaism Ether","symbol":"ELLA","decimals":18},"infoURL":"https://ellaism.org"},{"chainId":65,"name":"okexchain","network":"testnet","shortName":"tokt","features":[],"nativeCurrency":{"chainId":65,"name":"OKExChain Global Utility Token in testnet","symbol":"OKT","decimals":18},"infoURL":"https://www.okex.com/okexchain","explorers":[{"name":"OKLink","url":"https://www.oklink.com/okexchain-test","standard":"EIP3091"}]},{"chainId":66,"name":"OKExChain Mainnet","chain":"OKEx","network":"mainnet","shortName":"okt","features":[],"nativeCurrency":{"chainId":66,"name":"OKExChain Global Utility Token","symbol":"OKT","decimals":18},"infoURL":"https://www.okex.com/okexchain","explorers":[{"name":"OKLink","url":"https://www.oklink.com/okexchain","standard":"EIP3091"}]},{"chainId":67,"name":"DBM","network":"testnet","shortName":"dbm","features":[],"nativeCurrency":{"chainId":67,"name":"DBChain Testnet","symbol":"DBM","decimals":18},"infoURL":"http://test.dbmbp.com"},{"chainId":68,"name":"SOTER","network":"mainnet","shortName":"SO1","features":[],"nativeCurrency":{"chainId":68,"name":"SoterOne Mainnet Ether","symbol":"SOTER","decimals":18},"infoURL":"https://www.soterone.com"},{"chainId":69,"type":"Optimistic","name":"OPT","network":"kovan","shortName":"okov","features":[],"nativeCurrency":{"chainId":69,"name":"Kovan Ether","symbol":"KOR","decimals":18},"infoURL":"https://optimism.io"},{"chainId":76,"name":"MIX","network":"mainnet","shortName":"mix","features":[],"nativeCurrency":{"chainId":76,"name":"Mix Ether","symbol":"MIX","decimals":18},"infoURL":"https://mix-blockchain.org"},{"chainId":77,"name":"POA","network":"sokol","shortName":"poa","features":[],"nativeCurrency":{"chainId":77,"name":"POA Sokol Ether","symbol":"POA","decimals":18},"infoURL":"https://poa.network"},{"chainId":78,"name":"PC","network":"mainnet","shortName":"primuschain","features":[],"nativeCurrency":{"chainId":78,"name":"Primus Ether","symbol":"PETH","decimals":18},"infoURL":"https://primusmoney.com"},{"chainId":80,"name":"GeneChain","network":"mainnet","shortName":"GeneChain","features":[],"nativeCurrency":{"chainId":80,"name":"RNA","symbol":"RNA","decimals":18},"infoURL":"https://scan.genechain.io/","explorers":[{"name":"GeneChain Scan","url":"https://scan.genechain.io","standard":"EIP3091"}]},{"chainId":82,"name":"METER","network":"mainnet","shortName":"Meter","features":[],"nativeCurrency":{"chainId":82,"name":"Meter","symbol":"MTR","decimals":18},"infoURL":"https://www.meter.io"},{"chainId":85,"name":"GTTEST","network":"testnet","shortName":"gttest","features":[],"nativeCurrency":{"chainId":85,"name":"GateToken","symbol":"GT","decimals":18},"infoURL":"https://www.gatechain.io","explorers":[{"name":"GateScan","url":"https://www.gatescan.org/testnet","standard":"EIP3091"}]},{"chainId":86,"name":"GT","network":"mainnet","shortName":"gt","features":[],"nativeCurrency":{"chainId":86,"name":"GateToken","symbol":"GT","decimals":18},"infoURL":"https://www.gatechain.io","explorers":[{"name":"GateScan","url":"https://www.gatescan.org","standard":"EIP3091"}]},{"chainId":88,"name":"TOMO","network":"mainnet","shortName":"tomo","features":[],"nativeCurrency":{"chainId":88,"name":"TomoChain Ether","symbol":"TOMO","decimals":18},"infoURL":"https://tomocoin.io"},{"chainId":95,"name":"EOS","network":"testnet","shortName":"Kylin Testnet","features":[],"nativeCurrency":{"chainId":95,"name":"EOS","symbol":"EOS","decimals":18},"infoURL":"https://www.cryptokylin.io/","explorers":[{"name":"eosq","url":"https://kylin.eosargentina.io","standard":"EIP3091"}]},{"chainId":99,"name":"POA","network":"core","shortName":"skl","features":[],"nativeCurrency":{"chainId":99,"name":"POA Network Core Ether","symbol":"SKL","decimals":18},"infoURL":"https://poa.network"},{"chainId":100,"type":"xDai","name":"Gnosis","color":"rgb(73, 169, 166)","network":"mainnet","shortName":"xDai","features":[],"nativeCurrency":{"chainId":100,"name":"xDai","symbol":"xDai","decimals":18},"infoURL":"https://blockscout.com/xdai/mainnet"},{"chainId":101,"name":"ETI","network":"mainnet","shortName":"eti","features":[],"nativeCurrency":{"chainId":101,"name":"EtherInc Ether","symbol":"ETI","decimals":18},"infoURL":"https://einc.io"},{"chainId":102,"name":"Web3Games","network":"testnet","shortName":"w3g","features":[],"nativeCurrency":{"chainId":102,"name":"Web3Games","symbol":"W3G","decimals":18},"infoURL":"https://web3games.org/"},{"chainId":108,"name":"TT","network":"mainnet","shortName":"TT","features":[],"nativeCurrency":{"chainId":108,"name":"ThunderCore Mainnet Ether","symbol":"TT","decimals":18},"infoURL":"https://thundercore.com"},{"chainId":110,"name":"XPR","network":"testnet","shortName":"xpr","features":[],"nativeCurrency":{"chainId":110,"name":"Proton","symbol":"XPR","decimals":4},"infoURL":"https://protonchain.com"},{"chainId":111,"name":"ETL","network":"mainnet","shortName":"ETL","features":[],"nativeCurrency":{"chainId":111,"name":"EtherLite","symbol":"ETL","decimals":18},"infoURL":"https://etherlite.org"},{"chainId":122,"type":"Fuse","name":"FUSE","network":"mainnet","shortName":"fuse","features":[],"nativeCurrency":{"chainId":122,"name":"Fuse","symbol":"FUSE","decimals":18},"infoURL":"https://fuse.io/"},{"chainId":124,"name":"DWU","network":"mainnet","shortName":"dwu","features":[],"nativeCurrency":{"chainId":124,"name":"Decentralized Web Utility","symbol":"DWU","decimals":18},"infoURL":"https://decentralized-web.tech/dw_chain.php"},{"chainId":127,"name":"FETH","network":"factory127 mainnet","shortName":"feth","features":[],"nativeCurrency":{"chainId":127,"name":"Factory 127 Token","symbol":"FETH","decimals":18},"infoURL":"https://www.factory127.com"},{"chainId":128,"name":"Heco","network":"mainnet","shortName":"heco","features":[],"nativeCurrency":{"chainId":128,"name":"Huobi ECO Chain Native Token","symbol":"HT","decimals":18},"infoURL":"https://www.hecochain.com","explorers":[{"name":"hecoinfo","url":"https://hecoinfo.com","standard":"EIP3091"}]},{"chainId":162,"name":"PHT","network":"sirius","shortName":"tpht","features":[],"nativeCurrency":{"chainId":162,"name":"Lightstreams PHT","symbol":"PHT","decimals":18},"infoURL":"https://explorer.sirius.lightstreams.io"},{"chainId":163,"name":"PHT","network":"mainnet","shortName":"pht","features":[],"nativeCurrency":{"chainId":163,"name":"Lightstreams PHT","symbol":"PHT","decimals":18},"infoURL":"https://explorer.lightstreams.io"},{"chainId":170,"name":"HOO","network":"testnet","shortName":"hoosmartchain","features":[],"nativeCurrency":{"chainId":170,"name":"HOO","symbol":"HOO","decimals":18},"infoURL":"https://www.hoosmartchain.com"},{"chainId":211,"name":"EDI","network":"freight & trade network","shortName":"EDI","features":[],"nativeCurrency":{"chainId":211,"name":"Freight Trust Native","symbol":"0xF","decimals":18},"infoURL":"https://freighttrust.com"},{"chainId":246,"name":"Energy Web Chain","network":"mainnet","shortName":"ewt","features":[],"nativeCurrency":{"chainId":246,"name":"Energy Web Token","symbol":"EWT","decimals":18},"infoURL":"https://energyweb.org"},{"chainId":250,"type":"Fantom","name":"FTM","fullName":"Fantom","network":"mainnet","shortName":"ftm","features":[],"nativeCurrency":{"chainId":250,"name":"Fantom","symbol":"FTM","decimals":18,"logoURL":"https://static.debank.com/image/ftm_token/logo_url/ftm/33fdb9c5067e94f3a1b9e78f6fa86984.png"},"infoURL":"https://fantom.foundation","explorers":[{"name":"ftmscan","url":"https://ftmscan.com","standard":"EIP3091"}]},{"chainId":256,"name":"Heco","network":"testnet","shortName":"hecot","features":[],"nativeCurrency":{"chainId":256,"name":"Huobi ECO Chain Test Native Token","symbol":"htt","decimals":18},"infoURL":"https://testnet.hecoinfo.com"},{"chainId":269,"name":"HPB","network":"mainnet","shortName":"hpb","features":[],"nativeCurrency":{"chainId":269,"name":"High Performance Blockchain Ether","symbol":"HPB","decimals":18},"infoURL":"https://hpbscan.org/"},{"chainId":321,"name":"KCC","network":"mainnet","shortName":"kcs","features":[],"nativeCurrency":{"chainId":321,"name":"KuCoin Token","symbol":"KCS","decimals":18},"infoURL":"https://kcc.io","explorers":[{"name":"KCC Explorer","url":"https://explorer.kcc.io/en","standard":"EIP3091"}]},{"chainId":322,"name":"KCC","network":"testnet","shortName":"kcst","features":[],"nativeCurrency":{"chainId":322,"name":"KuCoin Testnet Token","symbol":"tKCS","decimals":18},"infoURL":"https://scan-testnet.kcc.network","explorers":[{"name":"kcc-scan","url":"https://scan-testnet.kcc.network","standard":"EIP3091"}]},{"chainId":385,"name":"CRO","network":"mainnet","shortName":"lisinski","features":[],"nativeCurrency":{"chainId":385,"name":"Lisinski Ether","symbol":"LISINSKI","decimals":18},"infoURL":"https://lisinski.online"},{"chainId":420,"type":"Optimistic","name":"OPT","network":"goerli","shortName":"ogor","features":[],"nativeCurrency":{"chainId":420,"name":"Görli Ether","symbol":"GOR","decimals":18},"infoURL":"https://optimism.io"},{"chainId":499,"name":"RUPX","network":"mainnet","shortName":"rupx","features":[],"nativeCurrency":{"chainId":499,"name":"Rupaya","symbol":"RUPX","decimals":18},"infoURL":"https://www.rupx.io"},{"chainId":558,"name":"TAO","network":"core","shortName":"tao","features":[],"nativeCurrency":{"chainId":558,"name":"Tao","symbol":"TAO","decimals":18},"infoURL":"https://tao.network"},{"chainId":595,"name":"mACA","network":"testnet","shortName":"maca","features":[],"nativeCurrency":{"chainId":595,"name":"Acala Mandala Token","symbol":"mACA","decimals":18},"infoURL":"https://acala.network"},{"chainId":686,"name":"KAR","network":"mainnet","shortName":"kar","features":[],"nativeCurrency":{"chainId":686,"name":"Karura Token","symbol":"KAR","decimals":18},"infoURL":"https://karura.network"},{"chainId":721,"name":"FETH","network":"factory127 testnet","shortName":"tfeth","features":[],"nativeCurrency":{"chainId":721,"name":"Factory 127 Token","symbol":"FETH","decimals":18},"infoURL":"https://www.factory127.com"},{"chainId":777,"name":"ETHERMINT","network":"testnet","shortName":"emint","features":[],"nativeCurrency":{"chainId":777,"name":"Photon","symbol":"Photon","decimals":18},"infoURL":"https://docs.ethermint.zone"},{"chainId":787,"name":"ACA","network":"mainnet","shortName":"aca","features":[],"nativeCurrency":{"chainId":787,"name":"Acala Token","symbol":"ACA","decimals":18},"infoURL":"https://acala.network"},{"chainId":803,"name":"Haic","network":"mainnet","shortName":"haic","features":[],"nativeCurrency":{"chainId":803,"name":"Haicoin","symbol":"HAIC","decimals":18},"infoURL":"https://www.haichain.io/"},{"chainId":820,"name":"CLO","network":"mainnet","shortName":"clo","features":[],"nativeCurrency":{"chainId":820,"name":"Callisto Mainnet Ether","symbol":"CLO","decimals":18},"infoURL":"https://callisto.network"},{"chainId":821,"name":"CLO","network":"testnet","shortName":"tclo","features":[],"nativeCurrency":{"chainId":821,"name":"Callisto Testnet Ether","symbol":"TCLO","decimals":18},"infoURL":"https://callisto.network"},{"chainId":888,"name":"WAN","network":"mainnet","shortName":"wan","features":[],"nativeCurrency":{"chainId":888,"name":"Wancoin","symbol":"WAN","decimals":18},"infoURL":"https://www.wanscan.org"},{"chainId":977,"name":"YETI","network":"mainnet","shortName":"yeti","features":[],"nativeCurrency":{"chainId":977,"name":"Nepal Blockchain Network Ether","symbol":"YETI","decimals":18},"infoURL":"https://nepalblockchain.network"},{"chainId":999,"name":"WAN","network":"testnet","shortName":"twan","features":[],"nativeCurrency":{"chainId":999,"name":"Wancoin","symbol":"WAN","decimals":18},"infoURL":"https://testnet.wanscan.org"},{"chainId":1001,"name":"KLAY","network":"baobab","shortName":"Baobab","features":[],"nativeCurrency":{"chainId":1001,"name":"KLAY","symbol":"KLAY","decimals":18},"infoURL":"https://www.klaytn.com/"},{"chainId":1007,"name":"NEW","network":"testnet","shortName":"tnew","features":[],"nativeCurrency":{"chainId":1007,"name":"Newton","symbol":"NEW","decimals":18},"infoURL":"https://www.newtonproject.org/"},{"chainId":1010,"name":"EVC","network":"Evrice","shortName":"EVC","features":[],"nativeCurrency":{"chainId":1010,"name":"Evrice","symbol":"EVC","decimals":18},"infoURL":"https://evrice.com"},{"chainId":1012,"name":"NEW","network":"mainnet","shortName":"new","features":[],"nativeCurrency":{"chainId":1012,"name":"Newton","symbol":"NEW","decimals":18},"infoURL":"https://www.newtonproject.org/"},{"chainId":1022,"name":"Sakura","network":"sakura","shortName":"sku","features":[],"nativeCurrency":{"chainId":1022,"name":"Sakura","symbol":"SKU","decimals":18},"infoURL":"https://clover.finance/sakura"},{"chainId":1023,"name":"Clover","network":"clover testnet","shortName":"tclv","features":[],"nativeCurrency":{"chainId":1023,"name":"Clover","symbol":"CLV","decimals":18},"infoURL":"https://clover.finance"},{"chainId":1024,"name":"Clover","network":"clover mainnet","shortName":"clv","features":[],"nativeCurrency":{"chainId":1024,"name":"Clover","symbol":"CLV","decimals":18},"infoURL":"https://clover.finance"},{"chainId":1139,"name":"MATH","network":"mainnet","shortName":"MATH","features":[],"nativeCurrency":{"chainId":1139,"name":"MathChain","symbol":"MATH","decimals":18},"infoURL":"https://mathchain.org"},{"chainId":1140,"name":"MATH","network":"testnet","shortName":"tMATH","features":[],"nativeCurrency":{"chainId":1140,"name":"MathChain","symbol":"MATH","decimals":18},"infoURL":"https://mathchain.org"},{"chainId":1284,"name":"MOON","network":"moonbeam","shortName":"mbeam","features":[],"nativeCurrency":{"chainId":1284,"name":"Glimmer","symbol":"GLMR","decimals":18},"infoURL":"https://moonbeam.network/networks/moonbeam/"},{"chainId":1285,"name":"MOON","network":"moonriver","shortName":"mriver","features":[],"nativeCurrency":{"chainId":1285,"name":"River","symbol":"RIVER","decimals":18},"infoURL":"https://moonbeam.network/networks/moonriver/"},{"chainId":1286,"name":"MOON","network":"moonrock","shortName":"mrock","features":[],"nativeCurrency":{"chainId":1286,"name":"Rocs","symbol":"ROC","decimals":18},"infoURL":""},{"chainId":1287,"name":"MOON","network":"moonbase","shortName":"mbase","features":[],"nativeCurrency":{"chainId":1287,"name":"Dev","symbol":"DEV","decimals":18},"infoURL":"https://docs.moonbeam.network/networks/testnet/"},{"chainId":1618,"name":"Catechain","network":"mainnet","shortName":"cate","features":[],"nativeCurrency":{"chainId":1618,"name":"Catecoin","symbol":"CATE","decimals":18},"infoURL":"https://catechain.com"},{"chainId":1620,"name":"ATH","network":"mainnet","shortName":"ath","features":[],"nativeCurrency":{"chainId":1620,"name":"Atheios Ether","symbol":"ATH","decimals":18},"infoURL":"https://atheios.com"},{"chainId":1856,"name":"TSF","network":"mainnet","shortName":"tsf","features":[],"nativeCurrency":{"chainId":1856,"name":"Teslafunds Ether","symbol":"TSF","decimals":18},"infoURL":"https://teslafunds.io"},{"chainId":1987,"name":"EGEM","network":"mainnet","shortName":"egem","features":[],"nativeCurrency":{"chainId":1987,"name":"EtherGem Ether","symbol":"EGEM","decimals":18},"infoURL":"https://egem.io"},{"chainId":2020,"name":"420","network":"mainnet","shortName":"420","features":[],"nativeCurrency":{"chainId":2020,"name":"Fourtwenty","symbol":"420","decimals":18},"infoURL":"https://420integrated.com"},{"chainId":2021,"name":"EDG","network":"mainnet","shortName":"edg","features":[],"nativeCurrency":{"chainId":2021,"name":"Edge","symbol":"EDG","decimals":18},"infoURL":"http://edgewa.re"},{"chainId":2022,"name":"EDG","network":"beresheet","shortName":"edgt","features":[],"nativeCurrency":{"chainId":2022,"name":"Testnet Edge","symbol":"tEDG","decimals":18},"infoURL":"http://edgewa.re"},{"chainId":2559,"name":"Kortho Chain","network":"mainnet","shortName":"ktoc","features":[],"nativeCurrency":{"chainId":2559,"name":"KorthoChain","symbol":"KTO","decimals":11},"infoURL":"https://www.kortho.io/"},{"chainId":4689,"name":"iotex.io","network":"mainnet","shortName":"iotex-mainnet","features":[],"nativeCurrency":{"chainId":4689,"name":"IoTeX","symbol":"IOTX","decimals":18},"infoURL":"https://iotex.io"},{"chainId":4690,"name":"iotex.io","network":"testnet","shortName":"iotex-testnet","features":[],"nativeCurrency":{"chainId":4690,"name":"IoTeX","symbol":"IOTX","decimals":18},"infoURL":"https://iotex.io"},{"chainId":5197,"name":"ESN","network":"mainnet","shortName":"es","features":[],"nativeCurrency":{"chainId":5197,"name":"EraSwap","symbol":"ES","decimals":18},"infoURL":"https://eraswap.info/"},{"chainId":5851,"name":"Ontology","network":"testnet","shortName":"Ontology Testnet","features":[],"nativeCurrency":{"chainId":5851,"name":"ONG","symbol":"ONG","decimals":9},"infoURL":"https://ont.io/","explorers":[{"name":"explorer","url":"https://explorer.ont.io/testnet","standard":"EIP3091"}]},{"chainId":5869,"name":"RBD","network":"mainnet","shortName":"rbd","features":[],"nativeCurrency":{"chainId":5869,"name":"Rubid","symbol":"RBD","decimals":18},"infoURL":"http://wegochain.io"},{"chainId":8029,"name":"MDGL","network":"testnet","shortName":"mdgl","features":[],"nativeCurrency":{"chainId":8029,"name":"MDGL Token","symbol":"MDGLT","decimals":18},"infoURL":"https://mdgl.io"},{"chainId":8080,"name":"GeneChain","network":"adenine","shortName":"GeneChainAdn","features":[],"nativeCurrency":{"chainId":8080,"name":"Testnet RNA","symbol":"tRNA","decimals":18},"infoURL":"https://scan-testnet.genechain.io/","explorers":[{"name":"GeneChain Adenine Testnet Scan","url":"https://scan-testnet.genechain.io","standard":"EIP3091"}]},{"chainId":8217,"name":"KLAY","network":"cypress","shortName":"Cypress","features":[],"nativeCurrency":{"chainId":8217,"name":"KLAY","symbol":"KLAY","decimals":18},"infoURL":"https://www.klaytn.com/"},{"chainId":8285,"name":"Kortho","network":"Test","shortName":"Kortho","features":[],"nativeCurrency":{"chainId":8285,"name":"Kortho Test","symbol":"KTO","decimals":11},"infoURL":"https://www.kortho.io/"},{"chainId":8724,"name":"OLO","network":"testnet","shortName":"olo","features":[],"nativeCurrency":{"chainId":8724,"name":"TOOL Global","symbol":"OLO","decimals":18},"infoURL":"https://testnet-explorer.wolot.io"},{"chainId":8995,"name":"bloxberg","network":"mainnet","shortName":"berg","features":[],"nativeCurrency":{"chainId":8995,"name":"BERG","symbol":"U+25B3","decimals":18},"infoURL":"https://bloxberg.org"},{"chainId":10000,"name":"smartBCH","network":"mainnet","shortName":"smartbch","features":[],"nativeCurrency":{"chainId":10000,"name":"Bitcoin Cash","symbol":"BCH","decimals":18},"infoURL":"http://smartbch.org/"},{"chainId":10001,"name":"smartBCHTest","network":"testnet","shortName":"smartbchtest","features":[],"nativeCurrency":{"chainId":10001,"name":"Bitcoin Cash Test Token","symbol":"BCHT","decimals":18},"infoURL":"http://smartbch.org/"},{"chainId":10101,"name":"GEN","network":"mainnet","shortName":"GEN","features":[],"nativeCurrency":{"chainId":10101,"name":"GEN","symbol":"GEN","decimals":18},"infoURL":"https://www.xixoio.com/"},{"chainId":24484,"name":"WEB","network":"mainnet","shortName":"web","features":[],"nativeCurrency":{"chainId":24484,"name":"Webchain Ether","symbol":"WEB","decimals":18},"infoURL":"https://webchain.network"},{"chainId":24734,"name":"MINTME","network":"mainnet","shortName":"mintme","features":[],"nativeCurrency":{"chainId":24734,"name":"MintMe.com Coin","symbol":"MINTME","decimals":18},"infoURL":"https://www.mintme.com"},{"chainId":31102,"name":"ESN","network":"mainnet","shortName":"esn","features":[],"nativeCurrency":{"chainId":31102,"name":"Ethersocial Network Ether","symbol":"ESN","decimals":18},"infoURL":"https://ethersocial.org"},{"chainId":32659,"name":"FSN","network":"mainnet","shortName":"fsn","features":[],"nativeCurrency":{"chainId":32659,"name":"Fusion","symbol":"FSN","decimals":18},"infoURL":"https://www.fusion.org/"},{"chainId":39797,"name":"NRG","network":"mainnet","shortName":"nrg","features":[],"nativeCurrency":{"chainId":39797,"name":"Energi","symbol":"NRG","decimals":18},"infoURL":"https://www.energi.world/"},{"chainId":42069,"name":"42069","network":"mainnet","shortName":"PC","features":[],"nativeCurrency":{"chainId":42069,"name":"pegglecoin","symbol":"peggle","decimals":18},"infoURL":"https://teampeggle.com"},{"chainId":42220,"type":"Celo","name":"CELO","network":"mainnet","shortName":"CELO","features":[],"nativeCurrency":{"chainId":42220,"name":"CELO","symbol":"CELO","decimals":18},"infoURL":"https://explorer.celo.org/"},{"chainId":43110,"name":"ATH","network":"athereum","shortName":"avaeth","features":[],"nativeCurrency":{"chainId":43110,"name":"Athereum Ether","symbol":"ATH","decimals":18},"infoURL":"https://athereum.ava.network"},{"chainId":43114,"type":"Avalanche","name":"AVAX","color":"rgb(232, 65, 66)","network":"mainnet","shortName":"AVAX","features":[],"nativeCurrency":{"chainId":43114,"name":"Avalanche","symbol":"AVAX","decimals":18,"logoURL":"https://static.debank.com/image/avax_token/logo_url/avax/0b9c84359c84d6bdd5bfda9c2d4c4a82.png"},"infoURL":"https://snowtrace.io/","explorers":[{"name":"snowtrace","url":"https://snowtrace.io/","standard":"EIP3091"}]},{"chainId":43113,"name":"AVAX","color":"rgb(232, 65, 66)","network":"testnet","shortName":"Fuji","features":[],"nativeCurrency":{"chainId":43113,"name":"Avalanche","symbol":"AVAX","decimals":18},"infoURL":"https://cchain.explorer.avax-test.network"},{"chainId":44787,"name":"Celo","network":"Alfajores","shortName":"ALFA","features":[],"nativeCurrency":{"chainId":44787,"name":"CELO","symbol":"CELO","decimals":18},"infoURL":"https://docs.celo.org/"},{"chainId":49797,"name":"NRG","network":"testnet","shortName":"tnrg","features":[],"nativeCurrency":{"chainId":49797,"name":"Energi","symbol":"tNRG","decimals":18},"infoURL":"https://www.energi.world/"},{"chainId":62320,"name":"Celo","network":"Baklava","shortName":"BKLV","features":[],"nativeCurrency":{"chainId":62320,"name":"CELO","symbol":"CELO","decimals":18},"infoURL":"https://docs.celo.org/"},{"chainId":73799,"name":"Volta","network":"testnet","shortName":"vt","features":[],"nativeCurrency":{"chainId":73799,"name":"Volta Token","symbol":"VT","decimals":18},"infoURL":"https://energyweb.org"},{"chainId":78110,"name":"FIR","network":"testnet","shortName":"firenze","features":[],"nativeCurrency":{"chainId":78110,"name":"Firenze Ether","symbol":"FIN","decimals":18},"infoURL":"https://primusmoney.com"},{"chainId":100000,"name":"QuarkChain","network":"mainnet","shortName":"qkc-r","features":[],"nativeCurrency":{"chainId":100000,"name":"QKC","symbol":"QKC","decimals":18},"infoURL":"https://www.quarkchain.io/"},{"chainId":100001,"name":"QuarkChain","network":"mainnet","shortName":"qkc-s0","features":[],"nativeCurrency":{"chainId":100001,"name":"QKC","symbol":"QKC","decimals":18},"infoURL":"https://www.quarkchain.io/"},{"chainId":100002,"name":"QuarkChain","network":"mainnet","shortName":"qkc-s1","features":[],"nativeCurrency":{"chainId":100002,"name":"QKC","symbol":"QKC","decimals":18},"infoURL":"https://www.quarkchain.io/"},{"chainId":100003,"name":"QuarkChain","network":"mainnet","shortName":"qkc-s2","features":[],"nativeCurrency":{"chainId":100003,"name":"QKC","symbol":"QKC","decimals":18},"infoURL":"https://www.quarkchain.io/"},{"chainId":100004,"name":"QuarkChain","network":"mainnet","shortName":"qkc-s3","features":[],"nativeCurrency":{"chainId":100004,"name":"QKC","symbol":"QKC","decimals":18},"infoURL":"https://www.quarkchain.io/"},{"chainId":100005,"name":"QuarkChain","network":"mainnet","shortName":"qkc-s4","features":[],"nativeCurrency":{"chainId":100005,"name":"QKC","symbol":"QKC","decimals":18},"infoURL":"https://www.quarkchain.io/"},{"chainId":100006,"name":"QuarkChain","network":"mainnet","shortName":"qkc-s5","features":[],"nativeCurrency":{"chainId":100006,"name":"QKC","symbol":"QKC","decimals":18},"infoURL":"https://www.quarkchain.io/"},{"chainId":100007,"name":"QuarkChain","network":"mainnet","shortName":"qkc-s6","features":[],"nativeCurrency":{"chainId":100007,"name":"QKC","symbol":"QKC","decimals":18},"infoURL":"https://www.quarkchain.io/"},{"chainId":100008,"name":"QuarkChain","network":"mainnet","shortName":"qkc-s7","features":[],"nativeCurrency":{"chainId":100008,"name":"QKC","symbol":"QKC","decimals":18},"infoURL":"https://www.quarkchain.io/"},{"chainId":110000,"name":"QuarkChain","network":"devnet","shortName":"qkc-d-r","features":[],"nativeCurrency":{"chainId":110000,"name":"QKC","symbol":"QKC","decimals":18},"infoURL":"https://www.quarkchain.io/"},{"chainId":110001,"name":"QuarkChain","network":"devnet","shortName":"qkc-d-s0","features":[],"nativeCurrency":{"chainId":110001,"name":"QKC","symbol":"QKC","decimals":18},"infoURL":"https://www.quarkchain.io/"},{"chainId":110002,"name":"QuarkChain","network":"devnet","shortName":"qkc-d-s1","features":[],"nativeCurrency":{"chainId":110002,"name":"QKC","symbol":"QKC","decimals":18},"infoURL":"https://www.quarkchain.io/"},{"chainId":110003,"name":"QuarkChain","network":"devnet","shortName":"qkc-d-s2","features":[],"nativeCurrency":{"chainId":110003,"name":"QKC","symbol":"QKC","decimals":18},"infoURL":"https://www.quarkchain.io/"},{"chainId":110004,"name":"QuarkChain","network":"devnet","shortName":"qkc-d-s3","features":[],"nativeCurrency":{"chainId":110004,"name":"QKC","symbol":"QKC","decimals":18},"infoURL":"https://www.quarkchain.io/"},{"chainId":110005,"name":"QuarkChain","network":"devnet","shortName":"qkc-d-s4","features":[],"nativeCurrency":{"chainId":110005,"name":"QKC","symbol":"QKC","decimals":18},"infoURL":"https://www.quarkchain.io/"},{"chainId":110006,"name":"QuarkChain","network":"devnet","shortName":"qkc-d-s5","features":[],"nativeCurrency":{"chainId":110006,"name":"QKC","symbol":"QKC","decimals":18},"infoURL":"https://www.quarkchain.io/"},{"chainId":110007,"name":"QuarkChain","network":"devnet","shortName":"qkc-d-s6","features":[],"nativeCurrency":{"chainId":110007,"name":"QKC","symbol":"QKC","decimals":18},"infoURL":"https://www.quarkchain.io/"},{"chainId":110008,"name":"QuarkChain","network":"devnet","shortName":"qkc-d-s7","features":[],"nativeCurrency":{"chainId":110008,"name":"QKC","symbol":"QKC","decimals":18},"infoURL":"https://www.quarkchain.io/"},{"chainId":200625,"name":"AKA","network":"mainnet","shortName":"aka","features":[],"nativeCurrency":{"chainId":200625,"name":"Akroma Ether","symbol":"AKA","decimals":18},"infoURL":"https://akroma.io"},{"chainId":246529,"name":"ARTIS","network":"sigma1","shortName":"ats","features":[],"nativeCurrency":{"chainId":246529,"name":"ARTIS sigma1 Ether","symbol":"ATS","decimals":18},"infoURL":"https://artis.eco"},{"chainId":246785,"name":"ARTIS","network":"tau1","shortName":"atstau","features":[],"nativeCurrency":{"chainId":246785,"name":"ARTIS tau1 Ether","symbol":"tATS","decimals":18},"infoURL":"https://artis.network"},{"chainId":1313114,"name":"ETHO","network":"mainnet","shortName":"etho","features":[],"nativeCurrency":{"chainId":1313114,"name":"Ether-1 Ether","symbol":"ETHO","decimals":18},"infoURL":"https://ether1.org"},{"chainId":1313500,"name":"XERO","network":"mainnet","shortName":"xero","features":[],"nativeCurrency":{"chainId":1313500,"name":"Xerom Ether","symbol":"XERO","decimals":18},"infoURL":"https://xerom.org"},{"chainId":7762959,"name":"MUSIC","network":"mainnet","shortName":"music","features":[],"nativeCurrency":{"chainId":7762959,"name":"Musicoin","symbol":"MUSIC","decimals":18},"infoURL":"https://musicoin.tw"},{"chainId":13371337,"name":"PEP","network":"testnet","shortName":"tpep","features":[],"nativeCurrency":{"chainId":13371337,"name":"PepChain Churchill Ether","symbol":"TPEP","decimals":18},"infoURL":"https://pepchain.io"},{"chainId":18289463,"name":"ILT","network":"mainnet","shortName":"ilt","features":[],"nativeCurrency":{"chainId":18289463,"name":"IOLite Ether","symbol":"ILT","decimals":18},"infoURL":"https://iolite.io"},{"chainId":20181205,"name":"QKI","network":"mainnet","shortName":"qki","features":[],"nativeCurrency":{"chainId":20181205,"name":"quarkblockchain Native Token","symbol":"QKI","decimals":18},"infoURL":"https://quarkblockchain.org/"},{"chainId":28945486,"name":"AUX","network":"mainnet","shortName":"auxi","features":[],"nativeCurrency":{"chainId":28945486,"name":"Auxilium coin","symbol":"AUX","decimals":18},"infoURL":"https://auxilium.global"},{"chainId":35855456,"name":"JOYS","network":"mainnet","shortName":"JOYS","features":[],"nativeCurrency":{"chainId":35855456,"name":"JOYS","symbol":"JOYS","decimals":18},"infoURL":"https://joys.digital"},{"chainId":61717561,"name":"AQUA","network":"mainnet","shortName":"aqua","features":[],"nativeCurrency":{"chainId":61717561,"name":"Aquachain Ether","symbol":"AQUA","decimals":18},"infoURL":"https://aquachain.github.io"},{"chainId":99415706,"name":"TOYS","network":"testnet","shortName":"TOYS","features":[],"nativeCurrency":{"chainId":99415706,"name":"TOYS","symbol":"TOYS","decimals":18},"infoURL":"https://joys.digital"},{"chainId":1122334455,"name":"IPOS","network":"mainnet","shortName":"ipos","features":[],"nativeCurrency":{"chainId":1122334455,"name":"IPOS Network Ether","symbol":"IPOS","decimals":18},"infoURL":"https://iposlab.com"},{"chainId":1313161554,"type":"Aurora","name":"Aurora","color":"rgb(112, 212, 74)","network":"mainnet","shortName":"aurora","features":[],"nativeCurrency":{"chainId":1313161554,"name":"Ether","symbol":"aETH","decimals":18},"infoURL":"https://aurora.dev","explorers":[{"name":"Blockscout","url":"https://explorer.mainnet.aurora.dev/","standard":"EIP3091"}]},{"chainId":1313161555,"type":"Aurora","name":"Aurora","color":"rgb(112, 212, 74)","network":"testnet","shortName":"aurora-testnet","features":[],"nativeCurrency":{"chainId":1313161555,"name":"Ether","symbol":"aETH","decimals":18},"infoURL":"https://aurora.dev"},{"chainId":1313161556,"type":"Aurora","name":"Aurora","color":"rgb(112, 212, 74)","network":"betanet","shortName":"aurora-betanet","features":[],"nativeCurrency":{"chainId":1313161556,"name":"Ether","symbol":"aETH","decimals":18},"infoURL":"https://aurora.dev"},{"chainId":1666600000,"name":"Harmony","type":"Harmony","network":"mainnet","shortName":"hmy","features":[],"nativeCurrency":{"chainId":1666600000,"name":"ONE","symbol":"ONE","decimals":18},"infoURL":"https://www.harmony.one/"},{"chainId":1666600001,"name":"Harmony","network":"mainnet","type":"Harmony","shortName":"hmy","features":[],"nativeCurrency":{"chainId":1666600001,"name":"ONE","symbol":"ONE","decimals":18},"infoURL":"https://www.harmony.one/"},{"chainId":1666600002,"name":"Harmony","network":"mainnet","type":"Harmony","shortName":"hmy","features":[],"nativeCurrency":{"chainId":1666600002,"name":"ONE","symbol":"ONE","decimals":18},"infoURL":"https://www.harmony.one/"},{"chainId":1666600003,"name":"Harmony","network":"mainnet","type":"Harmony","shortName":"hmy","features":[],"nativeCurrency":{"chainId":1666600003,"name":"ONE","symbol":"ONE","decimals":18},"infoURL":"https://www.harmony.one/"},{"chainId":1666700000,"name":"Harmony","network":"testnet","type":"Harmony","shortName":"hmy","features":[],"nativeCurrency":{"chainId":1666700000,"name":"ONE","symbol":"ONE","decimals":18},"infoURL":"https://www.harmony.one/"},{"chainId":1666700001,"name":"Harmony","network":"testnet","type":"Harmony","shortName":"hmy","features":[],"nativeCurrency":{"chainId":1666700001,"name":"ONE","symbol":"ONE","decimals":18},"infoURL":"https://www.harmony.one/"},{"chainId":1666700002,"name":"Harmony","network":"testnet","type":"Harmony","shortName":"hmy","features":[],"nativeCurrency":{"chainId":1666700002,"name":"ONE","symbol":"ONE","decimals":18},"infoURL":"https://www.harmony.one/"},{"chainId":1666700003,"name":"Harmony","type":"Harmony","network":"testnet","shortName":"hmy","features":[],"nativeCurrency":{"chainId":1666700003,"name":"ONE","symbol":"ONE","decimals":18},"infoURL":"https://www.harmony.one/"},{"chainId":3125659152,"name":"PIRL","network":"mainnet","shortName":"pirl","features":[],"nativeCurrency":{"chainId":3125659152,"name":"Pirl Ether","symbol":"PIRL","decimals":18},"infoURL":"https://pirl.io"},{"chainId":11297108099,"name":"Palm","network":"testnet","shortName":"tpalm","features":[],"nativeCurrency":{"chainId":11297108099,"name":"PALM","symbol":"PALM","decimals":18},"infoURL":"https://palm.io"},{"chainId":11297108109,"name":"Palm","network":"mainnet","shortName":"palm","features":[],"nativeCurrency":{"chainId":11297108109,"name":"PALM","symbol":"PALM","decimals":18},"infoURL":"https://palm.io"},{"chainId":71,"type":"Conflux","name":"Conflux","network":"testnet","shortName":"Conflux","features":[],"nativeCurrency":{"chainId":71,"name":"CFX","symbol":"CFX","decimals":18},"infoURL":"https://confluxnetwork.org"},{"chainId":1030,"type":"Conflux","name":"Conflux","network":"mainnet","shortName":"Conflux","features":[],"nativeCurrency":{"chainId":1030,"name":"CFX","symbol":"CFX","decimals":18},"infoURL":"https://evm.confluxscan.net"}]'); +// EXTERNAL MODULE: ../web3-shared/evm/types/index.ts +var types = __webpack_require__(72499); +// EXTERNAL MODULE: ../web3-shared/evm/constants/constants.ts + 12 modules +var constants = __webpack_require__(47104); +// EXTERNAL MODULE: ../web3-shared/evm/constants/primitives.ts +var primitives = __webpack_require__(36596); +// EXTERNAL MODULE: ../shared-base/src/index.ts + 2 modules +var shared_base_src = __webpack_require__(44451); +;// CONCATENATED MODULE: ../web3-shared/evm/constants/descriptors.ts + + + + + + + +const PLUGIN_ID = src/* NetworkPluginID.PLUGIN_EVM */.FF.PLUGIN_EVM; +const CHAIN_DESCRIPTORS = chains_namespaceObject.map((x)=>({ + ...x, + coinMarketCapChainId: '', + coinGeckoChainId: '', + coinGeckoPlatformId: '', + type: x.type ?? types/* NetworkType.Ethereum */.td.Ethereum, + color: x.color ?? 'rgb(24, 163, 138)', + nativeCurrency: { + id: (0,constants/* getTokenConstants */.aV)(x.chainId).NATIVE_TOKEN_ADDRESS ?? primitives/* ZERO_ADDRESS */.r, + address: (0,constants/* getTokenConstants */.aV)(x.chainId).NATIVE_TOKEN_ADDRESS ?? primitives/* ZERO_ADDRESS */.r, + type: src/* TokenType.Fungible */.iv.Fungible, + schema: types/* SchemaType.Native */.XQ.Native, + ...x.nativeCurrency + }, + explorerURL: { + url: x.explorers?.[0]?.url ?? x.infoURL + } + }) +); +const NETWORK_DESCRIPTORS = [ + { + ID: `${PLUGIN_ID}_ethereum`, + networkSupporterPluginID: PLUGIN_ID, + chainId: types/* ChainId.Mainnet */.a_.Mainnet, + type: types/* NetworkType.Ethereum */.td.Ethereum, + name: 'Ethereum', + icon: new URL(/* asset import */ __webpack_require__(55182), __webpack_require__.b), + iconColor: 'rgb(28, 104, 243)', + isMainnet: true + }, + { + ID: `${PLUGIN_ID}_ropsten`, + networkSupporterPluginID: PLUGIN_ID, + chainId: types/* ChainId.Ropsten */.a_.Ropsten, + type: types/* NetworkType.Ethereum */.td.Ethereum, + name: 'Ropsten', + icon: new URL(/* asset import */ __webpack_require__(55182), __webpack_require__.b), + iconColor: 'rgb(255, 65, 130)', + isMainnet: false + }, + { + ID: `${PLUGIN_ID}_kovan`, + networkSupporterPluginID: PLUGIN_ID, + chainId: types/* ChainId.Kovan */.a_.Kovan, + type: types/* NetworkType.Ethereum */.td.Ethereum, + name: 'Kovan', + icon: new URL(/* asset import */ __webpack_require__(55182), __webpack_require__.b), + iconColor: 'rgb(133, 89, 255)', + isMainnet: false + }, + { + ID: `${PLUGIN_ID}_rinkeby`, + networkSupporterPluginID: PLUGIN_ID, + chainId: types/* ChainId.Rinkeby */.a_.Rinkeby, + type: types/* NetworkType.Ethereum */.td.Ethereum, + name: 'Rinkeby', + icon: new URL(/* asset import */ __webpack_require__(55182), __webpack_require__.b), + iconColor: 'rgb(133, 89, 255)', + isMainnet: false + }, + { + ID: `${PLUGIN_ID}_gorli`, + networkSupporterPluginID: PLUGIN_ID, + chainId: types/* ChainId.Gorli */.a_.Gorli, + type: types/* NetworkType.Ethereum */.td.Ethereum, + name: 'G\xf6rli', + icon: new URL(/* asset import */ __webpack_require__(55182), __webpack_require__.b), + iconColor: 'rgb(48, 153, 242)', + isMainnet: false + }, + { + ID: `${PLUGIN_ID}_bsc`, + networkSupporterPluginID: PLUGIN_ID, + chainId: types/* ChainId.BSC */.a_.BSC, + type: types/* NetworkType.Binance */.td.Binance, + name: 'BNB Chain', + icon: new URL(/* asset import */ __webpack_require__(40859), __webpack_require__.b), + iconColor: 'rgb(240, 185, 10)', + isMainnet: true + }, + { + ID: `${PLUGIN_ID}_bsct`, + networkSupporterPluginID: PLUGIN_ID, + chainId: types/* ChainId.BSCT */.a_.BSCT, + type: types/* NetworkType.Binance */.td.Binance, + name: 'BSCT', + icon: new URL(/* asset import */ __webpack_require__(40859), __webpack_require__.b), + iconColor: 'rgb(240, 185, 10)', + isMainnet: false + }, + { + ID: `${PLUGIN_ID}_polygon`, + networkSupporterPluginID: PLUGIN_ID, + chainId: types/* ChainId.Matic */.a_.Matic, + type: types/* NetworkType.Polygon */.td.Polygon, + name: 'Polygon', + icon: new URL(/* asset import */ __webpack_require__(60126), __webpack_require__.b), + iconColor: 'rgb(119, 62, 225)', + isMainnet: true + }, + { + ID: `${PLUGIN_ID}_mumbai`, + networkSupporterPluginID: PLUGIN_ID, + chainId: types/* ChainId.Mumbai */.a_.Mumbai, + type: types/* NetworkType.Polygon */.td.Polygon, + name: 'Mumbai', + icon: new URL(/* asset import */ __webpack_require__(60126), __webpack_require__.b), + iconColor: 'rgb(119, 62, 225)', + isMainnet: false + }, + { + ID: `${PLUGIN_ID}_arbitrum`, + networkSupporterPluginID: PLUGIN_ID, + chainId: types/* ChainId.Arbitrum */.a_.Arbitrum, + type: types/* NetworkType.Arbitrum */.td.Arbitrum, + name: 'Arbitrum One', + icon: new URL(/* asset import */ __webpack_require__(65720), __webpack_require__.b), + iconColor: 'rgb(36, 150, 238)', + isMainnet: true + }, + { + ID: `${PLUGIN_ID}_arbitrum_rinkeby`, + networkSupporterPluginID: PLUGIN_ID, + chainId: types/* ChainId.Arbitrum_Rinkeby */.a_.Arbitrum_Rinkeby, + type: types/* NetworkType.Arbitrum */.td.Arbitrum, + name: 'Arbitrum Rinkeby', + icon: new URL(/* asset import */ __webpack_require__(65720), __webpack_require__.b), + iconColor: 'rgb(36, 150, 238)', + isMainnet: false + }, + { + ID: `${PLUGIN_ID}_xdai`, + networkSupporterPluginID: PLUGIN_ID, + chainId: types/* ChainId.xDai */.a_.xDai, + type: types/* NetworkType.xDai */.td.xDai, + name: 'Gnosis', + icon: new URL(/* asset import */ __webpack_require__(97213), __webpack_require__.b), + iconColor: 'rgb(73, 169, 166)', + isMainnet: true + }, + { + ID: `${PLUGIN_ID}_celo`, + networkSupporterPluginID: PLUGIN_ID, + chainId: types/* ChainId.Celo */.a_.Celo, + type: types/* NetworkType.Celo */.td.Celo, + name: 'Celo', + icon: new URL(/* asset import */ __webpack_require__(27771), __webpack_require__.b), + iconColor: 'rgb(53, 208, 127)', + isMainnet: false + }, + { + ID: `${PLUGIN_ID}_fantom`, + networkSupporterPluginID: PLUGIN_ID, + chainId: types/* ChainId.Fantom */.a_.Fantom, + type: types/* NetworkType.Fantom */.td.Fantom, + name: 'Fantom', + icon: new URL(/* asset import */ __webpack_require__(85476), __webpack_require__.b), + iconColor: 'rgb(73, 169, 166)', + isMainnet: true + }, + { + ID: `${PLUGIN_ID}_avalanche`, + networkSupporterPluginID: PLUGIN_ID, + chainId: types/* ChainId.Avalanche */.a_.Avalanche, + type: types/* NetworkType.Avalanche */.td.Avalanche, + name: 'Avalanche', + icon: new URL(/* asset import */ __webpack_require__(23790), __webpack_require__.b), + iconColor: 'rgb(232, 65, 66)', + isMainnet: true + }, + { + ID: `${PLUGIN_ID}_aurora`, + networkSupporterPluginID: PLUGIN_ID, + chainId: types/* ChainId.Aurora */.a_.Aurora, + type: types/* NetworkType.Aurora */.td.Aurora, + name: 'Aurora', + icon: new URL(/* asset import */ __webpack_require__(10851), __webpack_require__.b), + iconColor: 'rgb(112, 212, 74)', + isMainnet: true + }, + { + ID: `${PLUGIN_ID}_harmony`, + networkSupporterPluginID: PLUGIN_ID, + chainId: types/* ChainId.Harmony */.a_.Harmony, + type: types/* NetworkType.Harmony */.td.Harmony, + name: 'Harmony', + icon: new URL(/* asset import */ __webpack_require__(45027), __webpack_require__.b), + iconColor: 'rgb(73, 169, 166)', + isMainnet: true + }, + { + ID: `${PLUGIN_ID}_conflux`, + networkSupporterPluginID: PLUGIN_ID, + chainId: types/* ChainId.Conflux */.a_.Conflux, + type: types/* NetworkType.Conflux */.td.Conflux, + name: 'Conflux', + icon: new URL(/* asset import */ __webpack_require__(7700), __webpack_require__.b), + iconColor: 'rgb(112, 212, 74)', + isMainnet: true + }, +]; +const PROVIDER_DESCRIPTORS = [ + { + ID: `${PLUGIN_ID}_maskwallet`, + providerAdaptorPluginID: PLUGIN_ID, + type: types/* ProviderType.MaskWallet */.lP.MaskWallet, + name: 'Mask Network', + icon: new URL(/* asset import */ __webpack_require__(24728), __webpack_require__.b), + enableRequirements: { + supportedChainIds: (0,esm/* getEnumAsArray */.Yl)(types/* ChainId */.a_).map((x)=>x.value + ), + supportedEnhanceableSites: (0,esm/* getEnumAsArray */.Yl)(shared_base_src/* EnhanceableSite */.Jk).map((x)=>x.value + ), + supportedExtensionSites: (0,esm/* getEnumAsArray */.Yl)(shared_base_src/* ExtensionSite */.v_).map((x)=>x.value + ) + }, + homeLink: 'https://mask.io', + shortenLink: 'mask.io', + downloadLink: 'https://mask.io/download-links', + iconFilterColor: 'rgba(28, 104, 243, 0.2)', + backgroundGradient: 'linear-gradient(90deg, rgba(98, 152, 234, 0.2) 1.03%, rgba(98, 152, 234, 0.2) 1.04%, rgba(98, 126, 234, 0.2) 100%), linear-gradient(0deg, #FFFFFF, #FFFFFF)' + }, + { + ID: `${PLUGIN_ID}_metamask`, + providerAdaptorPluginID: PLUGIN_ID, + type: types/* ProviderType.MetaMask */.lP.MetaMask, + name: 'MetaMask', + icon: new URL(/* asset import */ __webpack_require__(34807), __webpack_require__.b), + enableRequirements: { + supportedChainIds: (0,esm/* getEnumAsArray */.Yl)(types/* ChainId */.a_).map((x)=>x.value + ), + supportedEnhanceableSites: (0,esm/* getEnumAsArray */.Yl)(shared_base_src/* EnhanceableSite */.Jk).map((x)=>x.value + ), + supportedExtensionSites: (0,esm/* getEnumAsArray */.Yl)(shared_base_src/* ExtensionSite */.v_).map((x)=>x.value + ) + }, + homeLink: 'https://metamask.io', + shortenLink: 'metamask.io', + downloadLink: 'https://metamask.io/download.html', + iconFilterColor: 'rgba(216, 124, 48, 0.3)', + backgroundGradient: 'linear-gradient(90deg, rgba(248, 156, 53, 0.2) 0%, rgba(98, 126, 234, 0.2) 100%), linear-gradient(0deg, #FFFFFF, #FFFFFF)' + }, + { + ID: `${PLUGIN_ID}_walletconnect`, + providerAdaptorPluginID: PLUGIN_ID, + type: types/* ProviderType.WalletConnect */.lP.WalletConnect, + name: 'WalletConnect', + icon: new URL(/* asset import */ __webpack_require__(90952), __webpack_require__.b), + enableRequirements: { + supportedChainIds: (0,esm/* getEnumAsArray */.Yl)(types/* ChainId */.a_).map((x)=>x.value + ), + supportedEnhanceableSites: (0,esm/* getEnumAsArray */.Yl)(shared_base_src/* EnhanceableSite */.Jk).map((x)=>x.value + ), + supportedExtensionSites: (0,esm/* getEnumAsArray */.Yl)(shared_base_src/* ExtensionSite */.v_).map((x)=>x.value + ) + }, + homeLink: 'https://walletconnect.com', + shortenLink: 'walletconnect.com', + downloadLink: 'https://walletconnect.com', + iconFilterColor: 'rgba(59, 153, 252, 0.2)', + backgroundGradient: 'linear-gradient(90deg, rgba(59, 153, 252, 0.2) 0%, rgba(98, 126, 234, 0.2) 100%), linear-gradient(0deg, #FFFFFF, #FFFFFF)' + }, + { + ID: `${PLUGIN_ID}_coin98`, + providerAdaptorPluginID: PLUGIN_ID, + type: types/* ProviderType.Coin98 */.lP.Coin98, + name: 'Coin98', + icon: new URL(/* asset import */ __webpack_require__(97857), __webpack_require__.b), + enableRequirements: { + supportedChainIds: (0,esm/* getEnumAsArray */.Yl)(types/* ChainId */.a_).map((x)=>x.value + ), + supportedEnhanceableSites: [] + }, + homeLink: 'https://coin98.com', + shortenLink: 'coin98.com', + downloadLink: 'https://coin98insights.com/introduction-to-coin98-wallet-extension' + }, + { + ID: `${PLUGIN_ID}_walletlink`, + providerAdaptorPluginID: PLUGIN_ID, + type: types/* ProviderType.WalletLink */.lP.WalletLink, + name: 'Coinbase', + icon: new URL(/* asset import */ __webpack_require__(12065), __webpack_require__.b), + enableRequirements: { + supportedChainIds: (0,esm/* getEnumAsArray */.Yl)(types/* ChainId */.a_).map((x)=>x.value + ), + supportedEnhanceableSites: [] + }, + homeLink: 'https://walletlink.org', + shortenLink: 'walletlink.org', + downloadLink: 'https://wallet.coinbase.com/' + }, + { + ID: `${PLUGIN_ID}_mathwallet`, + providerAdaptorPluginID: PLUGIN_ID, + type: types/* ProviderType.MathWallet */.lP.MathWallet, + name: 'MathWallet', + icon: new URL(/* asset import */ __webpack_require__(54476), __webpack_require__.b), + enableRequirements: { + supportedChainIds: [ + types/* ChainId.Mainnet */.a_.Mainnet, + types/* ChainId.BSC */.a_.BSC + ], + supportedEnhanceableSites: [] + }, + homeLink: 'https://mathwallet.org', + shortenLink: 'mathwallet.org', + downloadLink: 'https://mathwallet.org/en-us/#extension' + }, + { + ID: `${PLUGIN_ID}_fortmatic`, + providerAdaptorPluginID: PLUGIN_ID, + type: types/* ProviderType.Fortmatic */.lP.Fortmatic, + name: 'Fortmatic', + icon: new URL(/* asset import */ __webpack_require__(60934), __webpack_require__.b), + enableRequirements: { + supportedChainIds: [ + types/* ChainId.Mainnet */.a_.Mainnet, + types/* ChainId.BSC */.a_.BSC + ], + supportedEnhanceableSites: (0,esm/* getEnumAsArray */.Yl)(shared_base_src/* EnhanceableSite */.Jk).map((x)=>x.value + ), + supportedExtensionSites: (0,esm/* getEnumAsArray */.Yl)(shared_base_src/* ExtensionSite */.v_).map((x)=>x.value + ) + }, + homeLink: 'https://fortmatic.com', + shortenLink: 'fortmatic.com', + downloadLink: 'https://fortmatic.com', + iconFilterColor: 'rgba(104, 81, 255, 0.2)', + backgroundGradient: 'linear-gradient(90deg, rgba(104, 81, 255, 0.2) 0%, rgba(98, 126, 234, 0.2) 100%), linear-gradient(0deg, #FFFFFF, #FFFFFF)' + }, + { + ID: `${PLUGIN_ID}_torus`, + providerAdaptorPluginID: PLUGIN_ID, + type: types/* ProviderType.Torus */.lP.Torus, + name: 'Torus', + icon: new URL(/* asset import */ __webpack_require__(1110), __webpack_require__.b), + enableRequirements: { + supportedChainIds: [ + types/* ChainId.Mainnet */.a_.Mainnet, + types/* ChainId.BSC */.a_.BSC, + types/* ChainId.Matic */.a_.Matic, + types/* ChainId.xDai */.a_.xDai, + types/* ChainId.Optimistic */.a_.Optimistic, + types/* ChainId.Arbitrum */.a_.Arbitrum, + types/* ChainId.Avalanche */.a_.Avalanche, + ], + supportedEnhanceableSites: [], + supportedExtensionSites: [] + }, + homeLink: 'https://app.tor.us/', + shortenLink: 'tor.us', + downloadLink: 'https://app.tor.us/' + }, +]; + + +/***/ }), + +/***/ 36596: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "D": () => (/* binding */ FAKE_SIGN_PASSWORD), +/* harmony export */ "r": () => (/* binding */ ZERO_ADDRESS) +/* harmony export */ }); +const ZERO_ADDRESS = '0x0000000000000000000000000000000000000000'; +// for estimate gas +const FAKE_SIGN_PASSWORD = '0x75466cc969717b172b14253aaeebdc958f2b5037a852c1337650ed4978242dd9'; + + +/***/ }), + +/***/ 74404: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "AA": () => (/* binding */ USDT), +/* harmony export */ "FX": () => (/* binding */ WNATIVE), +/* harmony export */ "HL": () => (/* binding */ WNATIVE_ONLY), +/* harmony export */ "Hh": () => (/* binding */ fUSDT), +/* harmony export */ "J6": () => (/* binding */ maUSDC), +/* harmony export */ "Lq": () => (/* binding */ DAIe), +/* harmony export */ "MI": () => (/* binding */ WBTCe), +/* harmony export */ "ML": () => (/* binding */ WBTC), +/* harmony export */ "PX": () => (/* binding */ CUSD), +/* harmony export */ "Rb": () => (/* binding */ OPENX), +/* harmony export */ "TP": () => (/* binding */ COMP), +/* harmony export */ "Th": () => (/* binding */ CEUR), +/* harmony export */ "Ti": () => (/* binding */ MKR), +/* harmony export */ "_S": () => (/* binding */ STETH), +/* harmony export */ "_c": () => (/* binding */ USDTe), +/* harmony export */ "aV": () => (/* binding */ JEWEL), +/* harmony export */ "bi": () => (/* binding */ UST), +/* harmony export */ "c0": () => (/* binding */ ETHER), +/* harmony export */ "gn": () => (/* binding */ USDC), +/* harmony export */ "h1": () => (/* binding */ DAI), +/* harmony export */ "lB": () => (/* binding */ WANNA), +/* harmony export */ "lK": () => (/* binding */ NFTX), +/* harmony export */ "lz": () => (/* binding */ BUSD), +/* harmony export */ "nB": () => (/* binding */ BTCB), +/* harmony export */ "qN": () => (/* binding */ VIPER), +/* harmony export */ "s5": () => (/* binding */ AMPL), +/* harmony export */ "tB": () => (/* binding */ USDCe), +/* harmony export */ "uj": () => (/* binding */ RUNE), +/* harmony export */ "xZ": () => (/* binding */ QUICK), +/* harmony export */ "yI": () => (/* binding */ PNG) +/* harmony export */ }); +/* unused harmony exports HUSD, OKB, EASY, eUSDC, eUSDT, eDAI, sUSD, UNITOKEN, TT01, TT02, IGG, OM, SUSHI, YFI, CAKE, JOE */ +/* harmony import */ var _dimensiondev_kit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(46123); +/* harmony import */ var _masknet_web3_constants_evm_token_json__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(25704); +/* harmony import */ var _masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(67938); +/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(72499); +/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(94861); + + + + + +const createERC20Tokens = (0,_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_2__/* .createFungibleTokensFromConstants */ .iI)((0,_dimensiondev_kit__WEBPACK_IMPORTED_MODULE_0__/* .getEnumAsArray */ .Yl)(_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId */ .a_), _types__WEBPACK_IMPORTED_MODULE_3__/* .SchemaType.ERC20 */ .XQ.ERC20, _masknet_web3_constants_evm_token_json__WEBPACK_IMPORTED_MODULE_1__); +const USDC = createERC20Tokens('USDC_ADDRESS', 'USC Coin', 'USDC', 6); +const USDCe = createERC20Tokens('USDC_ADDRESS', 'USD Coin', 'USDCe', 6); +const USDT = createERC20Tokens('USDT_ADDRESS', 'Tether USD', 'USDT', 6); +const USDTe = createERC20Tokens('USDT_ADDRESS', 'Tether USD', 'USDT.e', 6); +const fUSDT = createERC20Tokens('fUSDT_ADDRESS', 'Frapped USDT', 'fUSDT', 6); +const HUSD = createERC20Tokens('HUSD_ADDRESS', 'Huobi USD', 'HUSD', 6); +const BUSD = createERC20Tokens('BUSD_ADDRESS', 'Huobi USD', 'BUSD', 6); +const COMP = createERC20Tokens('COMP_ADDRESS', 'Compound', 'COMP', 18); +const MKR = createERC20Tokens('MKR_ADDRESS', 'Maker', 'MKR', 18); +const DAI = createERC20Tokens('DAI_ADDRESS', 'Dai Stablecoin', 'DAI', 18); +const DAIe = createERC20Tokens('DAI_ADDRESS', 'Dai Stablecoin', 'DAI.e', 18); +const AMPL = createERC20Tokens('AMPL_ADDRESS', 'Ampleforth', 'AMPL', 18); +const OKB = createERC20Tokens('OKB_ADDRESS', 'Ampleforth', 'OKB', 18); +const UST = createERC20Tokens('UST_ADDRESS', 'Wrapped UST Token', 'UST', 18); +const EASY = createERC20Tokens('EASY_ADDRESS', 'EASY', 'EASY', 18); +const eUSDC = createERC20Tokens('eUSDC_ADDRESS', 'Easy USDC', 'eUSDC', 18); +const eUSDT = createERC20Tokens('eUSDT_ADDRESS', 'Easy USDT', 'eUSDT', 18); +const eDAI = createERC20Tokens('eDAI_ADDRESS', 'Easy DAI', 'eDAI', 18); +const sUSD = createERC20Tokens('sUSD_ADDRESS', 'Synth sUSD', 'sUSD', 18); +const UNITOKEN = createERC20Tokens('UNITOKEN_ADDRESS', 'Uniswap', 'UNI', 18); +const TT01 = createERC20Tokens('TT01_ADDRESS', 'Test Token 01', 'TT01', 18); +const TT02 = createERC20Tokens('TT02_ADDRESS', 'Test Token 02', 'TT02', 18); +const ETHER = createERC20Tokens('ETHER_ADDRESS', 'Ether', 'ETH', 18); +const QUICK = createERC20Tokens('QUICK_ADDRESS', 'Quickswap', 'QUICK', 18); +const WANNA = createERC20Tokens('WANNA_ADDRESS', 'Wannaswap', 'WANNA', 18); +const WBTC = createERC20Tokens('WBTC_ADDRESS', 'Wrapped Bitcoin', 'WBTC', 18); +const WBTCe = createERC20Tokens('WBTC_ADDRESS', 'Wrapped Bitcoin', 'WBTCe', 18); +const IGG = createERC20Tokens('IGG_ADDRESS', 'IG Gold', 'IGG', 18); +const OM = createERC20Tokens('OM_ADDRESS', 'OM Token', 'OM', 18); +const SUSHI = createERC20Tokens('SUSHI_ADDRESS', 'SushiToken', 'SUSHI', 18); +const RUNE = createERC20Tokens('RUNE_ADDRESS', 'RUNE.ETH', 'RUNE', 18); +const YFI = createERC20Tokens('YFI_ADDRESS', 'Yearn', 'YFI', 18); +const BTCB = createERC20Tokens('BTCB_ADDRESS', 'Binance BTC', 'BTCB', 18); +const CAKE = createERC20Tokens('CAKE_ADDRESS', 'PancakeSwap Token', 'CAKE', 18); +const maUSDC = createERC20Tokens('maUSDC_ADDRESS', 'Matic Aave interest bearing USDC', 'maUSDC', 6); +const NFTX = createERC20Tokens('NFTX_ADDRESS', 'NFTX', 'NFTX', 18); +const STETH = createERC20Tokens('stETH_ADDRESS', 'stakedETH', 'stETH', 18); +const CUSD = createERC20Tokens('cUSD_ADDRESS', 'Celo Dollar', 'cUSD', 18); +const CEUR = createERC20Tokens('cEUR_ADDRESS', 'Celo Euro', 'cEUR', 18); +const JOE = createERC20Tokens('JOE_ADDRESS', 'JoeToken', 'JOE', 18); +const PNG = createERC20Tokens('PNG_ADDRESS', 'Pangolin', 'PNG', 18); +const VIPER = createERC20Tokens('VIPER_ADDRESS', 'Viper', 'VIPER', 18); +const OPENX = createERC20Tokens('OPENX_ADDRESS', 'OpenSwap Token', 'OpenX', 18); +const JEWEL = createERC20Tokens('JEWEL_ADDRESS', 'Jewels', 'JEWEL', 18); +const WNATIVE = createERC20Tokens('WNATIVE_ADDRESS', (chainId)=>`Wrapped ${_utils__WEBPACK_IMPORTED_MODULE_4__/* .chainResolver.nativeCurrency */ .VU.nativeCurrency(chainId)?.name ?? 'Ether'}` +, (chainId)=>`W${_utils__WEBPACK_IMPORTED_MODULE_4__/* .chainResolver.nativeCurrency */ .VU.nativeCurrency(chainId)?.symbol ?? 'ETH'}` +, 18); +const WNATIVE_ONLY = { + [_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Mainnet */ .a_.Mainnet]: [ + WNATIVE[_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Mainnet */ .a_.Mainnet] + ], + [_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Ropsten */ .a_.Ropsten]: [ + WNATIVE[_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Ropsten */ .a_.Ropsten] + ], + [_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Rinkeby */ .a_.Rinkeby]: [ + WNATIVE[_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Rinkeby */ .a_.Rinkeby] + ], + [_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Kovan */ .a_.Kovan]: [ + WNATIVE[_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Kovan */ .a_.Kovan] + ], + [_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Gorli */ .a_.Gorli]: [ + WNATIVE[_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Gorli */ .a_.Gorli] + ], + [_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.BSC */ .a_.BSC]: [ + WNATIVE[_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.BSC */ .a_.BSC] + ], + [_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.BSCT */ .a_.BSCT]: [ + WNATIVE[_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.BSCT */ .a_.BSCT] + ], + [_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Matic */ .a_.Matic]: [ + WNATIVE[_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Matic */ .a_.Matic] + ], + [_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Mumbai */ .a_.Mumbai]: [ + WNATIVE[_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Mumbai */ .a_.Mumbai] + ], + [_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Arbitrum */ .a_.Arbitrum]: [ + WNATIVE[_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Arbitrum */ .a_.Arbitrum] + ], + [_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Arbitrum_Rinkeby */ .a_.Arbitrum_Rinkeby]: [ + WNATIVE[_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Arbitrum_Rinkeby */ .a_.Arbitrum_Rinkeby] + ], + [_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.xDai */ .a_.xDai]: [ + WNATIVE[_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.xDai */ .a_.xDai] + ], + [_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Avalanche */ .a_.Avalanche]: [ + WNATIVE[_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Avalanche */ .a_.Avalanche] + ], + [_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Avalanche_Fuji */ .a_.Avalanche_Fuji]: [ + WNATIVE[_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Avalanche_Fuji */ .a_.Avalanche_Fuji] + ], + [_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Celo */ .a_.Celo]: [ + WNATIVE[_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Celo */ .a_.Celo] + ], + [_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Fantom */ .a_.Fantom]: [ + WNATIVE[_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Fantom */ .a_.Fantom] + ], + [_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Aurora */ .a_.Aurora]: [ + WNATIVE[_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Aurora */ .a_.Aurora] + ], + [_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Aurora_Testnet */ .a_.Aurora_Testnet]: [ + WNATIVE[_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Aurora_Testnet */ .a_.Aurora_Testnet] + ], + [_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Harmony */ .a_.Harmony]: [ + WNATIVE[_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Harmony */ .a_.Harmony] + ] +}; + + +/***/ }), + +/***/ 70854: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "Ee": () => (/* binding */ resolveIPFS), +/* harmony export */ "QN": () => (/* binding */ resolveOpenSeaLink), +/* harmony export */ "SY": () => (/* binding */ resolveAR), +/* harmony export */ "Yx": () => (/* binding */ resolveIPFSLinkFromURL), +/* harmony export */ "r5": () => (/* binding */ resolveIPFSLink) +/* harmony export */ }); +/* unused harmony exports resolveCollectibleAssetLink, resolveCollectibleLink */ +/* harmony import */ var urlcat__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(19802); +/* harmony import */ var urlcat__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(urlcat__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(72499); +/* harmony import */ var _masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(67938); + + + +// TODO check ipfs inside before resolving +function resolveIPFSLink(ipfs) { + return urlcat__WEBPACK_IMPORTED_MODULE_0___default()('https://ipfs.io/ipfs/:ipfs', { + ipfs + }); +} +function resolveIPFSLinkFromURL(url) { + if (!url.startsWith('ipfs://')) return url; + return resolveIPFSLink(url.replace(/^ipfs:\/\/(ipfs\/)?/, '')); +} +function resolveIPFS(str) { + if (str?.length === 0) return str; + if (str.startsWith('https://')) return str; + if (!str.startsWith('ipfs://')) return resolveIPFSLink(str); + return resolveIPFSLink(str.replace(/^ipfs:\/\/(ipfs\/)?/, '')); +} +function resolveAR(str) { + if (str.length === 0) return str; + if (str.startsWith('https://')) return str; + return urlcat__WEBPACK_IMPORTED_MODULE_0___default()('https://arweave.net/:str', { + str + }); +} +function resolveCollectibleAssetLink(chainId, provider) { + switch(provider){ + case SourceType.OpenSea: + if (chainId === ChainId.Rinkeby) return 'https://testnets.opensea.io/assets'; + if (chainId === ChainId.Matic) return 'https://opensea.io/assets/matic'; + return 'https://opensea.io/assets'; + case SourceType.Rarible: + return ''; + case SourceType.NFTScan: + return ''; + case SourceType.Zora: + return ''; + default: + return ''; + } +} +function resolveCollectibleLink(chainId, provider, address, tokenId) { + switch(provider){ + case SourceType.OpenSea: + return urlcat(resolveCollectibleAssetLink(chainId, provider), '/:address/:tokenId', { + address, + tokenId + }); + case SourceType.Rarible: + return ''; + case SourceType.NFTScan: + return ''; + case SourceType.Zora: + return ''; + default: + return ''; + } +} +function resolveOpenSeaLink(contractAddress, tokenId, chainId) { + if (chainId === _types__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Matic */ .a_.Matic) { + return urlcat__WEBPACK_IMPORTED_MODULE_0___default()('https://opensea.io/assets/matic/:address/:tokenId', { + address: contractAddress, + tokenId + }); + } + return urlcat__WEBPACK_IMPORTED_MODULE_0___default()('https://opensea.io/assets/:address/:tokenId', { + address: contractAddress, + tokenId + }); +} + + +/***/ }), + +/***/ 77378: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "e": () => (/* binding */ parseStringOrBytes32), +/* harmony export */ "m": () => (/* binding */ decodeOutputString) +/* harmony export */ }); +/* harmony import */ var web3_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11627); +/* harmony import */ var web3_utils__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(web3_utils__WEBPACK_IMPORTED_MODULE_0__); + +function decodeOutputString(web3, abis, output) { + if (abis.length === 1) return web3.eth.abi.decodeParameter(abis[0], output); + if (abis.length > 1) return web3.eth.abi.decodeParameters(abis, output); + return; +} +// parse a name or symbol from a token response +const BYTES32_REGEX = /^0x[\dA-Fa-f]{64}$/; +function parseStringOrBytes32(str, bytes32, defaultValue) { + return str && str.length > 0 ? str : bytes32 && BYTES32_REGEX.test(bytes32) && (0,web3_utils__WEBPACK_IMPORTED_MODULE_0__.hexToBytes)(bytes32)[31] === 0 ? (0,web3_utils__WEBPACK_IMPORTED_MODULE_0__.toAscii)(bytes32) : defaultValue; +} + + +/***/ }), + +/***/ 2596: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "At": () => (/* binding */ isValidAddress), +/* harmony export */ "JW": () => (/* binding */ isValidChainId), +/* harmony export */ "qw": () => (/* binding */ isNativeTokenAddress), +/* harmony export */ "uO": () => (/* binding */ isZeroAddress), +/* harmony export */ "vY": () => (/* binding */ getMaskTokenAddress), +/* harmony export */ "w2": () => (/* binding */ isEmptyHex) +/* harmony export */ }); +/* unused harmony export isRedPacketAddress */ +/* harmony import */ var wallet_ts__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(99674); +/* harmony import */ var wallet_ts__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(wallet_ts__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _dimensiondev_kit__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(46123); +/* harmony import */ var _masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(67938); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(36596); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(47104); +/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(72499); + + + + + +function isEmptyHex(hex) { + return !hex || [ + '0x', + '0x0' + ].includes(hex); +} +function isValidAddress(address) { + if (!address) return false; + return wallet_ts__WEBPACK_IMPORTED_MODULE_0__.EthereumAddress.isValid(address); +} +function isValidChainId(chainId) { + return (0,_dimensiondev_kit__WEBPACK_IMPORTED_MODULE_1__/* .getEnumAsArray */ .Yl)(_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId */ .a_).some((x)=>x.value === chainId + ); +} +const isZeroAddress = (0,_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_2__/* .currySameAddress */ .DC)(_constants__WEBPACK_IMPORTED_MODULE_4__/* .ZERO_ADDRESS */ .r); +const isNativeTokenAddress = (0,_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_2__/* .currySameAddress */ .DC)((0,_dimensiondev_kit__WEBPACK_IMPORTED_MODULE_1__/* .getEnumAsArray */ .Yl)(_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId */ .a_).map(({ value })=>(0,_constants__WEBPACK_IMPORTED_MODULE_5__/* .getTokenConstants */ .aV)(value).NATIVE_TOKEN_ADDRESS +)); +function isRedPacketAddress(address, version) { + const { HAPPY_RED_PACKET_ADDRESS_V1 , HAPPY_RED_PACKET_ADDRESS_V2 , HAPPY_RED_PACKET_ADDRESS_V3 , HAPPY_RED_PACKET_ADDRESS_V4 , } = getRedPacketConstants(); + switch(version){ + case 1: + return isSameAddress(HAPPY_RED_PACKET_ADDRESS_V1, address); + case 2: + return isSameAddress(HAPPY_RED_PACKET_ADDRESS_V2, address); + case 3: + return isSameAddress(HAPPY_RED_PACKET_ADDRESS_V3, address); + case 4: + return isSameAddress(HAPPY_RED_PACKET_ADDRESS_V4, address); + default: + return isSameAddress(HAPPY_RED_PACKET_ADDRESS_V1, address) || isSameAddress(HAPPY_RED_PACKET_ADDRESS_V2, address) || isSameAddress(HAPPY_RED_PACKET_ADDRESS_V3, address) || isSameAddress(HAPPY_RED_PACKET_ADDRESS_V4, address); + } +} +function getMaskTokenAddress(chainId) { + return (0,_constants__WEBPACK_IMPORTED_MODULE_5__/* .getTokenConstants */ .aV)(chainId).MASK_ADDRESS; +} + + +/***/ }), + +/***/ 28114: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "OP": () => (/* binding */ createContract), +/* harmony export */ "SC": () => (/* binding */ encodeTransaction), +/* harmony export */ "T7": () => (/* binding */ sendTransaction), +/* harmony export */ "Wp": () => (/* binding */ encodeContractTransaction) +/* harmony export */ }); +/* harmony import */ var web3_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11627); +/* harmony import */ var web3_utils__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(web3_utils__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var lodash_unified__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(74258); +/* harmony import */ var lodash_unified__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(35272); +/* harmony import */ var _address__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(2596); + + + +function encodeTransaction(transaction) { + return (0,lodash_unified__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)({ + from: transaction?.from, + to: transaction.to, + value: transaction?.value ? (0,web3_utils__WEBPACK_IMPORTED_MODULE_0__.toHex)(transaction.value) : undefined, + gas: transaction?.gas ? (0,web3_utils__WEBPACK_IMPORTED_MODULE_0__.toHex)(transaction.gas) : undefined, + gasPrice: transaction?.gasPrice ? (0,web3_utils__WEBPACK_IMPORTED_MODULE_0__.toHex)(transaction.gasPrice) : undefined, + maxPriorityFeePerGas: transaction?.maxPriorityFeePerGas ? (0,web3_utils__WEBPACK_IMPORTED_MODULE_0__.toHex)(transaction.maxPriorityFeePerGas) : undefined, + maxFeePerGas: transaction?.maxFeePerGas ? (0,web3_utils__WEBPACK_IMPORTED_MODULE_0__.toHex)(transaction.maxFeePerGas) : undefined, + data: transaction.data, + nonce: transaction?.nonce ? (0,web3_utils__WEBPACK_IMPORTED_MODULE_0__.toHex)(transaction.nonce) : undefined, + chainId: transaction?.chainId ? (0,web3_utils__WEBPACK_IMPORTED_MODULE_0__.toHex)(transaction.chainId) : undefined + }, lodash_unified__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z); +} +async function encodeContractTransaction(contract, transaction, overrides) { + const tx = { + from: (overrides?.from ?? contract.defaultAccount) ?? '', + to: contract.options.address, + data: transaction.encodeABI(), + value: overrides?.value ? (0,web3_utils__WEBPACK_IMPORTED_MODULE_0__.toHex)(overrides.value) : undefined, + gas: overrides?.gas ? (0,web3_utils__WEBPACK_IMPORTED_MODULE_0__.toHex)(overrides.gas) : undefined, + gasPrice: overrides?.gasPrice ? (0,web3_utils__WEBPACK_IMPORTED_MODULE_0__.toHex)(overrides.gasPrice) : undefined, + maxPriorityFeePerGas: overrides?.maxPriorityFeePerGas ? (0,web3_utils__WEBPACK_IMPORTED_MODULE_0__.toHex)(overrides.maxPriorityFeePerGas) : undefined, + maxFeePerGas: overrides?.maxFeePerGas ? (0,web3_utils__WEBPACK_IMPORTED_MODULE_0__.toHex)(overrides.maxFeePerGas) : undefined, + nonce: overrides?.nonce ? (0,web3_utils__WEBPACK_IMPORTED_MODULE_0__.toHex)(overrides.nonce) : undefined, + chainId: overrides?.chainId ? (0,web3_utils__WEBPACK_IMPORTED_MODULE_0__.toHex)(overrides.chainId) : undefined + }; + if (!tx.gas) { + tx.gas = await transaction.estimateGas({ + from: tx.from, + value: tx.value + }); + } + return encodeTransaction(tx); +} +async function sendTransaction(contract, transaction, overrides) { + if (!contract || !transaction) throw new Error('Invalid contract or transaction.'); + const tx = await encodeContractTransaction(contract, transaction, overrides); + const receipt = await transaction.send(tx); + return receipt?.transactionHash ?? ''; +} +function createContract(web3, address, ABI) { + if (!address || !(0,_address__WEBPACK_IMPORTED_MODULE_3__/* .isValidAddress */ .At)(address) || !web3) return null; + const contract = new web3.eth.Contract(ABI, address); + return contract; +} + + +/***/ }), + +/***/ 54682: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "h": () => (/* binding */ isValidDomain) +/* harmony export */ }); +/* unused harmony export resolveDomainLink */ +/* harmony import */ var urlcat__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(19802); +/* harmony import */ var urlcat__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(urlcat__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var punycode__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(11590); + + + +function isValidDomain(domain) { + if (!domain || !domain.includes('.eth')) return false; + const match = punycode__WEBPACK_IMPORTED_MODULE_1__["default"].toASCII(domain).toLowerCase().match(/^(?:[a-z0-9](?:[-a-z0-9]*[a-z0-9])?\.)+[a-z0-9][-a-z0-9]*[a-z0-9]$/u); + return match !== null; +} +function resolveDomainLink(chainId, domain) { + if (!domain) return domain; + if (chainId === ChainId.Mainnet) return urlcat('https://app.ens.domains/name/:domain/details', { + domain + }); + return ''; +} + + +/***/ }), + +/***/ 5326: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "Hh": () => (/* binding */ formatGweiToEther), +/* harmony export */ "Xy": () => (/* binding */ formatTokenId), +/* harmony export */ "ZP": () => (/* binding */ formatUSD), +/* harmony export */ "bc": () => (/* binding */ formatDomainName), +/* harmony export */ "dN": () => (/* binding */ formatAmount), +/* harmony export */ "f1": () => (/* binding */ formatWeiToGwei), +/* harmony export */ "j8": () => (/* binding */ formatEthereumAddress), +/* harmony export */ "nU": () => (/* binding */ formatGweiToWei), +/* harmony export */ "rl": () => (/* binding */ formatPercentage), +/* harmony export */ "yp": () => (/* binding */ formatWeiToEther) +/* harmony export */ }); +/* unused harmony exports formatPrice, formatKeccakHash, formatNumberString */ +/* harmony import */ var bignumber_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(42263); +/* harmony import */ var bignumber_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(bignumber_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var wallet_ts__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(99674); +/* harmony import */ var wallet_ts__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(wallet_ts__WEBPACK_IMPORTED_MODULE_1__); +/* harmony import */ var _masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(67938); +/* harmony import */ var _domain__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(54682); +/* harmony import */ var _address__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(2596); + + + + + +function formatPercentage(value) { + const percentage = (0,_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_2__/* .multipliedBy */ .$q)(value, 100).toFixed(2).replace(/\.?0+$/, ''); + return `${percentage}%`; +} +function formatPrice(price, decimalPlaces = 6) { + return new BigNumber(price).decimalPlaces(decimalPlaces).toString(); +} +function formatAmount(amount = '0', decimals = 0) { + return new bignumber_js__WEBPACK_IMPORTED_MODULE_0__.BigNumber(amount).shiftedBy(decimals).toFixed(); +} +function formatEthereumAddress(address, size = 0) { + if (!(0,_address__WEBPACK_IMPORTED_MODULE_3__/* .isValidAddress */ .At)(address)) return address; + const address_ = wallet_ts__WEBPACK_IMPORTED_MODULE_1__.EthereumAddress.checksumAddress(address); + if (size === 0 || size >= 20) return address_; + return `${address_.slice(0, Math.max(0, 2 + size))}...${address_.slice(-size)}`; +} +function formatTokenId(tokenId, size = 0) { + if (tokenId.length < 9) return `#${tokenId}`; + return `#${tokenId.slice(0, Math.max(0, 2 + size))}...${tokenId.slice(-size)}`; +} +function formatDomainName(domain, size = 4) { + if (!domain || !(0,_domain__WEBPACK_IMPORTED_MODULE_4__/* .isValidDomain */ .h)(domain)) return domain; + const [domainName, company] = domain.split('.'); + if (domainName.length < 13) return domain; + return `${domainName.slice(0, Math.max(0, size))}...${domainName.slice(-size)}.${company}`; +} +function formatKeccakHash(hash, size = 0) { + if (!/0x\w{64}/.test(hash)) return hash; + if (size === 0) return hash; + return `${hash.slice(0, Math.max(0, 2 + size))}...${hash.slice(-size)}`; +} +function formatNumberString(input, size = 0) { + if (!/\d+/.test(input)) return input; + if (size === 0) return input; + return `${input.slice(0, Math.max(0, size))}...${input.slice(-size)}`; +} +function formatWeiToGwei(value) { + return new bignumber_js__WEBPACK_IMPORTED_MODULE_0__.BigNumber(value).shiftedBy(-9).integerValue(); +} +function formatWeiToEther(value) { + return new bignumber_js__WEBPACK_IMPORTED_MODULE_0__.BigNumber(value).shiftedBy(-18); +} +function formatGweiToWei(value) { + return new bignumber_js__WEBPACK_IMPORTED_MODULE_0__.BigNumber(value).shiftedBy(9); +} +function formatGweiToEther(value) { + return new bignumber_js__WEBPACK_IMPORTED_MODULE_0__.BigNumber(value).shiftedBy(-9); +} +function formatUSD(value, significant = 2) { + const bn = new bignumber_js__WEBPACK_IMPORTED_MODULE_0__.BigNumber(value); + return bn.lt(0.01) ? '<$0.01' : bn.toFixed(significant); +} + + +/***/ }), + +/***/ 2046: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "Ri": () => (/* binding */ getPayloadFrom), +/* harmony export */ "Z4": () => (/* binding */ createPayload), +/* harmony export */ "bu": () => (/* binding */ addGasMargin), +/* harmony export */ "is": () => (/* binding */ getPayloadConfig), +/* harmony export */ "rH": () => (/* binding */ getPayloadId), +/* harmony export */ "si": () => (/* binding */ getPayloadChainId) +/* harmony export */ }); +/* harmony import */ var bignumber_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(42263); +/* harmony import */ var bignumber_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(bignumber_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var lodash_unified__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(29730); +/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(72499); + + + +function addGasMargin(value, scale = 3000) { + return new (bignumber_js__WEBPACK_IMPORTED_MODULE_0___default())(value).multipliedBy(new (bignumber_js__WEBPACK_IMPORTED_MODULE_0___default())(10000).plus(scale)).dividedToIntegerBy(10000); +} +function createPayload(id, method, params) { + return { + id, + jsonrpc: '2.0', + method, + params + }; +} +function getPayloadId(payload) { + return typeof payload.id === 'string' ? Number.parseInt(payload.id, 10) : payload.id; +} +function getPayloadFrom(payload) { + switch(payload.method){ + case _types__WEBPACK_IMPORTED_MODULE_1__/* .EthereumMethodType.ETH_SIGN */ .W8.ETH_SIGN: + return (0,lodash_unified__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z)(payload.params); + case _types__WEBPACK_IMPORTED_MODULE_1__/* .EthereumMethodType.PERSONAL_SIGN */ .W8.PERSONAL_SIGN: + return payload.params?.[1]; + case _types__WEBPACK_IMPORTED_MODULE_1__/* .EthereumMethodType.ETH_SIGN_TYPED_DATA */ .W8.ETH_SIGN_TYPED_DATA: + return (0,lodash_unified__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z)(payload.params); + default: + const config = getPayloadConfig(payload); + return config?.from; + } +} +function getPayloadChainId(payload) { + const config = getPayloadConfig(payload); + return typeof config?.chainId === 'string' ? Number.parseInt(config.chainId, 16) || undefined : undefined; +} +function getPayloadConfig(payload) { + switch(payload.method){ + case _types__WEBPACK_IMPORTED_MODULE_1__/* .EthereumMethodType.ETH_CALL */ .W8.ETH_CALL: + case _types__WEBPACK_IMPORTED_MODULE_1__/* .EthereumMethodType.ETH_ESTIMATE_GAS */ .W8.ETH_ESTIMATE_GAS: + case _types__WEBPACK_IMPORTED_MODULE_1__/* .EthereumMethodType.ETH_SIGN_TRANSACTION */ .W8.ETH_SIGN_TRANSACTION: + case _types__WEBPACK_IMPORTED_MODULE_1__/* .EthereumMethodType.ETH_SEND_TRANSACTION */ .W8.ETH_SEND_TRANSACTION: + { + const [config] = payload.params; + return config; + } + case _types__WEBPACK_IMPORTED_MODULE_1__/* .EthereumMethodType.MASK_REPLACE_TRANSACTION */ .W8.MASK_REPLACE_TRANSACTION: + { + const [, config] = payload.params; + return config; + } + default: + return; + } +} + + +/***/ }), + +/***/ 94861: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "LJ": () => (/* binding */ networkResolver), +/* harmony export */ "Nb": () => (/* binding */ explorerResolver), +/* harmony export */ "VU": () => (/* binding */ chainResolver), +/* harmony export */ "bN": () => (/* binding */ providerResolver) +/* harmony export */ }); +/* harmony import */ var _masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(67938); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(13898); + + +const chainResolver = (0,_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .createChainResolver */ .ti)(_constants__WEBPACK_IMPORTED_MODULE_1__/* .CHAIN_DESCRIPTORS */ .Q_); +const explorerResolver = (0,_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .createExplorerResolver */ .Qv)(_constants__WEBPACK_IMPORTED_MODULE_1__/* .CHAIN_DESCRIPTORS */ .Q_); +const networkResolver = (0,_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .createNetworkResolver */ .iu)(_constants__WEBPACK_IMPORTED_MODULE_1__/* .NETWORK_DESCRIPTORS */ .qQ); +const providerResolver = (0,_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .createProviderResolver */ .Xg)(_constants__WEBPACK_IMPORTED_MODULE_1__/* .PROVIDER_DESCRIPTORS */ .zM); + + +/***/ }), + +/***/ 91761: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "$c": () => (/* binding */ createNativeToken), +/* harmony export */ "VD": () => (/* binding */ isNativeTokenSymbol), +/* harmony export */ "vs": () => (/* binding */ createERC20Tokens), +/* harmony export */ "wY": () => (/* binding */ createERC20Token) +/* harmony export */ }); +/* harmony import */ var _masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(67938); +/* harmony import */ var _masknet_web3_constants_evm_token_json__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(25704); +/* harmony import */ var ___WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(94861); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(13898); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(47104); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(36596); +/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(72499); +/* harmony import */ var _dimensiondev_kit__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(46123); + + + + + + +function isNativeTokenSymbol(symbol) { + return _constants__WEBPACK_IMPORTED_MODULE_3__/* .CHAIN_DESCRIPTORS.filter */ .Q_.filter((x)=>x.network === 'mainnet' && x.nativeCurrency + ).map((x)=>x.nativeCurrency.symbol.toLowerCase() + ).includes(symbol.toLowerCase()); +} +function createNativeToken(chainId) { + const nativeCurrency = ___WEBPACK_IMPORTED_MODULE_4__/* .chainResolver.nativeCurrency */ .VU.nativeCurrency(chainId); + return (0,_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .createFungibleToken */ .mn)(chainId, _types__WEBPACK_IMPORTED_MODULE_5__/* .SchemaType.Native */ .XQ.Native, (0,_constants__WEBPACK_IMPORTED_MODULE_6__/* .getTokenConstants */ .aV)(chainId).NATIVE_TOKEN_ADDRESS ?? _constants__WEBPACK_IMPORTED_MODULE_7__/* .ZERO_ADDRESS */ .r, nativeCurrency?.name ?? 'Ether', nativeCurrency?.symbol ?? 'ETH', nativeCurrency?.decimals ?? 18, nativeCurrency?.logoURL); +} +function createERC20Token(chainId, address, name = 'Unknown Token', symbol = '', decimals = 0, logoURI) { + return (0,_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .createFungibleToken */ .mn)(chainId, _types__WEBPACK_IMPORTED_MODULE_5__/* .SchemaType.ERC20 */ .XQ.ERC20, address, name, symbol, decimals, logoURI); +} +const createERC20Tokens = (0,_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .createFungibleTokensFromConstants */ .iI)((0,_dimensiondev_kit__WEBPACK_IMPORTED_MODULE_2__/* .getEnumAsArray */ .Yl)(_types__WEBPACK_IMPORTED_MODULE_5__/* .ChainId */ .a_), _types__WEBPACK_IMPORTED_MODULE_5__/* .SchemaType.ERC20 */ .XQ.ERC20, _masknet_web3_constants_evm_token_json__WEBPACK_IMPORTED_MODULE_1__); + + +/***/ }), + +/***/ 46815: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "Fy": () => (/* binding */ getTo), +/* harmony export */ "NU": () => (/* binding */ isNextStateAvailable), +/* harmony export */ "Y2": () => (/* binding */ isRiskMethod), +/* harmony export */ "Yu": () => (/* binding */ getData), +/* harmony export */ "qI": () => (/* binding */ getFunctionParameters), +/* harmony export */ "rl": () => (/* binding */ getFunctionSignature) +/* harmony export */ }); +/* unused harmony exports isEIP1559Transaction, isFinalState, getTransactionSignature */ +/* harmony import */ var web3_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11627); +/* harmony import */ var web3_utils__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(web3_utils__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _dimensiondev_kit__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(46123); +/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(72499); +/* harmony import */ var _address__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(2596); +/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(36596); + + + + + +function isEIP1559Transaction(receipt) { + return typeof receipt.maxFeePerGas !== 'undefined' && typeof receipt.maxPriorityFeePerGas !== 'undefined'; +} +function isFinalState(type) { + return [ + TransactionStateType.CONFIRMED, + TransactionStateType.FAILED + ].includes(type); +} +const RISK_METHOD_LIST = [ + _types__WEBPACK_IMPORTED_MODULE_2__/* .EthereumMethodType.ETH_SIGN */ .W8.ETH_SIGN, + _types__WEBPACK_IMPORTED_MODULE_2__/* .EthereumMethodType.PERSONAL_SIGN */ .W8.PERSONAL_SIGN, + _types__WEBPACK_IMPORTED_MODULE_2__/* .EthereumMethodType.ETH_SIGN_TYPED_DATA */ .W8.ETH_SIGN_TYPED_DATA, + _types__WEBPACK_IMPORTED_MODULE_2__/* .EthereumMethodType.ETH_DECRYPT */ .W8.ETH_DECRYPT, + _types__WEBPACK_IMPORTED_MODULE_2__/* .EthereumMethodType.ETH_GET_ENCRYPTION_PUBLIC_KEY */ .W8.ETH_GET_ENCRYPTION_PUBLIC_KEY, + _types__WEBPACK_IMPORTED_MODULE_2__/* .EthereumMethodType.ETH_SEND_TRANSACTION */ .W8.ETH_SEND_TRANSACTION, +]; +function isRiskMethod(method) { + return RISK_METHOD_LIST.includes(method); +} +/** + * UNKNOWN -> WAIT_FOR_CONFIRMING + * UNKNOWN, WAIT_FOR_CONFIRMING -> HASH + * UNKNOWN, WAIT_FOR_CONFIRMING, HASH -> RECEIPT + * WAIT_FOR_CONFIRMING, HASH, RECEIPT -> CONFIRMED + * UNKNOWN, WAIT_FOR_CONFIRMING, HASH, RECEIPT -> FAILED + */ function isNextStateAvailable(type, nextType) { + switch(nextType){ + case _types__WEBPACK_IMPORTED_MODULE_2__/* .TransactionStateType.UNKNOWN */ .n$.UNKNOWN: + return false; + case _types__WEBPACK_IMPORTED_MODULE_2__/* .TransactionStateType.WAIT_FOR_CONFIRMING */ .n$.WAIT_FOR_CONFIRMING: + return [ + _types__WEBPACK_IMPORTED_MODULE_2__/* .TransactionStateType.UNKNOWN */ .n$.UNKNOWN + ].includes(type); + case _types__WEBPACK_IMPORTED_MODULE_2__/* .TransactionStateType.HASH */ .n$.HASH: + return [ + _types__WEBPACK_IMPORTED_MODULE_2__/* .TransactionStateType.UNKNOWN */ .n$.UNKNOWN, + _types__WEBPACK_IMPORTED_MODULE_2__/* .TransactionStateType.WAIT_FOR_CONFIRMING */ .n$.WAIT_FOR_CONFIRMING + ].includes(type); + case _types__WEBPACK_IMPORTED_MODULE_2__/* .TransactionStateType.RECEIPT */ .n$.RECEIPT: + return [ + _types__WEBPACK_IMPORTED_MODULE_2__/* .TransactionStateType.UNKNOWN */ .n$.UNKNOWN, + _types__WEBPACK_IMPORTED_MODULE_2__/* .TransactionStateType.WAIT_FOR_CONFIRMING */ .n$.WAIT_FOR_CONFIRMING, + _types__WEBPACK_IMPORTED_MODULE_2__/* .TransactionStateType.HASH */ .n$.HASH, + ].includes(type); + case _types__WEBPACK_IMPORTED_MODULE_2__/* .TransactionStateType.CONFIRMED */ .n$.CONFIRMED: + return [ + _types__WEBPACK_IMPORTED_MODULE_2__/* .TransactionStateType.WAIT_FOR_CONFIRMING */ .n$.WAIT_FOR_CONFIRMING, + _types__WEBPACK_IMPORTED_MODULE_2__/* .TransactionStateType.HASH */ .n$.HASH, + _types__WEBPACK_IMPORTED_MODULE_2__/* .TransactionStateType.RECEIPT */ .n$.RECEIPT, + ].includes(type); + case _types__WEBPACK_IMPORTED_MODULE_2__/* .TransactionStateType.FAILED */ .n$.FAILED: + return [ + _types__WEBPACK_IMPORTED_MODULE_2__/* .TransactionStateType.UNKNOWN */ .n$.UNKNOWN, + _types__WEBPACK_IMPORTED_MODULE_2__/* .TransactionStateType.WAIT_FOR_CONFIRMING */ .n$.WAIT_FOR_CONFIRMING, + _types__WEBPACK_IMPORTED_MODULE_2__/* .TransactionStateType.HASH */ .n$.HASH, + _types__WEBPACK_IMPORTED_MODULE_2__/* .TransactionStateType.RECEIPT */ .n$.RECEIPT, + ].includes(type); + default: + (0,_dimensiondev_kit__WEBPACK_IMPORTED_MODULE_1__/* .unreachable */ .t1)(nextType); + } +} +function getData(config) { + const { data } = config; + if (!data) return; + if ((0,_address__WEBPACK_IMPORTED_MODULE_3__/* .isEmptyHex */ .w2)(data)) return; + if (!data.startsWith('0x')) return `0x${data}`; + return data; +} +function getTo(config) { + const { to } = config; + if (!to) return _constants__WEBPACK_IMPORTED_MODULE_4__/* .ZERO_ADDRESS */ .r; + if ((0,_address__WEBPACK_IMPORTED_MODULE_3__/* .isEmptyHex */ .w2)(to)) return _constants__WEBPACK_IMPORTED_MODULE_4__/* .ZERO_ADDRESS */ .r; + return to; +} +function getFunctionSignature(tx) { + const data = getData(tx); + return data?.slice(0, 10); +} +function getFunctionParameters(tx) { + const data = getData(tx); + return data?.slice(10); +} +function getTransactionSignature(transaction) { + if (!transaction) return; + const { from , to , data , value } = transaction; + return sha3([ + from, + to, + data || '0x0', + toHex(value || '0x0') || '0x0' + ].join('_')) ?? undefined; +} + + +/***/ }), + +/***/ 85081: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; + +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "Q_": () => (/* reexport */ descriptors/* CHAIN_DESCRIPTORS */.Q_), + "a_": () => (/* reexport */ types/* ChainId */.a_), + "qQ": () => (/* reexport */ descriptors/* NETWORK_DESCRIPTORS */.qQ), + "td": () => (/* reexport */ types/* NetworkType */.td), + "zM": () => (/* reexport */ descriptors/* PROVIDER_DESCRIPTORS */.zM), + "lP": () => (/* reexport */ types/* ProviderType */.lP), + "XQ": () => (/* reexport */ types/* SchemaType */.XQ), + "GB": () => (/* reexport */ types/* TransactionStatusCode */.GB), + "VU": () => (/* reexport */ chainResolver), + "eI": () => (/* reexport */ createClient), + "$c": () => (/* reexport */ createNativeToken), + "Tg": () => (/* reexport */ formatAddress), + "bc": () => (/* reexport */ formatDomainName), + "aV": () => (/* reexport */ getTokenConstants), + "At": () => (/* reexport */ isValidAddress), + "JW": () => (/* reexport */ isValidChainId), + "hS": () => (/* reexport */ isValidDomain) +}); + +// UNUSED EXPORTS: AssetProviderType, ZERO_ADDRESS, explorerResolver, getAuthConstants, getChainConstants, networkResolver, providerResolver, useAuthConstants, useChainConstants, useFCL, useScript, useTokenConstants + +// EXTERNAL MODULE: ../../node_modules/.pnpm/@blocto+fcl@0.0.78-alpha.10/node_modules/@blocto/fcl/dist/fcl.module.js +var fcl_module = __webpack_require__(46726); +;// CONCATENATED MODULE: ../web3-constants/flow/auth.json +const auth_namespaceObject = JSON.parse('{"ACCESS_NODE_API":{"Mainnet":"https://flow-access-mainnet.portto.io","Testnet":"https://access-testnet.onflow.org"},"DISCOVERY_WALLET":{"Mainnet":"https://flow-wallet.blocto.app/authn","Testnet":"https://flow-wallet-testnet.blocto.app/authn"},"CHALLENGE_HANDSHAKE":{"Mainnet":"https://flow-wallet.blocto.app/api/flow/authn","Testnet":"https://flow-wallet-testnet.blocto.app/api/flow/authn"},"MASK_APP_TITLE":{"Mainnet":"Mask Network","Testnet":"Mask Network (Dev)"},"MASK_APP_ICON":{"Mainnet":"https://dimensiondev.github.io/Mask-VI/assets/Logo/MB--Logo--Geo--ForceCircle--Blue.svg","Testnet":"https://dimensiondev.github.io/Mask-VI/assets/Logo/MB--Logo--Geo--ForceCircle--Blue.svg"}}'); +;// CONCATENATED MODULE: ../web3-constants/flow/chain.json +const chain_namespaceObject = JSON.parse('{"NAME":{"Mainnet":"Flow","Testnet":"Flow Testnet"},"FULL_NAME":{"Mainnet":"Flow","Testnet":"Flow Testnet"},"SHORT_NAME":{"Mainnet":"FCL","Testnet":"FCL"},"COLOR":{"Mainnet":"#34d399","Testnet":"#34d399"}}'); +;// CONCATENATED MODULE: ../web3-constants/flow/token.json +const token_namespaceObject = JSON.parse('{"FLOW_ADDRESS":{"Mainnet":"0x1654653399040a61","Testnet":""},"FUSD_ADDRESS":{"Mainnet":"0x3c5959b568896393","Testnet":"0xe223d8a629e49c68"},"TETHER_ADDRESS":{"Mainnet":"0xcfdd90d4a00f7b5b","Testnet":""},"FUNGIBLE_TOKEN_ADDRESS":{"Mainnet":"0xf233dcee88fe0abe","Testnet":"0x9a0766d93b6608b7"}}'); +// EXTERNAL MODULE: ../web3-shared/base/src/index.ts + 1 modules +var src = __webpack_require__(67938); +// EXTERNAL MODULE: ../web3-shared/flow/types.ts +var types = __webpack_require__(56874); +;// CONCATENATED MODULE: ../web3-shared/flow/constants/constants.ts + + + + + +const getAuthConstants = (0,src/* transform */.vs)(types/* ChainId */.a_, auth_namespaceObject); +const useAuthConstants = (0,src/* hookTransform */.SL)(getAuthConstants); +const getChainConstants = (0,src/* transform */.vs)(types/* ChainId */.a_, chain_namespaceObject); +const useChainConstants = (0,src/* hookTransform */.SL)(getChainConstants); +const getTokenConstants = (0,src/* transform */.vs)(types/* ChainId */.a_, token_namespaceObject); +const useTokenConstants = (0,src/* hookTransform */.SL)(getTokenConstants); + +// EXTERNAL MODULE: ../web3-shared/flow/constants/descriptors.ts +var descriptors = __webpack_require__(62846); +;// CONCATENATED MODULE: ../web3-shared/flow/constants/index.ts + + + + +;// CONCATENATED MODULE: ../web3-shared/flow/sdk/index.ts + + +function createClient(chainId) { + const authConstants = getAuthConstants(chainId); + fcl_module.config({ + 'accessNode.api': authConstants.ACCESS_NODE_API ?? '', + 'app.detail.title': authConstants.MASK_APP_TITLE, + 'app.detail.icon': authConstants.MASK_APP_ICON, + // @ts-ignore + 'challenge.handshake': authConstants.CHALLENGE_HANDSHAKE ?? '', + 'discovery.wallet.method': 'HTTP/POST' + }); + return fcl_module; +} + +// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.1.0/node_modules/react/index.js +var react = __webpack_require__(58757); +;// CONCATENATED MODULE: ../web3-shared/flow/hooks/useFCL.ts + + +function useFCL_useFCL(chainId) { + return useMemo(()=>{ + return SDK.createClient(chainId); + }, [ + chainId + ]); +} + +;// CONCATENATED MODULE: ../web3-shared/flow/hooks/useScript.ts + + +function useScript(chainId, script) { + const fcl = useFCL(chainId); + return useAsyncRetry(async ()=>{ + return fcl.send([ + fcl.script(script) + ]); + }, [ + fcl, + script + ]); +} + +;// CONCATENATED MODULE: ../web3-shared/flow/hooks/index.ts + + + +// EXTERNAL MODULE: ../../node_modules/.pnpm/@dimensiondev+kit@0.0.0-20220617045824-8bc7a27/node_modules/@dimensiondev/kit/esm/index.js +var esm = __webpack_require__(46123); +;// CONCATENATED MODULE: ../web3-shared/flow/utils/address.ts + + +function formatAddress(address, size = 0) { + if (!isValidAddress(address)) return address; + if (size === 0 || size >= 8) return address; + return `${address.slice(0, Math.max(0, 2 + size))}...${address.slice(-size)}`; +} +function isValidAddress(address) { + return /0x\w{16}/.test(address); +} +function isValidChainId(chainId) { + return (0,esm/* getEnumAsArray */.Yl)(types/* ChainId */.a_).some((x)=>x.value === chainId + ); +} + +;// CONCATENATED MODULE: ../web3-shared/flow/utils/domain.ts +function formatDomainName(domain, size) { + return domain ?? ''; +} +// #endregion +function isValidDomain(domain) { + return false; +} + +;// CONCATENATED MODULE: ../web3-shared/flow/utils/resolver.ts + + +const chainResolver = (0,src/* createChainResolver */.ti)(descriptors/* CHAIN_DESCRIPTORS */.Q_); +const explorerResolver = (0,src/* createExplorerResolver */.Qv)(descriptors/* CHAIN_DESCRIPTORS */.Q_, { + addressPathname: '/account/:address', + transactionPathname: '/transaction/:id', + fungibleTokenPathname: '/contract/:address', + nonFungibleTokenPathname: '/contract/:address' +}); +const networkResolver = (0,src/* createNetworkResolver */.iu)(descriptors/* NETWORK_DESCRIPTORS */.qQ); +const providerResolver = (0,src/* createProviderResolver */.Xg)(descriptors/* PROVIDER_DESCRIPTORS */.zM); + +;// CONCATENATED MODULE: ../web3-shared/flow/utils/token.ts + + + + +function createNativeToken(chainId) { + const nativeCurrency = chainResolver.nativeCurrency(chainId); + return (0,src/* createFungibleToken */.mn)(chainId, types/* SchemaType.Fungible */.XQ.Fungible, getTokenConstants(chainId).FLOW_ADDRESS, nativeCurrency?.name ?? 'Flow', nativeCurrency?.symbol ?? 'FLOW', nativeCurrency?.decimals ?? 8, nativeCurrency?.logoURL); +} + +;// CONCATENATED MODULE: ../web3-shared/flow/utils/index.ts + + + + + +;// CONCATENATED MODULE: ../web3-shared/flow/index.ts + + + + + + + +/***/ }), + +/***/ 56874: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "GB": () => (/* binding */ TransactionStatusCode), +/* harmony export */ "XQ": () => (/* binding */ SchemaType), +/* harmony export */ "a_": () => (/* binding */ ChainId), +/* harmony export */ "lP": () => (/* binding */ ProviderType), +/* harmony export */ "td": () => (/* binding */ NetworkType) +/* harmony export */ }); +/* unused harmony export AssetProviderType */ +var ChainId; +(function(ChainId) { + ChainId[ChainId["Mainnet"] = 1] = "Mainnet"; + ChainId[ChainId["Testnet"] = 2] = "Testnet"; +})(ChainId || (ChainId = {})); +var SchemaType; +(function(SchemaType) { + SchemaType[SchemaType["Fungible"] = 1] = "Fungible"; + SchemaType[SchemaType["NonFungible"] = 2] = "NonFungible"; +})(SchemaType || (SchemaType = {})); +var NetworkType; +(function(NetworkType) { + NetworkType["Flow"] = "Flow"; +})(NetworkType || (NetworkType = {})); +var ProviderType; +(function(ProviderType) { + ProviderType["None"] = "None"; + ProviderType["Blocto"] = "Blocto"; + ProviderType["Dapper"] = "Dapper"; + ProviderType["Ledger"] = "Ledger"; +})(ProviderType || (ProviderType = {})); +var AssetProviderType; +(function(AssetProviderType) { + AssetProviderType["Default"] = "Default"; +})(AssetProviderType || (AssetProviderType = {})); +var TransactionStatusCode; +(function(TransactionStatusCode) { + TransactionStatusCode[TransactionStatusCode["UNKNOWN"] = 0] = "UNKNOWN"; + TransactionStatusCode[TransactionStatusCode[/** Transaction Pending - Awaiting Finalization */ "PENDING"] = 1] = "PENDING"; + TransactionStatusCode[TransactionStatusCode[/** Transaction Finalized - Awaiting Execution */ "FINALIZED"] = 2] = "FINALIZED"; + TransactionStatusCode[TransactionStatusCode[/** Transaction Executed - Awaiting Sealing */ "EXECUTED"] = 3] = "EXECUTED"; + TransactionStatusCode[TransactionStatusCode[/** Transaction Sealed - Transaction Complete. At this point the transaction * result has been committed to the blockchain. */ "SEALED"] = 4] = "SEALED"; + TransactionStatusCode[TransactionStatusCode[/** Transaction Expired */ "EXPIRED"] = 5] = "EXPIRED"; +})(TransactionStatusCode || (TransactionStatusCode = {})); + + +/***/ }), + +/***/ 62212: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "r": () => (/* binding */ ZERO_ADDRESS) +/* harmony export */ }); +const ZERO_ADDRESS = ''; + + +/***/ }), + +/***/ 7670: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; + +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "Q_": () => (/* reexport */ descriptors/* CHAIN_DESCRIPTORS */.Q_), + "a_": () => (/* reexport */ types/* ChainId */.a_), + "aK": () => (/* reexport */ types/* Coin98MethodType */.aK), + "qQ": () => (/* reexport */ descriptors/* NETWORK_DESCRIPTORS */.qQ), + "td": () => (/* reexport */ types/* NetworkType */.td), + "zM": () => (/* reexport */ descriptors/* PROVIDER_DESCRIPTORS */.zM), + "dK": () => (/* reexport */ types/* PhantomMethodType */.dK), + "lP": () => (/* reexport */ types/* ProviderType */.lP), + "XQ": () => (/* reexport */ types/* SchemaType */.XQ), + "r_": () => (/* reexport */ primitives/* ZERO_ADDRESS */.r), + "VU": () => (/* reexport */ chainResolver), + "$c": () => (/* reexport */ createNativeToken), + "mV": () => (/* reexport */ decodeAddress), + "Nb": () => (/* reexport */ explorerResolver), + "Tg": () => (/* reexport */ formatAddress), + "Xy": () => (/* reexport */ formatTokenId), + "V6": () => (/* reexport */ getCoinGeckoConstants), + "aV": () => (/* reexport */ getTokenConstants), + "At": () => (/* reexport */ isValidAddress), + "JW": () => (/* reexport */ isValidChainId), + "hS": () => (/* reexport */ isValidDomain), + "uO": () => (/* reexport */ isZeroAddress) +}); + +// UNUSED EXPORTS: createClient, encodePublicKey, getChainConstants, networkResolver, providerResolver, useChainConstants, useCoinGeckoConstants, useTokenConstants + +// EXTERNAL MODULE: ../web3-shared/solana/types.ts +var types = __webpack_require__(50236); +;// CONCATENATED MODULE: ../web3-constants/solana/chain.json +const chain_namespaceObject = JSON.parse('{"NAME":{"Mainnet":"Solana","Testnet":"Solana Testnet","Devnet":"Solana Devnet"},"FULL_NAME":{"Mainnet":"Solana","Testnet":"Solana Testnet","Devnet":"Solana Devnet"},"SHORT_NAME":{"Mainnet":"SOL","Testnet":"SOL","Devnet":"SOL"},"COLOR":{"Mainnet":"#25c2a0","Testnet":"#25c2a0","Devnet":"#25c2a0"}}'); +;// CONCATENATED MODULE: ../web3-constants/solana/token.json +const token_namespaceObject = JSON.parse('{"USDC_ADDRESS":{"Mainnet":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","Testnet":"CpMah17kQEL2wqyMKt3mZBdTnZbkbfx4nqmQMFDP5vwp","Devnet":""},"SOL_ADDRESS":{"Mainnet":"So11111111111111111111111111111111111111112","Testnet":"So11111111111111111111111111111111111111112","Devnet":"So11111111111111111111111111111111111111112"}}'); +;// CONCATENATED MODULE: ../web3-constants/solana/coingecko.json +const coingecko_namespaceObject = JSON.parse('{"PLATFORM_ID":{"Mainnet":"solana","Testnet":"","Devnet":""},"COIN_ID":{"Mainnet":"solana","Testnet":"","Devnet":""}}'); +// EXTERNAL MODULE: ../web3-shared/base/src/index.ts + 1 modules +var src = __webpack_require__(67938); +;// CONCATENATED MODULE: ../web3-shared/solana/constants/constants.ts + + + + + +const getTokenConstants = (0,src/* transform */.vs)(types/* ChainId */.a_, token_namespaceObject); +const useTokenConstants = (0,src/* hookTransform */.SL)(getTokenConstants); +const getChainConstants = (0,src/* transform */.vs)(types/* ChainId */.a_, chain_namespaceObject); +const useChainConstants = (0,src/* hookTransform */.SL)(getChainConstants); +const getCoinGeckoConstants = (0,src/* transform */.vs)(types/* ChainId */.a_, coingecko_namespaceObject); +const useCoinGeckoConstants = (0,src/* hookTransform */.SL)(getCoinGeckoConstants); + +// EXTERNAL MODULE: ../web3-shared/solana/constants/descriptors.ts +var descriptors = __webpack_require__(4688); +// EXTERNAL MODULE: ../web3-shared/solana/constants/primitives.ts +var primitives = __webpack_require__(62212); +;// CONCATENATED MODULE: ../web3-shared/solana/constants/index.ts + + + + +// EXTERNAL MODULE: ../../node_modules/.pnpm/bs58@4.0.1/node_modules/bs58/index.js +var bs58 = __webpack_require__(91945); +var bs58_default = /*#__PURE__*/__webpack_require__.n(bs58); +// EXTERNAL MODULE: ../../node_modules/.pnpm/@solana+web3.js@1.39.1/node_modules/@solana/web3.js/lib/index.browser.esm.js +var index_browser_esm = __webpack_require__(59493); +// EXTERNAL MODULE: ../../node_modules/.pnpm/@dimensiondev+kit@0.0.0-20220617045824-8bc7a27/node_modules/@dimensiondev/kit/esm/index.js +var esm = __webpack_require__(46123); +;// CONCATENATED MODULE: ../web3-shared/solana/utils/address.ts + + + + + + +function encodePublicKey(key) { + return key.toBase58(); +} +function decodeAddress(initData) { + const data = typeof initData === 'string' ? bs58_default().decode(initData) : initData; + if (!index_browser_esm.PublicKey.isOnCurve(data)) throw new Error(`Failed to create public key from ${bs58_default().encode(data)}.`); + return new index_browser_esm.PublicKey(data); +} +function formatAddress(address, size = 0) { + if (!isValidAddress(address)) return address; + if (size === 0 || size >= 22) return address; + return `${address.slice(0, Math.max(0, size))}...${address.slice(-size)}`; +} +function formatTokenId(id) { + return id; +} +function isValidAddress(address) { + try { + return address?.length === 44 && index_browser_esm.PublicKey.isOnCurve(bs58_default().decode(address)); + } catch { + return false; + } +} +function isValidChainId(chainId) { + return (0,esm/* getEnumAsArray */.Yl)(types/* ChainId */.a_).some((x)=>x.value === chainId + ); +} +const isZeroAddress = (0,src/* currySameAddress */.DC)(primitives/* ZERO_ADDRESS */.r); + +;// CONCATENATED MODULE: ../web3-shared/solana/utils/resolver.ts + + +const chainResolver = (0,src/* createChainResolver */.ti)(descriptors/* CHAIN_DESCRIPTORS */.Q_); +const explorerResolver = (0,src/* createExplorerResolver */.Qv)(descriptors/* CHAIN_DESCRIPTORS */.Q_, { + nonFungibleTokenPathname: '/address/:tokenId' +}); +const networkResolver = (0,src/* createNetworkResolver */.iu)(descriptors/* NETWORK_DESCRIPTORS */.qQ); +const providerResolver = (0,src/* createProviderResolver */.Xg)(descriptors/* PROVIDER_DESCRIPTORS */.zM); + +;// CONCATENATED MODULE: ../web3-shared/solana/utils/token.ts + + + + +function createNativeToken(chainId) { + const nativeCurrency = chainResolver.nativeCurrency(chainId); + return (0,src/* createFungibleToken */.mn)(chainId, types/* SchemaType.Native */.XQ.Native, getTokenConstants(chainId).SOL_ADDRESS, nativeCurrency?.name ?? 'Sol', nativeCurrency?.symbol ?? 'SOL', nativeCurrency?.decimals ?? 9, nativeCurrency?.logoURL); +} + +;// CONCATENATED MODULE: ../web3-shared/solana/utils/domain.ts +function isValidDomain(domain) { + return /.+\.sol/i.test(domain); +} + +;// CONCATENATED MODULE: ../web3-shared/solana/utils/index.ts + + + + + +;// CONCATENATED MODULE: ../web3-shared/solana/index.ts + + + + + + + +/***/ }), + +/***/ 50236: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "XQ": () => (/* binding */ SchemaType), +/* harmony export */ "aK": () => (/* binding */ Coin98MethodType), +/* harmony export */ "a_": () => (/* binding */ ChainId), +/* harmony export */ "dK": () => (/* binding */ PhantomMethodType), +/* harmony export */ "lP": () => (/* binding */ ProviderType), +/* harmony export */ "td": () => (/* binding */ NetworkType) +/* harmony export */ }); +var ChainId; +(function(ChainId) { + ChainId[ChainId["Mainnet"] = 101] = "Mainnet"; + ChainId[ChainId["Testnet"] = 102] = "Testnet"; + ChainId[ChainId["Devnet"] = 103] = "Devnet"; +})(ChainId || (ChainId = {})); +var SchemaType; +(function(SchemaType) { + SchemaType[SchemaType["Native"] = 1] = "Native"; + SchemaType[SchemaType["Fungible"] = 2] = "Fungible"; + SchemaType[SchemaType["NonFungible"] = 3] = "NonFungible"; +})(SchemaType || (SchemaType = {})); +var NetworkType; +(function(NetworkType) { + NetworkType["Solana"] = "Solana"; +})(NetworkType || (NetworkType = {})); +var ProviderType; +(function(ProviderType) { + ProviderType["None"] = "None"; + ProviderType["Phantom"] = "Phantom"; + ProviderType["Solflare"] = "Solflare"; + ProviderType["Sollet"] = "Sollet"; + ProviderType["Coin98"] = "Coin98"; +})(ProviderType || (ProviderType = {})); +var PhantomMethodType; +(function(PhantomMethodType) { + PhantomMethodType["CONNECT"] = 'connect'; + PhantomMethodType["DISCONNECT"] = 'connect'; + PhantomMethodType["SIGN_MESSAGE"] = 'signMessage'; + PhantomMethodType["SIGN_TRANSACTION"] = 'signTransaction'; + PhantomMethodType["SIGN_TRANSACTIONS"] = 'signAllTransactions'; + PhantomMethodType["SIGN_AND_SEND_TRANSACTION"] = 'signAndSendTransaction'; +})(PhantomMethodType || (PhantomMethodType = {})); +var Coin98MethodType; +(function(Coin98MethodType) { + Coin98MethodType["SOL_ACCOUNTS"] = 'sol_accounts'; + Coin98MethodType["SOL_REQUEST_ACCOUNTS"] = 'sol_requestAccounts'; + Coin98MethodType["HAS_WALLET"] = 'has_wallet'; + Coin98MethodType["SOL_SIGN"] = 'sol_sign'; + Coin98MethodType["SOL_VERIFY"] = 'sol_verify'; +})(Coin98MethodType || (Coin98MethodType = {})); + + +/***/ }), + +/***/ 52511: +/***/ ((__unused_webpack_module, exports) => { + +"use strict"; + + +// This is free and unencumbered software released into the public domain. +// See LICENSE.md for more information. + +// +// Utilities +// + +/** + * @param {number} a The number to test. + * @param {number} min The minimum value in the range, inclusive. + * @param {number} max The maximum value in the range, inclusive. + * @return {boolean} True if a >= min and a <= max. + */ +function inRange(a, min, max) { + return min <= a && a <= max; +} + +/** + * @param {*} o + * @return {Object} + */ +function ToDictionary(o) { + if (o === undefined) return {}; + if (o === Object(o)) return o; + throw TypeError('Could not convert argument to dictionary'); +} + +/** + * @param {string} string Input string of UTF-16 code units. + * @return {!Array.} Code points. + */ +function stringToCodePoints(string) { + // https://heycam.github.io/webidl/#dfn-obtain-unicode + + // 1. Let S be the DOMString value. + var s = String(string); + + // 2. Let n be the length of S. + var n = s.length; + + // 3. Initialize i to 0. + var i = 0; + + // 4. Initialize U to be an empty sequence of Unicode characters. + var u = []; + + // 5. While i < n: + while (i < n) { + + // 1. Let c be the code unit in S at index i. + var c = s.charCodeAt(i); + + // 2. Depending on the value of c: + + // c < 0xD800 or c > 0xDFFF + if (c < 0xD800 || c > 0xDFFF) { + // Append to U the Unicode character with code point c. + u.push(c); + } + + // 0xDC00 ≤ c ≤ 0xDFFF + else if (0xDC00 <= c && c <= 0xDFFF) { + // Append to U a U+FFFD REPLACEMENT CHARACTER. + u.push(0xFFFD); + } + + // 0xD800 ≤ c ≤ 0xDBFF + else if (0xD800 <= c && c <= 0xDBFF) { + // 1. If i = n−1, then append to U a U+FFFD REPLACEMENT + // CHARACTER. + if (i === n - 1) { + u.push(0xFFFD); + } + // 2. Otherwise, i < n−1: + else { + // 1. Let d be the code unit in S at index i+1. + var d = string.charCodeAt(i + 1); + + // 2. If 0xDC00 ≤ d ≤ 0xDFFF, then: + if (0xDC00 <= d && d <= 0xDFFF) { + // 1. Let a be c & 0x3FF. + var a = c & 0x3FF; + + // 2. Let b be d & 0x3FF. + var b = d & 0x3FF; + + // 3. Append to U the Unicode character with code point + // 2^16+2^10*a+b. + u.push(0x10000 + (a << 10) + b); + + // 4. Set i to i+1. + i += 1; + } + + // 3. Otherwise, d < 0xDC00 or d > 0xDFFF. Append to U a + // U+FFFD REPLACEMENT CHARACTER. + else { + u.push(0xFFFD); + } + } + } + + // 3. Set i to i+1. + i += 1; + } + + // 6. Return U. + return u; +} + +/** + * @param {!Array.} code_points Array of code points. + * @return {string} string String of UTF-16 code units. + */ +function codePointsToString(code_points) { + var s = ''; + for (var i = 0; i < code_points.length; ++i) { + var cp = code_points[i]; + if (cp <= 0xFFFF) { + s += String.fromCharCode(cp); + } else { + cp -= 0x10000; + s += String.fromCharCode((cp >> 10) + 0xD800, + (cp & 0x3FF) + 0xDC00); + } + } + return s; +} + + +// +// Implementation of Encoding specification +// https://encoding.spec.whatwg.org/ +// + +// +// 3. Terminology +// + +/** + * End-of-stream is a special token that signifies no more tokens + * are in the stream. + * @const + */ var end_of_stream = -1; + +/** + * A stream represents an ordered sequence of tokens. + * + * @constructor + * @param {!(Array.|Uint8Array)} tokens Array of tokens that provide the + * stream. + */ +function Stream(tokens) { + /** @type {!Array.} */ + this.tokens = [].slice.call(tokens); +} + +Stream.prototype = { + /** + * @return {boolean} True if end-of-stream has been hit. + */ + endOfStream: function() { + return !this.tokens.length; + }, + + /** + * When a token is read from a stream, the first token in the + * stream must be returned and subsequently removed, and + * end-of-stream must be returned otherwise. + * + * @return {number} Get the next token from the stream, or + * end_of_stream. + */ + read: function() { + if (!this.tokens.length) + return end_of_stream; + return this.tokens.shift(); + }, + + /** + * When one or more tokens are prepended to a stream, those tokens + * must be inserted, in given order, before the first token in the + * stream. + * + * @param {(number|!Array.)} token The token(s) to prepend to the stream. + */ + prepend: function(token) { + if (Array.isArray(token)) { + var tokens = /**@type {!Array.}*/(token); + while (tokens.length) + this.tokens.unshift(tokens.pop()); + } else { + this.tokens.unshift(token); + } + }, + + /** + * When one or more tokens are pushed to a stream, those tokens + * must be inserted, in given order, after the last token in the + * stream. + * + * @param {(number|!Array.)} token The tokens(s) to prepend to the stream. + */ + push: function(token) { + if (Array.isArray(token)) { + var tokens = /**@type {!Array.}*/(token); + while (tokens.length) + this.tokens.push(tokens.shift()); + } else { + this.tokens.push(token); + } + } +}; + +// +// 4. Encodings +// + +// 4.1 Encoders and decoders + +/** @const */ +var finished = -1; + +/** + * @param {boolean} fatal If true, decoding errors raise an exception. + * @param {number=} opt_code_point Override the standard fallback code point. + * @return {number} The code point to insert on a decoding error. + */ +function decoderError(fatal, opt_code_point) { + if (fatal) + throw TypeError('Decoder error'); + return opt_code_point || 0xFFFD; +} + +// +// 7. API +// + +/** @const */ var DEFAULT_ENCODING = 'utf-8'; + +// 7.1 Interface TextDecoder + +/** + * @constructor + * @param {string=} encoding The label of the encoding; + * defaults to 'utf-8'. + * @param {Object=} options + */ +function TextDecoder(encoding, options) { + if (!(this instanceof TextDecoder)) { + return new TextDecoder(encoding, options); + } + encoding = encoding !== undefined ? String(encoding).toLowerCase() : DEFAULT_ENCODING; + if (encoding !== DEFAULT_ENCODING) { + throw new Error('Encoding not supported. Only utf-8 is supported'); + } + options = ToDictionary(options); + + /** @private @type {boolean} */ + this._streaming = false; + /** @private @type {boolean} */ + this._BOMseen = false; + /** @private @type {?Decoder} */ + this._decoder = null; + /** @private @type {boolean} */ + this._fatal = Boolean(options['fatal']); + /** @private @type {boolean} */ + this._ignoreBOM = Boolean(options['ignoreBOM']); + + Object.defineProperty(this, 'encoding', {value: 'utf-8'}); + Object.defineProperty(this, 'fatal', {value: this._fatal}); + Object.defineProperty(this, 'ignoreBOM', {value: this._ignoreBOM}); +} + +TextDecoder.prototype = { + /** + * @param {ArrayBufferView=} input The buffer of bytes to decode. + * @param {Object=} options + * @return {string} The decoded string. + */ + decode: function decode(input, options) { + var bytes; + if (typeof input === 'object' && input instanceof ArrayBuffer) { + bytes = new Uint8Array(input); + } else if (typeof input === 'object' && 'buffer' in input && + input.buffer instanceof ArrayBuffer) { + bytes = new Uint8Array(input.buffer, + input.byteOffset, + input.byteLength); + } else { + bytes = new Uint8Array(0); + } + + options = ToDictionary(options); + + if (!this._streaming) { + this._decoder = new UTF8Decoder({fatal: this._fatal}); + this._BOMseen = false; + } + this._streaming = Boolean(options['stream']); + + var input_stream = new Stream(bytes); + + var code_points = []; + + /** @type {?(number|!Array.)} */ + var result; + + while (!input_stream.endOfStream()) { + result = this._decoder.handler(input_stream, input_stream.read()); + if (result === finished) + break; + if (result === null) + continue; + if (Array.isArray(result)) + code_points.push.apply(code_points, /**@type {!Array.}*/(result)); + else + code_points.push(result); + } + if (!this._streaming) { + do { + result = this._decoder.handler(input_stream, input_stream.read()); + if (result === finished) + break; + if (result === null) + continue; + if (Array.isArray(result)) + code_points.push.apply(code_points, /**@type {!Array.}*/(result)); + else + code_points.push(result); + } while (!input_stream.endOfStream()); + this._decoder = null; + } + + if (code_points.length) { + // If encoding is one of utf-8, utf-16be, and utf-16le, and + // ignore BOM flag and BOM seen flag are unset, run these + // subsubsteps: + if (['utf-8'].indexOf(this.encoding) !== -1 && + !this._ignoreBOM && !this._BOMseen) { + // If token is U+FEFF, set BOM seen flag. + if (code_points[0] === 0xFEFF) { + this._BOMseen = true; + code_points.shift(); + } else { + // Otherwise, if token is not end-of-stream, set BOM seen + // flag and append token to output. + this._BOMseen = true; + } + } + } + + return codePointsToString(code_points); + } +}; + +// 7.2 Interface TextEncoder + +/** + * @constructor + * @param {string=} encoding The label of the encoding; + * defaults to 'utf-8'. + * @param {Object=} options + */ +function TextEncoder(encoding, options) { + if (!(this instanceof TextEncoder)) + return new TextEncoder(encoding, options); + encoding = encoding !== undefined ? String(encoding).toLowerCase() : DEFAULT_ENCODING; + if (encoding !== DEFAULT_ENCODING) { + throw new Error('Encoding not supported. Only utf-8 is supported'); + } + options = ToDictionary(options); + + /** @private @type {boolean} */ this._streaming = false; /** @private @type {?Encoder} */ this._encoder = null; @@ -39182,6 +47184,26 @@ function invariant(condition, message) { /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (invariant); +/***/ }), + +/***/ 80305: +/***/ ((module) => { + +module.exports = toArray + +function toArray(list, index) { + var array = [] + + index = index || 0 + + for (var i = index || 0; i < list.length; i++) { + array[i - index] = list[i] + } + + return array +} + + /***/ }), /***/ 51242: @@ -39601,14 +47623,14 @@ function notNullOrUndefined(v) { /***/ }), -/***/ 66040: +/***/ 14257: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; if (true) { - module.exports = __webpack_require__(5645); + module.exports = __webpack_require__(6947); } else {} @@ -39927,1370 +47949,581 @@ for (var i = 0; i < 256; ++i) { function bytesToUuid(buf, offset) { var i = offset || 0; var bth = byteToHex; - // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4 - return ([bth[buf[i++]], bth[buf[i++]], - bth[buf[i++]], bth[buf[i++]], '-', - bth[buf[i++]], bth[buf[i++]], '-', - bth[buf[i++]], bth[buf[i++]], '-', - bth[buf[i++]], bth[buf[i++]], '-', - bth[buf[i++]], bth[buf[i++]], - bth[buf[i++]], bth[buf[i++]], - bth[buf[i++]], bth[buf[i++]]]).join(''); -} - -module.exports = bytesToUuid; - - -/***/ }), - -/***/ 52329: -/***/ ((module) => { - -// Unique ID creation requires a high quality random # generator. In the -// browser this is a little complicated due to unknown quality of Math.random() -// and inconsistent support for the `crypto` API. We do the best we can via -// feature-detection - -// getRandomValues needs to be invoked in a context where "this" is a Crypto -// implementation. Also, find the complete implementation of crypto on IE11. -var getRandomValues = (typeof(crypto) != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto)) || - (typeof(msCrypto) != 'undefined' && typeof window.msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto)); - -if (getRandomValues) { - // WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto - var rnds8 = new Uint8Array(16); // eslint-disable-line no-undef - - module.exports = function whatwgRNG() { - getRandomValues(rnds8); - return rnds8; - }; -} else { - // Math.random()-based (RNG) - // - // If all else fails, use Math.random(). It's fast, but is of unspecified - // quality. - var rnds = new Array(16); - - module.exports = function mathRNG() { - for (var i = 0, r; i < 16; i++) { - if ((i & 0x03) === 0) r = Math.random() * 0x100000000; - rnds[i] = r >>> ((i & 0x03) << 3) & 0xff; - } - - return rnds; - }; -} - - -/***/ }), - -/***/ 40970: -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var rng = __webpack_require__(52329); -var bytesToUuid = __webpack_require__(58736); - -// **`v1()` - Generate time-based UUID** -// -// Inspired by https://github.com/LiosK/UUID.js -// and http://docs.python.org/library/uuid.html - -var _nodeId; -var _clockseq; - -// Previous uuid creation time -var _lastMSecs = 0; -var _lastNSecs = 0; - -// See https://github.com/broofa/node-uuid for API details -function v1(options, buf, offset) { - var i = buf && offset || 0; - var b = buf || []; - - options = options || {}; - var node = options.node || _nodeId; - var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; - - // node and clockseq need to be initialized to random values if they're not - // specified. We do this lazily to minimize issues related to insufficient - // system entropy. See #189 - if (node == null || clockseq == null) { - var seedBytes = rng(); - if (node == null) { - // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1) - node = _nodeId = [ - seedBytes[0] | 0x01, - seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5] - ]; - } - if (clockseq == null) { - // Per 4.2.2, randomize (14 bit) clockseq - clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff; - } - } - - // UUID timestamps are 100 nano-second units since the Gregorian epoch, - // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so - // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs' - // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00. - var msecs = options.msecs !== undefined ? options.msecs : new Date().getTime(); - - // Per 4.2.1.2, use count of uuid's generated during the current clock - // cycle to simulate higher resolution clock - var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; - - // Time since last uuid creation (in msecs) - var dt = (msecs - _lastMSecs) + (nsecs - _lastNSecs)/10000; - - // Per 4.2.1.2, Bump clockseq on clock regression - if (dt < 0 && options.clockseq === undefined) { - clockseq = clockseq + 1 & 0x3fff; - } - - // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new - // time interval - if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) { - nsecs = 0; - } - - // Per 4.2.1.2 Throw error if too many uuids are requested - if (nsecs >= 10000) { - throw new Error('uuid.v1(): Can\'t create more than 10M uuids/sec'); - } - - _lastMSecs = msecs; - _lastNSecs = nsecs; - _clockseq = clockseq; - - // Per 4.1.4 - Convert from unix epoch to Gregorian epoch - msecs += 12219292800000; - - // `time_low` - var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000; - b[i++] = tl >>> 24 & 0xff; - b[i++] = tl >>> 16 & 0xff; - b[i++] = tl >>> 8 & 0xff; - b[i++] = tl & 0xff; - - // `time_mid` - var tmh = (msecs / 0x100000000 * 10000) & 0xfffffff; - b[i++] = tmh >>> 8 & 0xff; - b[i++] = tmh & 0xff; - - // `time_high_and_version` - b[i++] = tmh >>> 24 & 0xf | 0x10; // include version - b[i++] = tmh >>> 16 & 0xff; - - // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant) - b[i++] = clockseq >>> 8 | 0x80; - - // `clock_seq_low` - b[i++] = clockseq & 0xff; - - // `node` - for (var n = 0; n < 6; ++n) { - b[i + n] = node[n]; - } - - return buf ? buf : bytesToUuid(b); -} - -module.exports = v1; - - -/***/ }), - -/***/ 23326: -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var rng = __webpack_require__(52329); -var bytesToUuid = __webpack_require__(58736); - -function v4(options, buf, offset) { - var i = buf && offset || 0; - - if (typeof(options) == 'string') { - buf = options === 'binary' ? new Array(16) : null; - options = null; - } - options = options || {}; - - var rnds = options.random || (options.rng || rng)(); - - // Per 4.4, set bits for version and `clock_seq_hi_and_reserved` - rnds[6] = (rnds[6] & 0x0f) | 0x40; - rnds[8] = (rnds[8] & 0x3f) | 0x80; - - // Copy bytes to buffer, if provided - if (buf) { - for (var ii = 0; ii < 16; ++ii) { - buf[i + ii] = rnds[ii]; - } - } - - return buf || bytesToUuid(rnds); -} - -module.exports = v4; - - -/***/ }), - -/***/ 21572: -/***/ ((module) => { - -/** - * Convert array of 16 byte values to UUID string format of the form: - * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX - */ -var byteToHex = []; -for (var i = 0; i < 256; ++i) { - byteToHex[i] = (i + 0x100).toString(16).substr(1); -} - -function bytesToUuid(buf, offset) { - var i = offset || 0; - var bth = byteToHex; - // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4 - return ([ - bth[buf[i++]], bth[buf[i++]], - bth[buf[i++]], bth[buf[i++]], '-', - bth[buf[i++]], bth[buf[i++]], '-', - bth[buf[i++]], bth[buf[i++]], '-', - bth[buf[i++]], bth[buf[i++]], '-', - bth[buf[i++]], bth[buf[i++]], - bth[buf[i++]], bth[buf[i++]], - bth[buf[i++]], bth[buf[i++]] - ]).join(''); -} - -module.exports = bytesToUuid; - - -/***/ }), - -/***/ 39267: -/***/ ((module) => { - -// Unique ID creation requires a high quality random # generator. In the -// browser this is a little complicated due to unknown quality of Math.random() -// and inconsistent support for the `crypto` API. We do the best we can via -// feature-detection - -// getRandomValues needs to be invoked in a context where "this" is a Crypto -// implementation. Also, find the complete implementation of crypto on IE11. -var getRandomValues = (typeof(crypto) != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto)) || - (typeof(msCrypto) != 'undefined' && typeof window.msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto)); - -if (getRandomValues) { - // WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto - var rnds8 = new Uint8Array(16); // eslint-disable-line no-undef - - module.exports = function whatwgRNG() { - getRandomValues(rnds8); - return rnds8; - }; -} else { - // Math.random()-based (RNG) - // - // If all else fails, use Math.random(). It's fast, but is of unspecified - // quality. - var rnds = new Array(16); - - module.exports = function mathRNG() { - for (var i = 0, r; i < 16; i++) { - if ((i & 0x03) === 0) r = Math.random() * 0x100000000; - rnds[i] = r >>> ((i & 0x03) << 3) & 0xff; - } - - return rnds; - }; -} - - -/***/ }), - -/***/ 29868: -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -var rng = __webpack_require__(39267); -var bytesToUuid = __webpack_require__(21572); - -function v4(options, buf, offset) { - var i = buf && offset || 0; - - if (typeof(options) == 'string') { - buf = options === 'binary' ? new Array(16) : null; - options = null; - } - options = options || {}; - - var rnds = options.random || (options.rng || rng)(); - - // Per 4.4, set bits for version and `clock_seq_hi_and_reserved` - rnds[6] = (rnds[6] & 0x0f) | 0x40; - rnds[8] = (rnds[8] & 0x3f) | 0x80; - - // Copy bytes to buffer, if provided - if (buf) { - for (var ii = 0; ii < 16; ++ii) { - buf[i + ii] = rnds[ii]; - } - } - - return buf || bytesToUuid(rnds); -} - -module.exports = v4; - - -/***/ }), - -/***/ 32513: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; - -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - "Z": () => (/* binding */ esm_browser_v4) -}); - -;// CONCATENATED MODULE: ../../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-browser/rng.js -// Unique ID creation requires a high quality random # generator. In the browser we therefore -// require the crypto API and do not support built-in fallback to lower quality random number -// generators (like Math.random()). -var getRandomValues; -var rnds8 = new Uint8Array(16); -function rng() { - // lazy load so that environments that need to polyfill have a chance to do so - if (!getRandomValues) { - // getRandomValues needs to be invoked in a context where "this" is a Crypto implementation. Also, - // find the complete implementation of crypto (msCrypto) on IE11. - getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto); - - if (!getRandomValues) { - throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported'); - } - } - - return getRandomValues(rnds8); -} -// EXTERNAL MODULE: ../../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-browser/validate.js + 1 modules -var validate = __webpack_require__(68317); -;// CONCATENATED MODULE: ../../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-browser/stringify.js - -/** - * Convert array of 16 byte values to UUID string format of the form: - * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX - */ - -var byteToHex = []; - -for (var i = 0; i < 256; ++i) { - byteToHex.push((i + 0x100).toString(16).substr(1)); -} - -function stringify(arr) { - var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; - // Note: Be careful editing this code! It's been tuned for performance - // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434 - var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one - // of the following: - // - One or more input array values don't map to a hex octet (leading to - // "undefined" in the uuid) - // - Invalid input values for the RFC `version` or `variant` fields - - if (!(0,validate/* default */.Z)(uuid)) { - throw TypeError('Stringified UUID is invalid'); - } - - return uuid; -} - -/* harmony default export */ const esm_browser_stringify = (stringify); -;// CONCATENATED MODULE: ../../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-browser/v4.js - - - -function v4(options, buf, offset) { - options = options || {}; - var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved` - - rnds[6] = rnds[6] & 0x0f | 0x40; - rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided - - if (buf) { - offset = offset || 0; - - for (var i = 0; i < 16; ++i) { - buf[offset + i] = rnds[i]; - } - - return buf; - } - - return esm_browser_stringify(rnds); -} - -/* harmony default export */ const esm_browser_v4 = (v4); - -/***/ }), - -/***/ 68317: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; - -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - "Z": () => (/* binding */ esm_browser_validate) -}); - -;// CONCATENATED MODULE: ../../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-browser/regex.js -/* harmony default export */ const regex = (/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i); -;// CONCATENATED MODULE: ../../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-browser/validate.js - - -function validate(uuid) { - return typeof uuid === 'string' && regex.test(uuid); + // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4 + return ([bth[buf[i++]], bth[buf[i++]], + bth[buf[i++]], bth[buf[i++]], '-', + bth[buf[i++]], bth[buf[i++]], '-', + bth[buf[i++]], bth[buf[i++]], '-', + bth[buf[i++]], bth[buf[i++]], '-', + bth[buf[i++]], bth[buf[i++]], + bth[buf[i++]], bth[buf[i++]], + bth[buf[i++]], bth[buf[i++]]]).join(''); } -/* harmony default export */ const esm_browser_validate = (validate); +module.exports = bytesToUuid; + /***/ }), -/***/ 9757: +/***/ 52329: /***/ ((module) => { -module.exports = read +// Unique ID creation requires a high quality random # generator. In the +// browser this is a little complicated due to unknown quality of Math.random() +// and inconsistent support for the `crypto` API. We do the best we can via +// feature-detection -var MSB = 0x80 - , REST = 0x7F +// getRandomValues needs to be invoked in a context where "this" is a Crypto +// implementation. Also, find the complete implementation of crypto on IE11. +var getRandomValues = (typeof(crypto) != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto)) || + (typeof(msCrypto) != 'undefined' && typeof window.msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto)); -function read(buf, offset) { - var res = 0 - , offset = offset || 0 - , shift = 0 - , counter = offset - , b - , l = buf.length +if (getRandomValues) { + // WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto + var rnds8 = new Uint8Array(16); // eslint-disable-line no-undef - do { - if (counter >= l) { - read.bytes = 0 - throw new RangeError('Could not decode varint') - } - b = buf[counter++] - res += shift < 28 - ? (b & REST) << shift - : (b & REST) * Math.pow(2, shift) - shift += 7 - } while (b >= MSB) + module.exports = function whatwgRNG() { + getRandomValues(rnds8); + return rnds8; + }; +} else { + // Math.random()-based (RNG) + // + // If all else fails, use Math.random(). It's fast, but is of unspecified + // quality. + var rnds = new Array(16); - read.bytes = counter - offset + module.exports = function mathRNG() { + for (var i = 0, r; i < 16; i++) { + if ((i & 0x03) === 0) r = Math.random() * 0x100000000; + rnds[i] = r >>> ((i & 0x03) << 3) & 0xff; + } - return res + return rnds; + }; } /***/ }), -/***/ 7824: -/***/ ((module) => { +/***/ 40970: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { -module.exports = encode +var rng = __webpack_require__(52329); +var bytesToUuid = __webpack_require__(58736); -var MSB = 0x80 - , REST = 0x7F - , MSBALL = ~REST - , INT = Math.pow(2, 31) +// **`v1()` - Generate time-based UUID** +// +// Inspired by https://github.com/LiosK/UUID.js +// and http://docs.python.org/library/uuid.html -function encode(num, out, offset) { - out = out || [] - offset = offset || 0 - var oldOffset = offset +var _nodeId; +var _clockseq; - while(num >= INT) { - out[offset++] = (num & 0xFF) | MSB - num /= 128 - } - while(num & MSBALL) { - out[offset++] = (num & 0xFF) | MSB - num >>>= 7 +// Previous uuid creation time +var _lastMSecs = 0; +var _lastNSecs = 0; + +// See https://github.com/broofa/node-uuid for API details +function v1(options, buf, offset) { + var i = buf && offset || 0; + var b = buf || []; + + options = options || {}; + var node = options.node || _nodeId; + var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; + + // node and clockseq need to be initialized to random values if they're not + // specified. We do this lazily to minimize issues related to insufficient + // system entropy. See #189 + if (node == null || clockseq == null) { + var seedBytes = rng(); + if (node == null) { + // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1) + node = _nodeId = [ + seedBytes[0] | 0x01, + seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5] + ]; + } + if (clockseq == null) { + // Per 4.2.2, randomize (14 bit) clockseq + clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff; + } } - out[offset] = num | 0 - - encode.bytes = offset - oldOffset + 1 - - return out -} + // UUID timestamps are 100 nano-second units since the Gregorian epoch, + // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so + // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs' + // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00. + var msecs = options.msecs !== undefined ? options.msecs : new Date().getTime(); -/***/ }), + // Per 4.2.1.2, use count of uuid's generated during the current clock + // cycle to simulate higher resolution clock + var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; -/***/ 29364: -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + // Time since last uuid creation (in msecs) + var dt = (msecs - _lastMSecs) + (nsecs - _lastNSecs)/10000; -module.exports = { - encode: __webpack_require__(7824) - , decode: __webpack_require__(9757) - , encodingLength: __webpack_require__(29379) -} + // Per 4.2.1.2, Bump clockseq on clock regression + if (dt < 0 && options.clockseq === undefined) { + clockseq = clockseq + 1 & 0x3fff; + } + // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new + // time interval + if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) { + nsecs = 0; + } -/***/ }), + // Per 4.2.1.2 Throw error if too many uuids are requested + if (nsecs >= 10000) { + throw new Error('uuid.v1(): Can\'t create more than 10M uuids/sec'); + } -/***/ 29379: -/***/ ((module) => { + _lastMSecs = msecs; + _lastNSecs = nsecs; + _clockseq = clockseq; + // Per 4.1.4 - Convert from unix epoch to Gregorian epoch + msecs += 12219292800000; -var N1 = Math.pow(2, 7) -var N2 = Math.pow(2, 14) -var N3 = Math.pow(2, 21) -var N4 = Math.pow(2, 28) -var N5 = Math.pow(2, 35) -var N6 = Math.pow(2, 42) -var N7 = Math.pow(2, 49) -var N8 = Math.pow(2, 56) -var N9 = Math.pow(2, 63) + // `time_low` + var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000; + b[i++] = tl >>> 24 & 0xff; + b[i++] = tl >>> 16 & 0xff; + b[i++] = tl >>> 8 & 0xff; + b[i++] = tl & 0xff; -module.exports = function (value) { - return ( - value < N1 ? 1 - : value < N2 ? 2 - : value < N3 ? 3 - : value < N4 ? 4 - : value < N5 ? 5 - : value < N6 ? 6 - : value < N7 ? 7 - : value < N8 ? 8 - : value < N9 ? 9 - : 10 - ) -} + // `time_mid` + var tmh = (msecs / 0x100000000 * 10000) & 0xfffffff; + b[i++] = tmh >>> 8 & 0xff; + b[i++] = tmh & 0xff; + // `time_high_and_version` + b[i++] = tmh >>> 24 & 0xf | 0x10; // include version + b[i++] = tmh >>> 16 & 0xff; -/***/ }), + // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant) + b[i++] = clockseq >>> 8 | 0x80; -/***/ 63229: -/***/ ((module) => { + // `clock_seq_low` + b[i++] = clockseq & 0xff; -/** - * This file automatically generated from `pre-publish.js`. - * Do not manually edit. - */ + // `node` + for (var n = 0; n < 6; ++n) { + b[i + n] = node[n]; + } -module.exports = { - "area": true, - "base": true, - "br": true, - "col": true, - "embed": true, - "hr": true, - "img": true, - "input": true, - "link": true, - "meta": true, - "param": true, - "source": true, - "track": true, - "wbr": true -}; + return buf ? buf : bytesToUuid(b); +} + +module.exports = v1; /***/ }), -/***/ 6839: +/***/ 23326: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { -"use strict"; -/* - This file is part of web3.js. +var rng = __webpack_require__(52329); +var bytesToUuid = __webpack_require__(58736); - web3.js is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. +function v4(options, buf, offset) { + var i = buf && offset || 0; - web3.js is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + if (typeof(options) == 'string') { + buf = options === 'binary' ? new Array(16) : null; + options = null; + } + options = options || {}; - You should have received a copy of the GNU Lesser General Public License - along with web3.js. If not, see . -*/ -/** - * @file index.js - * @author Fabian Vogelsteller - * @date 2017 - */ + var rnds = options.random || (options.rng || rng)(); -var swarm = __webpack_require__(52384); -var Bzz = function Bzz(provider) { - this.givenProvider = Bzz.givenProvider; - if (provider && provider._requestManager) { - provider = provider.currentProvider; - } - // only allow file picker when in browser - if (typeof document !== 'undefined') { - this.pick = swarm.pick; - } - this.setProvider(provider); -}; -// set default ethereum provider -/* jshint ignore:start */ -Bzz.givenProvider = null; -if (typeof ethereum !== 'undefined' && ethereum.bzz) { - Bzz.givenProvider = ethereum.bzz; -} -/* jshint ignore:end */ -Bzz.prototype.setProvider = function (provider) { - // is ethereum provider - if (!!provider && typeof provider === 'object' && typeof provider.bzz === 'string') { - provider = provider.bzz; - // is no string, set default - } - // else if(!_.isString(provider)) { - // provider = 'http://swarm-gateways.net'; // default to gateway - // } - if (typeof provider === 'string') { - this.currentProvider = provider; - } - else { - this.currentProvider = null; - var noProviderError = new Error('No provider set, please set one using bzz.setProvider().'); - this.download = this.upload = this.isAvailable = function () { - throw noProviderError; - }; - return false; - } - // add functions - this.download = swarm.at(provider).download; - this.upload = swarm.at(provider).upload; - this.isAvailable = swarm.at(provider).isAvailable; - return true; -}; -module.exports = Bzz; + // Per 4.4, set bits for version and `clock_seq_hi_and_reserved` + rnds[6] = (rnds[6] & 0x0f) | 0x40; + rnds[8] = (rnds[8] & 0x3f) | 0x80; + // Copy bytes to buffer, if provided + if (buf) { + for (var ii = 0; ii < 16; ++ii) { + buf[i + ii] = rnds[ii]; + } + } -/***/ }), + return buf || bytesToUuid(rnds); +} -/***/ 8398: -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +module.exports = v4; -"use strict"; -/* - This file is part of web3.js. - web3.js is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. +/***/ }), - web3.js is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. +/***/ 21572: +/***/ ((module) => { - You should have received a copy of the GNU Lesser General Public License - along with web3.js. If not, see . - */ /** - * @file index.js - * @author Fabian Vogelsteller - * @date 2016 + * Convert array of 16 byte values to UUID string format of the form: + * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX */ +var byteToHex = []; +for (var i = 0; i < 256; ++i) { + byteToHex[i] = (i + 0x100).toString(16).substr(1); +} -var EventEmitter = __webpack_require__(15954); -/** - * This function generates a defer promise and adds eventEmitter functionality to it - * - * @method eventifiedPromise - */ -var PromiEvent = function PromiEvent(justPromise) { - var resolve, reject, eventEmitter = new Promise(function () { - resolve = arguments[0]; - reject = arguments[1]; - }); - if (justPromise) { - return { - resolve: resolve, - reject: reject, - eventEmitter: eventEmitter - }; - } - // get eventEmitter - var emitter = new EventEmitter(); - // add eventEmitter to the promise - eventEmitter._events = emitter._events; - eventEmitter.emit = emitter.emit; - eventEmitter.on = emitter.on; - eventEmitter.once = emitter.once; - eventEmitter.off = emitter.off; - eventEmitter.listeners = emitter.listeners; - eventEmitter.addListener = emitter.addListener; - eventEmitter.removeListener = emitter.removeListener; - eventEmitter.removeAllListeners = emitter.removeAllListeners; - return { - resolve: resolve, - reject: reject, - eventEmitter: eventEmitter - }; -}; -PromiEvent.resolve = function (value) { - var promise = PromiEvent(true); - promise.resolve(value); - return promise.eventEmitter; -}; -module.exports = PromiEvent; +function bytesToUuid(buf, offset) { + var i = offset || 0; + var bth = byteToHex; + // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4 + return ([ + bth[buf[i++]], bth[buf[i++]], + bth[buf[i++]], bth[buf[i++]], '-', + bth[buf[i++]], bth[buf[i++]], '-', + bth[buf[i++]], bth[buf[i++]], '-', + bth[buf[i++]], bth[buf[i++]], '-', + bth[buf[i++]], bth[buf[i++]], + bth[buf[i++]], bth[buf[i++]], + bth[buf[i++]], bth[buf[i++]] + ]).join(''); +} + +module.exports = bytesToUuid; /***/ }), -/***/ 13875: -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ 39267: +/***/ ((module) => { -"use strict"; -/* - This file is part of web3.js. +// Unique ID creation requires a high quality random # generator. In the +// browser this is a little complicated due to unknown quality of Math.random() +// and inconsistent support for the `crypto` API. We do the best we can via +// feature-detection - web3.js is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. +// getRandomValues needs to be invoked in a context where "this" is a Crypto +// implementation. Also, find the complete implementation of crypto on IE11. +var getRandomValues = (typeof(crypto) != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto)) || + (typeof(msCrypto) != 'undefined' && typeof window.msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto)); - web3.js is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. +if (getRandomValues) { + // WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto + var rnds8 = new Uint8Array(16); // eslint-disable-line no-undef - You should have received a copy of the GNU Lesser General Public License - along with web3.js. If not, see . -*/ -/** - * @file batch.js - * @author Marek Kotewicz - * @date 2015 - */ + module.exports = function whatwgRNG() { + getRandomValues(rnds8); + return rnds8; + }; +} else { + // Math.random()-based (RNG) + // + // If all else fails, use Math.random(). It's fast, but is of unspecified + // quality. + var rnds = new Array(16); -var Jsonrpc = __webpack_require__(77953); -var errors = (__webpack_require__(41032).errors); -var Batch = function (requestManager) { - this.requestManager = requestManager; - this.requests = []; -}; -/** - * Should be called to add create new request to batch request - * - * @method add - * @param {Object} jsonrpc requet object - */ -Batch.prototype.add = function (request) { - this.requests.push(request); -}; -/** - * Should be called to execute batch request - * - * @method execute - */ -Batch.prototype.execute = function () { - var requests = this.requests; - var sortResponses = this._sortResponses.bind(this); - this.requestManager.sendBatch(requests, function (err, results) { - results = sortResponses(results); - requests.map(function (request, index) { - return results[index] || {}; - }).forEach(function (result, index) { - if (requests[index].callback) { - if (result && result.error) { - return requests[index].callback(errors.ErrorResponse(result)); - } - if (!Jsonrpc.isValidResponse(result)) { - return requests[index].callback(errors.InvalidResponse(result)); - } - try { - requests[index].callback(null, requests[index].format ? requests[index].format(result.result) : result.result); - } - catch (err) { - requests[index].callback(err); - } - } - }); - }); -}; -// Sort responses -Batch.prototype._sortResponses = function (responses) { - return (responses || []).sort((a, b) => a.id - b.id); -}; -module.exports = Batch; + module.exports = function mathRNG() { + for (var i = 0, r; i < 16; i++) { + if ((i & 0x03) === 0) r = Math.random() * 0x100000000; + rnds[i] = r >>> ((i & 0x03) << 3) & 0xff; + } + + return rnds; + }; +} /***/ }), -/***/ 1695: -/***/ ((module) => { +/***/ 29868: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +var rng = __webpack_require__(39267); +var bytesToUuid = __webpack_require__(21572); + +function v4(options, buf, offset) { + var i = buf && offset || 0; + + if (typeof(options) == 'string') { + buf = options === 'binary' ? new Array(16) : null; + options = null; + } + options = options || {}; + + var rnds = options.random || (options.rng || rng)(); + + // Per 4.4, set bits for version and `clock_seq_hi_and_reserved` + rnds[6] = (rnds[6] & 0x0f) | 0x40; + rnds[8] = (rnds[8] & 0x3f) | 0x80; + + // Copy bytes to buffer, if provided + if (buf) { + for (var ii = 0; ii < 16; ++ii) { + buf[i + ii] = rnds[ii]; + } + } + + return buf || bytesToUuid(rnds); +} + +module.exports = v4; + + +/***/ }), + +/***/ 32513: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -/* - This file is part of web3.js. - web3.js is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "Z": () => (/* binding */ esm_browser_v4) +}); - web3.js is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. +;// CONCATENATED MODULE: ../../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-browser/rng.js +// Unique ID creation requires a high quality random # generator. In the browser we therefore +// require the crypto API and do not support built-in fallback to lower quality random number +// generators (like Math.random()). +var getRandomValues; +var rnds8 = new Uint8Array(16); +function rng() { + // lazy load so that environments that need to polyfill have a chance to do so + if (!getRandomValues) { + // getRandomValues needs to be invoked in a context where "this" is a Crypto implementation. Also, + // find the complete implementation of crypto (msCrypto) on IE11. + getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto); + + if (!getRandomValues) { + throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported'); + } + } + + return getRandomValues(rnds8); +} +// EXTERNAL MODULE: ../../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-browser/validate.js + 1 modules +var validate = __webpack_require__(68317); +;// CONCATENATED MODULE: ../../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-browser/stringify.js - You should have received a copy of the GNU Lesser General Public License - along with web3.js. If not, see . - */ /** - * @file givenProvider.js - * @author Fabian Vogelsteller - * @date 2017 + * Convert array of 16 byte values to UUID string format of the form: + * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX */ -var givenProvider = null; -// ADD GIVEN PROVIDER -/* jshint ignore:start */ -var global = typeof globalThis === 'object' ? globalThis : undefined; -if (!global) { - try { - global = Function('return this')(); - } - catch (e) { - global = self; - } +var byteToHex = []; + +for (var i = 0; i < 256; ++i) { + byteToHex.push((i + 0x100).toString(16).substr(1)); } -// EIP-1193: window.ethereum -if (typeof global.ethereum !== 'undefined') { - givenProvider = global.ethereum; - // Legacy web3.currentProvider + +function stringify(arr) { + var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; + // Note: Be careful editing this code! It's been tuned for performance + // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434 + var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one + // of the following: + // - One or more input array values don't map to a hex octet (leading to + // "undefined" in the uuid) + // - Invalid input values for the RFC `version` or `variant` fields + + if (!(0,validate/* default */.Z)(uuid)) { + throw TypeError('Stringified UUID is invalid'); + } + + return uuid; } -else if (typeof global.web3 !== 'undefined' && global.web3.currentProvider) { - if (global.web3.currentProvider.sendAsync) { - global.web3.currentProvider.send = global.web3.currentProvider.sendAsync; - delete global.web3.currentProvider.sendAsync; - } - // if connection is 'ipcProviderWrapper', add subscription support - if (!global.web3.currentProvider.on && - global.web3.currentProvider.connection && - global.web3.currentProvider.connection.constructor.name === 'ipcProviderWrapper') { - global.web3.currentProvider.on = function (type, callback) { - if (typeof callback !== 'function') - throw new Error('The second parameter callback must be a function.'); - switch (type) { - case 'data': - this.connection.on('data', function (data) { - var result = ''; - data = data.toString(); - try { - result = JSON.parse(data); - } - catch (e) { - return callback(new Error('Couldn\'t parse response data' + data)); - } - // notification - if (!result.id && result.method.indexOf('_subscription') !== -1) { - callback(null, result); - } - }); - break; - default: - this.connection.on(type, callback); - break; - } - }; + +/* harmony default export */ const esm_browser_stringify = (stringify); +;// CONCATENATED MODULE: ../../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-browser/v4.js + + + +function v4(options, buf, offset) { + options = options || {}; + var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved` + + rnds[6] = rnds[6] & 0x0f | 0x40; + rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided + + if (buf) { + offset = offset || 0; + + for (var i = 0; i < 16; ++i) { + buf[offset + i] = rnds[i]; } - givenProvider = global.web3.currentProvider; + + return buf; + } + + return esm_browser_stringify(rnds); } -/* jshint ignore:end */ -module.exports = givenProvider; +/* harmony default export */ const esm_browser_v4 = (v4); /***/ }), -/***/ 617: -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ 68317: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { "use strict"; -/* - This file is part of web3.js. - web3.js is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - web3.js is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with web3.js. If not, see . -*/ -/** - * @file index.js - * @author Fabian Vogelsteller - * @date 2017 - */ -const { callbackify } = __webpack_require__(65754); -var errors = (__webpack_require__(41032).errors); -var Jsonrpc = __webpack_require__(77953); -var BatchManager = __webpack_require__(13875); -var givenProvider = __webpack_require__(1695); -/** - * It's responsible for passing messages to providers - * It's also responsible for polling the ethereum node for incoming messages - * Default poll timeout is 1 second - * Singleton - * - * @param {string|Object}provider - * @param {Net.Socket} net - * - * @constructor - */ -var RequestManager = function RequestManager(provider, net) { - this.provider = null; - this.providers = RequestManager.providers; - this.setProvider(provider, net); - this.subscriptions = new Map(); -}; -RequestManager.givenProvider = givenProvider; -RequestManager.providers = { - WebsocketProvider: __webpack_require__(80698), - HttpProvider: __webpack_require__(62714), - IpcProvider: __webpack_require__(89075) -}; -/** - * Should be used to set provider of request manager - * - * @method setProvider - * - * @param {Object} provider - * @param {net.Socket} net - * - * @returns void - */ -RequestManager.prototype.setProvider = function (provider, net) { - var _this = this; - // autodetect provider - if (provider && typeof provider === 'string' && this.providers) { - // HTTP - if (/^http(s)?:\/\//i.test(provider)) { - provider = new this.providers.HttpProvider(provider); - // WS - } - else if (/^ws(s)?:\/\//i.test(provider)) { - provider = new this.providers.WebsocketProvider(provider); - // IPC - } - else if (provider && typeof net === 'object' && typeof net.connect === 'function') { - provider = new this.providers.IpcProvider(provider, net); - } - else if (provider) { - throw new Error('Can\'t autodetect provider for "' + provider + '"'); - } - } - // reset the old one before changing, if still connected - if (this.provider && this.provider.connected) - this.clearSubscriptions(); - this.provider = provider || null; - // listen to incoming notifications - if (this.provider && this.provider.on) { - if (typeof provider.request === 'function') { // EIP-1193 provider - this.provider.on('message', function (payload) { - if (payload && payload.type === 'eth_subscription' && payload.data) { - const data = payload.data; - if (data.subscription && _this.subscriptions.has(data.subscription)) { - _this.subscriptions.get(data.subscription).callback(null, data.result); - } - } - }); - } - else { // legacy provider subscription event - this.provider.on('data', function data(result, deprecatedResult) { - result = result || deprecatedResult; // this is for possible old providers, which may had the error first handler - // if result is a subscription, call callback for that subscription - if (result.method && result.params && result.params.subscription && _this.subscriptions.has(result.params.subscription)) { - _this.subscriptions.get(result.params.subscription).callback(null, result.params.result); - } - }); - } - // resubscribe if the provider has reconnected - this.provider.on('connect', function connect() { - _this.subscriptions.forEach(function (subscription) { - subscription.subscription.resubscribe(); - }); - }); - // notify all subscriptions about the error condition - this.provider.on('error', function error(error) { - _this.subscriptions.forEach(function (subscription) { - subscription.callback(error); - }); - }); - // notify all subscriptions about bad close conditions - const disconnect = function disconnect(event) { - if (!_this._isCleanCloseEvent(event) || _this._isIpcCloseError(event)) { - _this.subscriptions.forEach(function (subscription) { - subscription.callback(errors.ConnectionCloseError(event)); - _this.subscriptions.delete(subscription.subscription.id); - }); - if (_this.provider && _this.provider.emit) { - _this.provider.emit('error', errors.ConnectionCloseError(event)); - } - } - if (_this.provider && _this.provider.emit) { - _this.provider.emit('end', event); - } - }; - this.provider.on('disconnect', disconnect); - // TODO add end, timeout?? - } -}; -/** - * Asynchronously send request to provider. - * Prefers to use the `request` method available on the provider as specified in [EIP-1193](https://eips.ethereum.org/EIPS/eip-1193). - * If `request` is not available, falls back to `sendAsync` and `send` respectively. - * @method send - * @param {Object} data - * @param {Function} callback - */ -RequestManager.prototype.send = function (data, callback) { - callback = callback || function () { }; - if (!this.provider) { - return callback(errors.InvalidProvider()); - } - const { method, params } = data; - const jsonrpcPayload = Jsonrpc.toPayload(method, params); - const jsonrpcResultCallback = this._jsonrpcResultCallback(callback, jsonrpcPayload); - if (this.provider.request) { - const callbackRequest = callbackify(this.provider.request.bind(this.provider)); - const requestArgs = { method, params }; - callbackRequest(requestArgs, callback); - } - else if (this.provider.sendAsync) { - this.provider.sendAsync(jsonrpcPayload, jsonrpcResultCallback); - } - else if (this.provider.send) { - this.provider.send(jsonrpcPayload, jsonrpcResultCallback); - } - else { - throw new Error('Provider does not have a request or send method to use.'); - } -}; -/** - * Asynchronously send batch request. - * Only works if provider supports batch methods through `sendAsync` or `send`. - * @method sendBatch - * @param {Array} data - array of payload objects - * @param {Function} callback - */ -RequestManager.prototype.sendBatch = function (data, callback) { - if (!this.provider) { - return callback(errors.InvalidProvider()); - } - var payload = Jsonrpc.toBatchPayload(data); - this.provider[this.provider.sendAsync ? 'sendAsync' : 'send'](payload, function (err, results) { - if (err) { - return callback(err); - } - if (!Array.isArray(results)) { - return callback(errors.InvalidResponse(results)); - } - callback(null, results); - }); -}; -/** - * Waits for notifications - * - * @method addSubscription - * @param {Subscription} subscription the subscription - * @param {String} type the subscription namespace (eth, personal, etc) - * @param {Function} callback the callback to call for incoming notifications - */ -RequestManager.prototype.addSubscription = function (subscription, callback) { - if (this.provider.on) { - this.subscriptions.set(subscription.id, { - callback: callback, - subscription: subscription - }); - } - else { - throw new Error('The provider doesn\'t support subscriptions: ' + this.provider.constructor.name); - } -}; -/** - * Waits for notifications - * - * @method removeSubscription - * @param {String} id the subscription id - * @param {Function} callback fired once the subscription is removed - */ -RequestManager.prototype.removeSubscription = function (id, callback) { - if (this.subscriptions.has(id)) { - var type = this.subscriptions.get(id).subscription.options.type; - // remove subscription first to avoid reentry - this.subscriptions.delete(id); - // then, try to actually unsubscribe - this.send({ - method: type + '_unsubscribe', - params: [id] - }, callback); - return; - } - if (typeof callback === 'function') { - // call the callback if the subscription was already removed - callback(null); - } -}; -/** - * Should be called to reset the subscriptions - * - * @method reset - * - * @returns {boolean} - */ -RequestManager.prototype.clearSubscriptions = function (keepIsSyncing) { - try { - var _this = this; - // uninstall all subscriptions - if (this.subscriptions.size > 0) { - this.subscriptions.forEach(function (value, id) { - if (!keepIsSyncing || value.name !== 'syncing') - _this.removeSubscription(id); - }); - } - // reset notification callbacks etc. - if (this.provider.reset) - this.provider.reset(); - return true; - } - catch (e) { - throw new Error(`Error while clearing subscriptions: ${e}`); - } -}; -/** - * Evaluates WS close event - * - * @method _isCleanClose - * - * @param {CloseEvent | boolean} event WS close event or exception flag - * - * @returns {boolean} - */ -RequestManager.prototype._isCleanCloseEvent = function (event) { - return typeof event === 'object' && ([1000].includes(event.code) || event.wasClean === true); -}; -/** - * Detects Ipc close error. The node.net module emits ('close', isException) - * - * @method _isIpcCloseError - * - * @param {CloseEvent | boolean} event WS close event or exception flag - * - * @returns {boolean} - */ -RequestManager.prototype._isIpcCloseError = function (event) { - return typeof event === 'boolean' && event; -}; -/** - * The jsonrpc result callback for RequestManager.send - * - * @method _jsonrpcResultCallback - * - * @param {Function} callback the callback to use - * @param {Object} payload the jsonrpc payload - * - * @returns {Function} return callback of form (err, result) - * - */ -RequestManager.prototype._jsonrpcResultCallback = function (callback, payload) { - return function (err, result) { - if (result && result.id && payload.id !== result.id) { - return callback(new Error(`Wrong response id ${result.id} (expected: ${payload.id}) in ${JSON.stringify(payload)}`)); - } - if (err) { - return callback(err); - } - if (result && result.error) { - return callback(errors.ErrorResponse(result)); - } - if (!Jsonrpc.isValidResponse(result)) { - return callback(errors.InvalidResponse(result)); - } - callback(null, result.result); - }; -}; -module.exports = { - Manager: RequestManager, - BatchManager: BatchManager -}; +// EXPORTS +__webpack_require__.d(__webpack_exports__, { + "Z": () => (/* binding */ esm_browser_validate) +}); + +;// CONCATENATED MODULE: ../../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-browser/regex.js +/* harmony default export */ const regex = (/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i); +;// CONCATENATED MODULE: ../../node_modules/.pnpm/uuid@8.3.2/node_modules/uuid/dist/esm-browser/validate.js + + +function validate(uuid) { + return typeof uuid === 'string' && regex.test(uuid); +} +/* harmony default export */ const esm_browser_validate = (validate); /***/ }), -/***/ 77953: +/***/ 9757: /***/ ((module) => { -"use strict"; -/* - This file is part of web3.js. - - web3.js is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. +module.exports = read - web3.js is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. +var MSB = 0x80 + , REST = 0x7F - You should have received a copy of the GNU Lesser General Public License - along with web3.js. If not, see . -*/ -/** @file jsonrpc.js - * @authors: - * Fabian Vogelsteller - * Marek Kotewicz - * Aaron Kumavis - * @date 2015 - */ +function read(buf, offset) { + var res = 0 + , offset = offset || 0 + , shift = 0 + , counter = offset + , b + , l = buf.length -// Initialize Jsonrpc as a simple object with utility functions. -var Jsonrpc = { - messageId: 0 -}; -/** - * Should be called to valid json create payload object - * - * @method toPayload - * @param {Function} method of jsonrpc call, required - * @param {Array} params, an array of method params, optional - * @returns {Object} valid jsonrpc payload object - */ -Jsonrpc.toPayload = function (method, params) { - if (!method) { - throw new Error('JSONRPC method should be specified for params: "' + JSON.stringify(params) + '"!'); - } - // advance message ID - Jsonrpc.messageId++; - return { - jsonrpc: '2.0', - id: Jsonrpc.messageId, - method: method, - params: params || [] - }; -}; -/** - * Should be called to check if jsonrpc response is valid - * - * @method isValidResponse - * @param {Object} - * @returns {Boolean} true if response is valid, otherwise false - */ -Jsonrpc.isValidResponse = function (response) { - return Array.isArray(response) ? response.every(validateSingleMessage) : validateSingleMessage(response); - function validateSingleMessage(message) { - return !!message && - !message.error && - message.jsonrpc === '2.0' && - (typeof message.id === 'number' || typeof message.id === 'string') && - message.result !== undefined; // only undefined is not valid json object + do { + if (counter >= l) { + read.bytes = 0 + throw new RangeError('Could not decode varint') } -}; -/** - * Should be called to create batch payload object - * - * @method toBatchPayload - * @param {Array} messages, an array of objects with method (required) and params (optional) fields - * @returns {Array} batch payload - */ -Jsonrpc.toBatchPayload = function (messages) { - return messages.map(function (message) { - return Jsonrpc.toPayload(message.method, message.params); - }); -}; -module.exports = Jsonrpc; + b = buf[counter++] + res += shift < 28 + ? (b & REST) << shift + : (b & REST) * Math.pow(2, shift) + shift += 7 + } while (b >= MSB) + + read.bytes = counter - offset + + return res +} /***/ }), -/***/ 70790: +/***/ 7824: +/***/ ((module) => { + +module.exports = encode + +var MSB = 0x80 + , REST = 0x7F + , MSBALL = ~REST + , INT = Math.pow(2, 31) + +function encode(num, out, offset) { + out = out || [] + offset = offset || 0 + var oldOffset = offset + + while(num >= INT) { + out[offset++] = (num & 0xFF) | MSB + num /= 128 + } + while(num & MSBALL) { + out[offset++] = (num & 0xFF) | MSB + num >>>= 7 + } + out[offset] = num | 0 + + encode.bytes = offset - oldOffset + 1 + + return out +} + + +/***/ }), + +/***/ 29364: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { -"use strict"; -/* - This file is part of web3.js. +module.exports = { + encode: __webpack_require__(7824) + , decode: __webpack_require__(9757) + , encodingLength: __webpack_require__(29379) +} - web3.js is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - web3.js is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. +/***/ }), + +/***/ 29379: +/***/ ((module) => { + + +var N1 = Math.pow(2, 7) +var N2 = Math.pow(2, 14) +var N3 = Math.pow(2, 21) +var N4 = Math.pow(2, 28) +var N5 = Math.pow(2, 35) +var N6 = Math.pow(2, 42) +var N7 = Math.pow(2, 49) +var N8 = Math.pow(2, 56) +var N9 = Math.pow(2, 63) + +module.exports = function (value) { + return ( + value < N1 ? 1 + : value < N2 ? 2 + : value < N3 ? 3 + : value < N4 ? 4 + : value < N5 ? 5 + : value < N6 ? 6 + : value < N7 ? 7 + : value < N8 ? 8 + : value < N9 ? 9 + : 10 + ) +} + + +/***/ }), + +/***/ 63229: +/***/ ((module) => { - You should have received a copy of the GNU Lesser General Public License - along with web3.js. If not, see . -*/ /** - * @file index.js - * @author Fabian Vogelsteller - * @date 2017 + * This file automatically generated from `pre-publish.js`. + * Do not manually edit. */ -var Subscription = __webpack_require__(48305); -var Subscriptions = function Subscriptions(options) { - this.name = options.name; - this.type = options.type; - this.subscriptions = options.subscriptions || {}; - this.requestManager = null; -}; -Subscriptions.prototype.setRequestManager = function (rm) { - this.requestManager = rm; -}; -Subscriptions.prototype.attachToObject = function (obj) { - var func = this.buildCall(); - var name = this.name.split('.'); - if (name.length > 1) { - obj[name[0]] = obj[name[0]] || {}; - obj[name[0]][name[1]] = func; - } - else { - obj[name[0]] = func; - } -}; -Subscriptions.prototype.buildCall = function () { - var _this = this; - return function () { - if (!_this.subscriptions[arguments[0]]) { - console.warn('Subscription ' + JSON.stringify(arguments[0]) + ' doesn\'t exist. Subscribing anyway.'); - } - var subscription = new Subscription({ - subscription: _this.subscriptions[arguments[0]] || {}, - requestManager: _this.requestManager, - type: _this.type - }); - return subscription.subscribe.apply(subscription, arguments); - }; -}; module.exports = { - subscriptions: Subscriptions, - subscription: Subscription + "area": true, + "base": true, + "br": true, + "col": true, + "embed": true, + "hr": true, + "img": true, + "input": true, + "link": true, + "meta": true, + "param": true, + "source": true, + "track": true, + "wbr": true }; /***/ }), -/***/ 48305: +/***/ 6839: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; @@ -41311,271 +48544,62 @@ module.exports = { along with web3.js. If not, see . */ /** - * @file subscription.js + * @file index.js * @author Fabian Vogelsteller * @date 2017 */ -var errors = (__webpack_require__(41032).errors); -var EventEmitter = __webpack_require__(15954); -var formatters = (__webpack_require__(41032).formatters); -function identity(value) { - return value; -} -function Subscription(options) { - EventEmitter.call(this); - this.id = null; - this.callback = identity; - this.arguments = null; - this.lastBlock = null; // "from" block tracker for backfilling events on reconnection - this.options = { - subscription: options.subscription, - type: options.type, - requestManager: options.requestManager - }; -} -// INHERIT -Subscription.prototype = Object.create(EventEmitter.prototype); -Subscription.prototype.constructor = Subscription; -/** - * Should be used to extract callback from array of arguments. Modifies input param - * - * @method extractCallback - * @param {Array} arguments - * @return {Function|Null} callback, if exists - */ -Subscription.prototype._extractCallback = function (args) { - if (typeof args[args.length - 1] === 'function') { - return args.pop(); // modify the args array! - } -}; -/** - * Should be called to check if the number of arguments is correct - * - * @method validateArgs - * @param {Array} arguments - * @throws {Error} if it is not - */ -Subscription.prototype._validateArgs = function (args) { - var subscription = this.options.subscription; - if (!subscription) - subscription = {}; - if (!subscription.params) - subscription.params = 0; - if (args.length !== subscription.params) { - throw errors.InvalidNumberOfParams(args.length, subscription.params, subscription.subscriptionName); - } -}; -/** - * Should be called to format input args of method - * - * @method formatInput - * @param {Array} - * @return {Array} - */ -Subscription.prototype._formatInput = function (args) { - var subscription = this.options.subscription; - if (!subscription) { - return args; - } - if (!subscription.inputFormatter) { - return args; - } - var formattedArgs = subscription.inputFormatter.map(function (formatter, index) { - return formatter ? formatter(args[index]) : args[index]; - }); - return formattedArgs; -}; -/** - * Should be called to format output(result) of method - * - * @method formatOutput - * @param result {Object} - * @return {Object} - */ -Subscription.prototype._formatOutput = function (result) { - var subscription = this.options.subscription; - return (subscription && subscription.outputFormatter && result) ? subscription.outputFormatter(result) : result; -}; -/** - * Should create payload from given input args - * - * @method toPayload - * @param {Array} args - * @return {Object} - */ -Subscription.prototype._toPayload = function (args) { - var params = []; - this.callback = this._extractCallback(args) || identity; - if (!this.subscriptionMethod) { - this.subscriptionMethod = args.shift(); - // replace subscription with given name - if (this.options.subscription.subscriptionName) { - this.subscriptionMethod = this.options.subscription.subscriptionName; - } - } - if (!this.arguments) { - this.arguments = this._formatInput(args); - this._validateArgs(this.arguments); - args = []; // make empty after validation - } - // re-add subscriptionName - params.push(this.subscriptionMethod); - params = params.concat(this.arguments); - if (args.length) { - throw new Error('Only a callback is allowed as parameter on an already instantiated subscription.'); - } - return { - method: this.options.type + '_subscribe', - params: params - }; -}; -/** - * Unsubscribes and clears callbacks - * - * @method unsubscribe - * @return {Object} - */ -Subscription.prototype.unsubscribe = function (callback) { - this.options.requestManager.removeSubscription(this.id, callback); - this.id = null; - this.lastBlock = null; - this.removeAllListeners(); -}; -/** - * Subscribes and watches for changes - * - * @method subscribe - * @param {String} subscription the subscription - * @param {Object} options the options object with address topics and fromBlock - * @return {Object} - */ -Subscription.prototype.subscribe = function () { - var _this = this; - var args = Array.prototype.slice.call(arguments); - var payload = this._toPayload(args); - if (!payload) { - return this; - } - // throw error, if provider is not set - if (!this.options.requestManager.provider) { - setTimeout(function () { - var err1 = new Error('No provider set.'); - _this.callback(err1, null, _this); - _this.emit('error', err1); - }, 0); - return this; - } - // throw error, if provider doesnt support subscriptions - if (!this.options.requestManager.provider.on) { - setTimeout(function () { - var err2 = new Error('The current provider doesn\'t support subscriptions: ' + - _this.options.requestManager.provider.constructor.name); - _this.callback(err2, null, _this); - _this.emit('error', err2); - }, 0); - return this; - } - // Re-subscription only: continue fetching from the last block we received. - // a dropped connection may have resulted in gaps in the logs... - if (this.lastBlock && !!this.options.params && typeof this.options.params === 'object') { - payload.params[1] = this.options.params; - payload.params[1].fromBlock = formatters.inputBlockNumberFormatter(this.lastBlock + 1); - } - // if id is there unsubscribe first - if (this.id) { - this.unsubscribe(); - } - // store the params in the options object - this.options.params = payload.params[1]; - // get past logs, if fromBlock is available - if (payload.params[0] === 'logs' && !!payload.params[1] && typeof payload.params[1] === 'object' && payload.params[1].hasOwnProperty('fromBlock') && isFinite(payload.params[1].fromBlock)) { - // send the subscription request - // copy the params to avoid race-condition with deletion below this block - var blockParams = Object.assign({}, payload.params[1]); - this.options.requestManager.send({ - method: 'eth_getLogs', - params: [blockParams] - }, function (err, logs) { - if (!err) { - logs.forEach(function (log) { - var output = _this._formatOutput(log); - _this.callback(null, output, _this); - _this.emit('data', output); - }); - // TODO subscribe here? after the past logs? - } - else { - setTimeout(function () { - _this.callback(err, null, _this); - _this.emit('error', err); - }, 0); - } - }); - } - // create subscription - // TODO move to separate function? so that past logs can go first? - if (typeof payload.params[1] === 'object') - delete payload.params[1].fromBlock; - this.options.requestManager.send(payload, function (err, result) { - if (!err && result) { - _this.id = result; - _this.method = payload.params[0]; - // call callback on notifications - _this.options.requestManager.addSubscription(_this, function (error, result) { - if (!error) { - if (!Array.isArray(result)) { - result = [result]; - } - result.forEach(function (resultItem) { - var output = _this._formatOutput(resultItem); - // Track current block (for gaps introduced by dropped connections) - _this.lastBlock = !!output && typeof output === 'object' ? output.blockNumber : null; - if (typeof _this.options.subscription.subscriptionHandler === 'function') { - return _this.options.subscription.subscriptionHandler.call(_this, output); - } - else { - _this.emit('data', output); - } - // call the callback, last so that unsubscribe there won't affect the emit above - _this.callback(null, output, _this); - }); - } - else { - _this.callback(error, false, _this); - _this.emit('error', error); - } - }); - _this.emit('connected', result); - } - else { - setTimeout(function () { - _this.callback(err, false, _this); - _this.emit('error', err); - }, 0); - } - }); - // return an object to cancel the subscription - return this; -}; -/** - * Resubscribe - * - * @method resubscribe - * - * @returns {void} - */ -Subscription.prototype.resubscribe = function () { - this.options.requestManager.removeSubscription(this.id); // unsubscribe - this.id = null; - this.subscribe(this.callback); +var swarm = __webpack_require__(52384); +var Bzz = function Bzz(provider) { + this.givenProvider = Bzz.givenProvider; + if (provider && provider._requestManager) { + provider = provider.currentProvider; + } + // only allow file picker when in browser + if (typeof document !== 'undefined') { + this.pick = swarm.pick; + } + this.setProvider(provider); }; -module.exports = Subscription; +// set default ethereum provider +/* jshint ignore:start */ +Bzz.givenProvider = null; +if (typeof ethereum !== 'undefined' && ethereum.bzz) { + Bzz.givenProvider = ethereum.bzz; +} +/* jshint ignore:end */ +Bzz.prototype.setProvider = function (provider) { + // is ethereum provider + if (!!provider && typeof provider === 'object' && typeof provider.bzz === 'string') { + provider = provider.bzz; + // is no string, set default + } + // else if(!_.isString(provider)) { + // provider = 'http://swarm-gateways.net'; // default to gateway + // } + if (typeof provider === 'string') { + this.currentProvider = provider; + } + else { + this.currentProvider = null; + var noProviderError = new Error('No provider set, please set one using bzz.setProvider().'); + this.download = this.upload = this.isAvailable = function () { + throw noProviderError; + }; + return false; + } + // add functions + this.download = swarm.at(provider).download; + this.upload = swarm.at(provider).upload; + this.isAvailable = swarm.at(provider).isAvailable; + return true; +}; +module.exports = Bzz; /***/ }), -/***/ 8117: +/***/ 8398: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; @@ -41596,51 +48620,61 @@ module.exports = Subscription; along with web3.js. If not, see . */ /** - * @file extend.js + * @file index.js * @author Fabian Vogelsteller - * @date 2017 + * @date 2016 */ -var formatters = (__webpack_require__(41032).formatters); -var Method = __webpack_require__(82481); -var utils = __webpack_require__(11627); -var extend = function (pckg) { - /* jshint maxcomplexity:5 */ - var ex = function (extension) { - var extendedObject; - if (extension.property) { - if (!pckg[extension.property]) { - pckg[extension.property] = {}; - } - extendedObject = pckg[extension.property]; - } - else { - extendedObject = pckg; - } - if (extension.methods) { - extension.methods.forEach(function (method) { - if (!(method instanceof Method)) { - method = new Method(method); - } - method.attachToObject(extendedObject); - method.setRequestManager(pckg._requestManager); - }); - } - return pckg; +var EventEmitter = __webpack_require__(15954); +/** + * This function generates a defer promise and adds eventEmitter functionality to it + * + * @method eventifiedPromise + */ +var PromiEvent = function PromiEvent(justPromise) { + var resolve, reject, eventEmitter = new Promise(function () { + resolve = arguments[0]; + reject = arguments[1]; + }); + if (justPromise) { + return { + resolve: resolve, + reject: reject, + eventEmitter: eventEmitter + }; + } + // get eventEmitter + var emitter = new EventEmitter(); + // add eventEmitter to the promise + eventEmitter._events = emitter._events; + eventEmitter.emit = emitter.emit; + eventEmitter.on = emitter.on; + eventEmitter.once = emitter.once; + eventEmitter.off = emitter.off; + eventEmitter.listeners = emitter.listeners; + eventEmitter.addListener = emitter.addListener; + eventEmitter.removeListener = emitter.removeListener; + eventEmitter.removeAllListeners = emitter.removeAllListeners; + return { + resolve: resolve, + reject: reject, + eventEmitter: eventEmitter }; - ex.formatters = formatters; - ex.utils = utils; - ex.Method = Method; - return ex; }; -module.exports = extend; +PromiEvent.resolve = function (value) { + var promise = PromiEvent(true); + promise.resolve(value); + return promise.eventEmitter; +}; +module.exports = PromiEvent; /***/ }), -/***/ 43702: +/***/ 13875: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { +"use strict"; /* This file is part of web3.js. @@ -41658,71 +48692,69 @@ module.exports = extend; along with web3.js. If not, see . */ /** - * @file index.js - * @author Fabian Vogelsteller - * @date 2017 + * @file batch.js + * @author Marek Kotewicz + * @date 2015 */ -const requestManager = __webpack_require__(617); -const extend = __webpack_require__(8117); -const packageInit = (pkg, args) => { - args = Array.prototype.slice.call(args); - if (!pkg) { - throw new Error('You need to instantiate using the "new" keyword.'); - } - // make property of pkg._provider, which can properly set providers - Object.defineProperty(pkg, 'currentProvider', { - get: () => { - return pkg._provider; - }, - set: (value) => { - return pkg.setProvider(value); - }, - enumerable: true, - configurable: true - }); - // inherit from parent package or create a new RequestManager - if (args[0] && args[0]._requestManager) { - pkg._requestManager = args[0]._requestManager; - } - else { - pkg._requestManager = new requestManager.Manager(args[0], args[1]); - } - // add givenProvider - pkg.givenProvider = requestManager.Manager.givenProvider; - pkg.providers = requestManager.Manager.providers; - pkg._provider = pkg._requestManager.provider; - // add SETPROVIDER function (don't overwrite if already existing) - if (!pkg.setProvider) { - pkg.setProvider = (provider, net) => { - pkg._requestManager.setProvider(provider, net); - pkg._provider = pkg._requestManager.provider; - return true; - }; - } - pkg.setRequestManager = (manager) => { - pkg._requestManager = manager; - pkg._provider = manager.provider; - }; - // attach batch request creation - pkg.BatchRequest = requestManager.BatchManager.bind(null, pkg._requestManager); - // attach extend function - pkg.extend = extend(pkg); + +var Jsonrpc = __webpack_require__(77953); +var errors = (__webpack_require__(41032).errors); +var Batch = function (requestManager) { + this.requestManager = requestManager; + this.requests = []; }; -const addProviders = (pkg) => { - pkg.givenProvider = requestManager.Manager.givenProvider; - pkg.providers = requestManager.Manager.providers; +/** + * Should be called to add create new request to batch request + * + * @method add + * @param {Object} jsonrpc requet object + */ +Batch.prototype.add = function (request) { + this.requests.push(request); }; -module.exports = { - packageInit, - addProviders +/** + * Should be called to execute batch request + * + * @method execute + */ +Batch.prototype.execute = function () { + var requests = this.requests; + var sortResponses = this._sortResponses.bind(this); + this.requestManager.sendBatch(requests, function (err, results) { + results = sortResponses(results); + requests.map(function (request, index) { + return results[index] || {}; + }).forEach(function (result, index) { + if (requests[index].callback) { + if (result && result.error) { + return requests[index].callback(errors.ErrorResponse(result)); + } + if (!Jsonrpc.isValidResponse(result)) { + return requests[index].callback(errors.InvalidResponse(result)); + } + try { + requests[index].callback(null, requests[index].format ? requests[index].format(result.result) : result.result); + } + catch (err) { + requests[index].callback(err); + } + } + }); + }); +}; +// Sort responses +Batch.prototype._sortResponses = function (responses) { + return (responses || []).sort((a, b) => a.id - b.id); }; +module.exports = Batch; /***/ }), -/***/ 9177: -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ 1695: +/***/ ((module) => { +"use strict"; /* This file is part of web3.js. @@ -41740,363 +48772,392 @@ module.exports = { along with web3.js. If not, see . */ /** - * @file index.js - * @author Marek Kotewicz - * @author Fabian Vogelsteller - * @date 2018 + * @file givenProvider.js + * @author Fabian Vogelsteller + * @date 2017 */ -var Buffer = (__webpack_require__(15313).Buffer); -var utils = __webpack_require__(11627); -var EthersAbiCoder = (__webpack_require__(27090)/* .AbiCoder */ .RQ); -var ParamType = (__webpack_require__(27090)/* .ParamType */ ._R); -var ethersAbiCoder = new EthersAbiCoder(function (type, value) { - if (type.match(/^u?int/) && !Array.isArray(value) && (!(!!value && typeof value === 'object') || value.constructor.name !== 'BN')) { - return value.toString(); + +var givenProvider = null; +// ADD GIVEN PROVIDER +/* jshint ignore:start */ +var global = typeof globalThis === 'object' ? globalThis : undefined; +if (!global) { + try { + global = Function('return this')(); + } + catch (e) { + global = self; } - return value; -}); -// result method -function Result() { } -/** - * ABICoder prototype should be used to encode/decode solidity params of any type - */ -var ABICoder = function () { -}; -/** - * Encodes the function name to its ABI representation, which are the first 4 bytes of the sha3 of the function name including types. - * - * @method encodeFunctionSignature - * @param {String|Object} functionName - * @return {String} encoded function name - */ -ABICoder.prototype.encodeFunctionSignature = function (functionName) { - if (typeof functionName === 'function' || typeof functionName === 'object' && functionName) { - functionName = utils._jsonInterfaceMethodToString(functionName); +// EIP-1193: window.ethereum +if (typeof global.ethereum !== 'undefined') { + givenProvider = global.ethereum; + // Legacy web3.currentProvider +} +else if (typeof global.web3 !== 'undefined' && global.web3.currentProvider) { + if (global.web3.currentProvider.sendAsync) { + global.web3.currentProvider.send = global.web3.currentProvider.sendAsync; + delete global.web3.currentProvider.sendAsync; } - return utils.sha3(functionName).slice(0, 10); -}; + // if connection is 'ipcProviderWrapper', add subscription support + if (!global.web3.currentProvider.on && + global.web3.currentProvider.connection && + global.web3.currentProvider.connection.constructor.name === 'ipcProviderWrapper') { + global.web3.currentProvider.on = function (type, callback) { + if (typeof callback !== 'function') + throw new Error('The second parameter callback must be a function.'); + switch (type) { + case 'data': + this.connection.on('data', function (data) { + var result = ''; + data = data.toString(); + try { + result = JSON.parse(data); + } + catch (e) { + return callback(new Error('Couldn\'t parse response data' + data)); + } + // notification + if (!result.id && result.method.indexOf('_subscription') !== -1) { + callback(null, result); + } + }); + break; + default: + this.connection.on(type, callback); + break; + } + }; + } + givenProvider = global.web3.currentProvider; +} +/* jshint ignore:end */ +module.exports = givenProvider; + + +/***/ }), + +/***/ 617: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +/* + This file is part of web3.js. + web3.js is free software: you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + web3.js is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. + You should have received a copy of the GNU Lesser General Public License + along with web3.js. If not, see . +*/ /** - * Encodes the function name to its ABI representation, which are the first 4 bytes of the sha3 of the function name including types. - * - * @method encodeEventSignature - * @param {String|Object} functionName - * @return {String} encoded function name + * @file index.js + * @author Fabian Vogelsteller + * @date 2017 */ -ABICoder.prototype.encodeEventSignature = function (functionName) { - if (typeof functionName === 'function' || typeof functionName === 'object' && functionName) { - functionName = utils._jsonInterfaceMethodToString(functionName); - } - return utils.sha3(functionName); -}; + +const { callbackify } = __webpack_require__(65754); +var errors = (__webpack_require__(41032).errors); +var Jsonrpc = __webpack_require__(77953); +var BatchManager = __webpack_require__(13875); +var givenProvider = __webpack_require__(1695); /** - * Should be used to encode plain param - * - * @method encodeParameter + * It's responsible for passing messages to providers + * It's also responsible for polling the ethereum node for incoming messages + * Default poll timeout is 1 second + * Singleton * - * @param {String|Object} type - * @param {any} param + * @param {string|Object}provider + * @param {Net.Socket} net * - * @return {String} encoded plain param + * @constructor */ -ABICoder.prototype.encodeParameter = function (type, param) { - return this.encodeParameters([type], [param]); +var RequestManager = function RequestManager(provider, net) { + this.provider = null; + this.providers = RequestManager.providers; + this.setProvider(provider, net); + this.subscriptions = new Map(); +}; +RequestManager.givenProvider = givenProvider; +RequestManager.providers = { + WebsocketProvider: __webpack_require__(80698), + HttpProvider: __webpack_require__(62714), + IpcProvider: __webpack_require__(89075) }; /** - * Should be used to encode list of params + * Should be used to set provider of request manager * - * @method encodeParameters + * @method setProvider * - * @param {Array} types - * @param {Array} params + * @param {Object} provider + * @param {net.Socket} net * - * @return {String} encoded list of params + * @returns void */ -ABICoder.prototype.encodeParameters = function (types, params) { - var self = this; - types = self.mapTypes(types); - params = params.map(function (param, index) { - let type = types[index]; - if (typeof type === 'object' && type.type) { - // We may get a named type of shape {name, type} - type = type.type; +RequestManager.prototype.setProvider = function (provider, net) { + var _this = this; + // autodetect provider + if (provider && typeof provider === 'string' && this.providers) { + // HTTP + if (/^http(s)?:\/\//i.test(provider)) { + provider = new this.providers.HttpProvider(provider); + // WS } - param = self.formatParam(type, param); - // Format params for tuples - if (typeof type === 'string' && type.includes('tuple')) { - const coder = ethersAbiCoder._getCoder(ParamType.from(type)); - const modifyParams = (coder, param) => { - if (coder.name === 'array') { - return param.map(p => modifyParams(ethersAbiCoder._getCoder(ParamType.from(coder.type.replace('[]', ''))), p)); - } - coder.coders.forEach((c, i) => { - if (c.name === 'tuple') { - modifyParams(c, param[i]); - } - else { - param[i] = self.formatParam(c.name, param[i]); + else if (/^ws(s)?:\/\//i.test(provider)) { + provider = new this.providers.WebsocketProvider(provider); + // IPC + } + else if (provider && typeof net === 'object' && typeof net.connect === 'function') { + provider = new this.providers.IpcProvider(provider, net); + } + else if (provider) { + throw new Error('Can\'t autodetect provider for "' + provider + '"'); + } + } + // reset the old one before changing, if still connected + if (this.provider && this.provider.connected) + this.clearSubscriptions(); + this.provider = provider || null; + // listen to incoming notifications + if (this.provider && this.provider.on) { + if (typeof provider.request === 'function') { // EIP-1193 provider + this.provider.on('message', function (payload) { + if (payload && payload.type === 'eth_subscription' && payload.data) { + const data = payload.data; + if (data.subscription && _this.subscriptions.has(data.subscription)) { + _this.subscriptions.get(data.subscription).callback(null, data.result); } - }); - }; - modifyParams(coder, param); + } + }); } - return param; - }); - return ethersAbiCoder.encode(types, params); + else { // legacy provider subscription event + this.provider.on('data', function data(result, deprecatedResult) { + result = result || deprecatedResult; // this is for possible old providers, which may had the error first handler + // if result is a subscription, call callback for that subscription + if (result.method && result.params && result.params.subscription && _this.subscriptions.has(result.params.subscription)) { + _this.subscriptions.get(result.params.subscription).callback(null, result.params.result); + } + }); + } + // resubscribe if the provider has reconnected + this.provider.on('connect', function connect() { + _this.subscriptions.forEach(function (subscription) { + subscription.subscription.resubscribe(); + }); + }); + // notify all subscriptions about the error condition + this.provider.on('error', function error(error) { + _this.subscriptions.forEach(function (subscription) { + subscription.callback(error); + }); + }); + // notify all subscriptions about bad close conditions + const disconnect = function disconnect(event) { + if (!_this._isCleanCloseEvent(event) || _this._isIpcCloseError(event)) { + _this.subscriptions.forEach(function (subscription) { + subscription.callback(errors.ConnectionCloseError(event)); + _this.subscriptions.delete(subscription.subscription.id); + }); + if (_this.provider && _this.provider.emit) { + _this.provider.emit('error', errors.ConnectionCloseError(event)); + } + } + if (_this.provider && _this.provider.emit) { + _this.provider.emit('end', event); + } + }; + this.provider.on('disconnect', disconnect); + // TODO add end, timeout?? + } +}; +/** + * Asynchronously send request to provider. + * Prefers to use the `request` method available on the provider as specified in [EIP-1193](https://eips.ethereum.org/EIPS/eip-1193). + * If `request` is not available, falls back to `sendAsync` and `send` respectively. + * @method send + * @param {Object} data + * @param {Function} callback + */ +RequestManager.prototype.send = function (data, callback) { + callback = callback || function () { }; + if (!this.provider) { + return callback(errors.InvalidProvider()); + } + const { method, params } = data; + const jsonrpcPayload = Jsonrpc.toPayload(method, params); + const jsonrpcResultCallback = this._jsonrpcResultCallback(callback, jsonrpcPayload); + if (this.provider.request) { + const callbackRequest = callbackify(this.provider.request.bind(this.provider)); + const requestArgs = { method, params }; + callbackRequest(requestArgs, callback); + } + else if (this.provider.sendAsync) { + this.provider.sendAsync(jsonrpcPayload, jsonrpcResultCallback); + } + else if (this.provider.send) { + this.provider.send(jsonrpcPayload, jsonrpcResultCallback); + } + else { + throw new Error('Provider does not have a request or send method to use.'); + } }; /** - * Map types if simplified format is used - * - * @method mapTypes - * @param {Array} types - * @return {Array} + * Asynchronously send batch request. + * Only works if provider supports batch methods through `sendAsync` or `send`. + * @method sendBatch + * @param {Array} data - array of payload objects + * @param {Function} callback */ -ABICoder.prototype.mapTypes = function (types) { - var self = this; - var mappedTypes = []; - types.forEach(function (type) { - // Remap `function` type params to bytes24 since Ethers does not - // recognize former type. Solidity docs say `Function` is a bytes24 - // encoding the contract address followed by the function selector hash. - if (typeof type === 'object' && type.type === 'function') { - type = Object.assign({}, type, { type: "bytes24" }); +RequestManager.prototype.sendBatch = function (data, callback) { + if (!this.provider) { + return callback(errors.InvalidProvider()); + } + var payload = Jsonrpc.toBatchPayload(data); + this.provider[this.provider.sendAsync ? 'sendAsync' : 'send'](payload, function (err, results) { + if (err) { + return callback(err); } - if (self.isSimplifiedStructFormat(type)) { - var structName = Object.keys(type)[0]; - mappedTypes.push(Object.assign(self.mapStructNameAndType(structName), { - components: self.mapStructToCoderFormat(type[structName]) - })); - return; + if (!Array.isArray(results)) { + return callback(errors.InvalidResponse(results)); } - mappedTypes.push(type); + callback(null, results); }); - return mappedTypes; }; /** - * Check if type is simplified struct format + * Waits for notifications * - * @method isSimplifiedStructFormat - * @param {string | Object} type - * @returns {boolean} + * @method addSubscription + * @param {Subscription} subscription the subscription + * @param {String} type the subscription namespace (eth, personal, etc) + * @param {Function} callback the callback to call for incoming notifications */ -ABICoder.prototype.isSimplifiedStructFormat = function (type) { - return typeof type === 'object' && typeof type.components === 'undefined' && typeof type.name === 'undefined'; +RequestManager.prototype.addSubscription = function (subscription, callback) { + if (this.provider.on) { + this.subscriptions.set(subscription.id, { + callback: callback, + subscription: subscription + }); + } + else { + throw new Error('The provider doesn\'t support subscriptions: ' + this.provider.constructor.name); + } }; /** - * Maps the correct tuple type and name when the simplified format in encode/decodeParameter is used + * Waits for notifications * - * @method mapStructNameAndType - * @param {string} structName - * @return {{type: string, name: *}} + * @method removeSubscription + * @param {String} id the subscription id + * @param {Function} callback fired once the subscription is removed */ -ABICoder.prototype.mapStructNameAndType = function (structName) { - var type = 'tuple'; - if (structName.indexOf('[]') > -1) { - type = 'tuple[]'; - structName = structName.slice(0, -2); +RequestManager.prototype.removeSubscription = function (id, callback) { + if (this.subscriptions.has(id)) { + var type = this.subscriptions.get(id).subscription.options.type; + // remove subscription first to avoid reentry + this.subscriptions.delete(id); + // then, try to actually unsubscribe + this.send({ + method: type + '_unsubscribe', + params: [id] + }, callback); + return; + } + if (typeof callback === 'function') { + // call the callback if the subscription was already removed + callback(null); } - return { type: type, name: structName }; }; /** - * Maps the simplified format in to the expected format of the ABICoder + * Should be called to reset the subscriptions * - * @method mapStructToCoderFormat - * @param {Object} struct - * @return {Array} - */ -ABICoder.prototype.mapStructToCoderFormat = function (struct) { - var self = this; - var components = []; - Object.keys(struct).forEach(function (key) { - if (typeof struct[key] === 'object') { - components.push(Object.assign(self.mapStructNameAndType(key), { - components: self.mapStructToCoderFormat(struct[key]) - })); - return; - } - components.push({ - name: key, - type: struct[key] - }); - }); - return components; -}; -/** - * Handle some formatting of params for backwards compatability with Ethers V4 + * @method reset * - * @method formatParam - * @param {String} - type - * @param {any} - param - * @return {any} - The formatted param + * @returns {boolean} */ -ABICoder.prototype.formatParam = function (type, param) { - const paramTypeBytes = new RegExp(/^bytes([0-9]*)$/); - const paramTypeBytesArray = new RegExp(/^bytes([0-9]*)\[\]$/); - const paramTypeNumber = new RegExp(/^(u?int)([0-9]*)$/); - const paramTypeNumberArray = new RegExp(/^(u?int)([0-9]*)\[\]$/); - // Format BN to string - if (utils.isBN(param) || utils.isBigNumber(param)) { - return param.toString(10); - } - if (type.match(paramTypeBytesArray) || type.match(paramTypeNumberArray)) { - return param.map(p => this.formatParam(type.replace('[]', ''), p)); - } - // Format correct width for u?int[0-9]* - let match = type.match(paramTypeNumber); - if (match) { - let size = parseInt(match[2] || "256"); - if (size / 8 < param.length) { - // pad to correct bit width - param = utils.leftPad(param, size); +RequestManager.prototype.clearSubscriptions = function (keepIsSyncing) { + try { + var _this = this; + // uninstall all subscriptions + if (this.subscriptions.size > 0) { + this.subscriptions.forEach(function (value, id) { + if (!keepIsSyncing || value.name !== 'syncing') + _this.removeSubscription(id); + }); } + // reset notification callbacks etc. + if (this.provider.reset) + this.provider.reset(); + return true; } - // Format correct length for bytes[0-9]+ - match = type.match(paramTypeBytes); - if (match) { - if (Buffer.isBuffer(param)) { - param = utils.toHex(param); - } - // format to correct length - let size = parseInt(match[1]); - if (size) { - let maxSize = size * 2; - if (param.substring(0, 2) === '0x') { - maxSize += 2; - } - if (param.length < maxSize) { - // pad to correct length - param = utils.rightPad(param, size * 2); - } - } - // format odd-length bytes to even-length - if (param.length % 2 === 1) { - param = '0x0' + param.substring(2); - } + catch (e) { + throw new Error(`Error while clearing subscriptions: ${e}`); } - return param; }; /** - * Encodes a function call from its json interface and parameters. + * Evaluates WS close event * - * @method encodeFunctionCall - * @param {Array} jsonInterface - * @param {Array} params - * @return {String} The encoded ABI for this function call - */ -ABICoder.prototype.encodeFunctionCall = function (jsonInterface, params) { - return this.encodeFunctionSignature(jsonInterface) + this.encodeParameters(jsonInterface.inputs, params).replace('0x', ''); -}; -/** - * Should be used to decode bytes to plain param + * @method _isCleanClose * - * @method decodeParameter - * @param {String} type - * @param {String} bytes - * @return {Object} plain param - */ -ABICoder.prototype.decodeParameter = function (type, bytes) { - return this.decodeParameters([type], bytes)[0]; -}; -/** - * Should be used to decode list of params + * @param {CloseEvent | boolean} event WS close event or exception flag * - * @method decodeParameter - * @param {Array} outputs - * @param {String} bytes - * @return {Array} array of plain params + * @returns {boolean} */ -ABICoder.prototype.decodeParameters = function (outputs, bytes) { - return this.decodeParametersWith(outputs, bytes, false); +RequestManager.prototype._isCleanCloseEvent = function (event) { + return typeof event === 'object' && ([1000].includes(event.code) || event.wasClean === true); }; /** - * Should be used to decode list of params + * Detects Ipc close error. The node.net module emits ('close', isException) * - * @method decodeParameter - * @param {Array} outputs - * @param {String} bytes - * @param {Boolean} loose - * @return {Array} array of plain params + * @method _isIpcCloseError + * + * @param {CloseEvent | boolean} event WS close event or exception flag + * + * @returns {boolean} */ -ABICoder.prototype.decodeParametersWith = function (outputs, bytes, loose) { - if (outputs.length > 0 && (!bytes || bytes === '0x' || bytes === '0X')) { - throw new Error('Returned values aren\'t valid, did it run Out of Gas? ' + - 'You might also see this error if you are not using the ' + - 'correct ABI for the contract you are retrieving data from, ' + - 'requesting data from a block number that does not exist, ' + - 'or querying a node which is not fully synced.'); - } - var res = ethersAbiCoder.decode(this.mapTypes(outputs), '0x' + bytes.replace(/0x/i, ''), loose); - var returnValue = new Result(); - returnValue.__length__ = 0; - outputs.forEach(function (output, i) { - var decodedValue = res[returnValue.__length__]; - const isStringObject = typeof output === 'object' && output.type && output.type === 'string'; - const isStringType = typeof output === 'string' && output === 'string'; - // only convert `0x` to null if it's not string value - decodedValue = (decodedValue === '0x' && !isStringObject && !isStringType) ? null : decodedValue; - returnValue[i] = decodedValue; - if ((typeof output === 'function' || !!output && typeof output === 'object') && output.name) { - returnValue[output.name] = decodedValue; - } - returnValue.__length__++; - }); - return returnValue; +RequestManager.prototype._isIpcCloseError = function (event) { + return typeof event === 'boolean' && event; }; /** - * Decodes events non- and indexed parameters. + * The jsonrpc result callback for RequestManager.send + * + * @method _jsonrpcResultCallback + * + * @param {Function} callback the callback to use + * @param {Object} payload the jsonrpc payload + * + * @returns {Function} return callback of form (err, result) * - * @method decodeLog - * @param {Object} inputs - * @param {String} data - * @param {Array} topics - * @return {Array} array of plain params */ -ABICoder.prototype.decodeLog = function (inputs, data, topics) { - var _this = this; - topics = Array.isArray(topics) ? topics : [topics]; - data = data || ''; - var notIndexedInputs = []; - var indexedParams = []; - var topicCount = 0; - // TODO check for anonymous logs? - inputs.forEach(function (input, i) { - if (input.indexed) { - indexedParams[i] = (['bool', 'int', 'uint', 'address', 'fixed', 'ufixed'].find(function (staticType) { - return input.type.indexOf(staticType) !== -1; - })) ? _this.decodeParameter(input.type, topics[topicCount]) : topics[topicCount]; - topicCount++; - } - else { - notIndexedInputs[i] = input; +RequestManager.prototype._jsonrpcResultCallback = function (callback, payload) { + return function (err, result) { + if (result && result.id && payload.id !== result.id) { + return callback(new Error(`Wrong response id ${result.id} (expected: ${payload.id}) in ${JSON.stringify(payload)}`)); } - }); - var nonIndexedData = data; - var notIndexedParams = (nonIndexedData) ? this.decodeParametersWith(notIndexedInputs, nonIndexedData, true) : []; - var returnValue = new Result(); - returnValue.__length__ = 0; - inputs.forEach(function (res, i) { - returnValue[i] = (res.type === 'string') ? '' : null; - if (typeof notIndexedParams[i] !== 'undefined') { - returnValue[i] = notIndexedParams[i]; + if (err) { + return callback(err); } - if (typeof indexedParams[i] !== 'undefined') { - returnValue[i] = indexedParams[i]; + if (result && result.error) { + return callback(errors.ErrorResponse(result)); } - if (res.name) { - returnValue[res.name] = returnValue[i]; + if (!Jsonrpc.isValidResponse(result)) { + return callback(errors.InvalidResponse(result)); } - returnValue.__length__++; - }); - return returnValue; + callback(null, result.result); + }; +}; +module.exports = { + Manager: RequestManager, + BatchManager: BatchManager }; -var coder = new ABICoder(); -module.exports = coder; /***/ }), -/***/ 84390: -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +/***/ 77953: +/***/ ((module) => { "use strict"; /* @@ -42115,241 +49176,143 @@ module.exports = coder; You should have received a copy of the GNU Lesser General Public License along with web3.js. If not, see . */ -/** - * @file iban.js - * - * Details: https://github.com/ethereum/wiki/wiki/ICAP:-Inter-exchange-Client-Address-Protocol - * - * @author Marek Kotewicz - * @date 2015 - */ - -const utils = __webpack_require__(11627); -const BigNumber = __webpack_require__(28891); -const leftPad = function (string, bytes) { - let result = string; - while (result.length < bytes * 2) { - result = '0' + result; - } - return result; -}; -/** - * Prepare an IBAN for mod 97 computation by moving the first 4 chars to the end and transforming the letters to - * numbers (A = 10, B = 11, ..., Z = 35), as specified in ISO13616. - * - * @method iso13616Prepare - * @param {String} iban the IBAN - * @returns {String} the prepared IBAN - */ -const iso13616Prepare = function (iban) { - const A = 'A'.charCodeAt(0); - const Z = 'Z'.charCodeAt(0); - iban = iban.toUpperCase(); - iban = iban.substr(4) + iban.substr(0, 4); - return iban.split('').map(function (n) { - const code = n.charCodeAt(0); - if (code >= A && code <= Z) { - // A = 10, B = 11, ... Z = 35 - return code - A + 10; - } - else { - return n; - } - }).join(''); -}; -/** - * Calculates the MOD 97 10 of the passed IBAN as specified in ISO7064. - * - * @method mod9710 - * @param {String} iban - * @returns {Number} - */ -const mod9710 = function (iban) { - let remainder = iban; - let block; - while (remainder.length > 2) { - block = remainder.slice(0, 9); - remainder = parseInt(block, 10) % 97 + remainder.slice(block.length); - } - return parseInt(remainder, 10) % 97; -}; -/** - * This prototype should be used to create iban object from iban correct string - * - * @param {String} iban - */ -class Iban { - constructor(iban) { - this._iban = iban; - } - /** - * This method should be used to create an ethereum address from a direct iban address - * - * @method toAddress - * @param {String} iban address - * @return {String} the ethereum address - */ - static toAddress(ib) { - ib = new Iban(ib); - if (!ib.isDirect()) { - throw new Error('IBAN is indirect and can\'t be converted'); - } - return ib.toAddress(); - } - /** - * This method should be used to create iban address from an ethereum address - * - * @method toIban - * @param {String} address - * @return {String} the IBAN address - */ - static toIban(address) { - return Iban.fromAddress(address).toString(); - } - /** - * This method should be used to create iban object from an ethereum address - * - * @method fromAddress - * @param {String} address - * @return {Iban} the IBAN object - */ - static fromAddress(address) { - if (!utils.isAddress(address)) { - throw new Error('Provided address is not a valid address: ' + address); - } - address = address.replace('0x', '').replace('0X', ''); - const asBn = new BigNumber(address, 16); - const base36 = asBn.toString(36); - const padded = leftPad(base36, 15); - return Iban.fromBban(padded.toUpperCase()); - } - /** - * Convert the passed BBAN to an IBAN for this country specification. - * Please note that "generation of the IBAN shall be the exclusive responsibility of the bank/branch servicing the account". - * This method implements the preferred algorithm described in http://en.wikipedia.org/wiki/International_Bank_Account_Number#Generating_IBAN_check_digits - * - * @method fromBban - * @param {String} bban the BBAN to convert to IBAN - * @returns {Iban} the IBAN object - */ - static fromBban(bban) { - const countryCode = 'XE'; - const remainder = mod9710(iso13616Prepare(countryCode + '00' + bban)); - const checkDigit = ('0' + (98 - remainder)).slice(-2); - return new Iban(countryCode + checkDigit + bban); - } - /** - * Should be used to create IBAN object for given institution and identifier - * - * @method createIndirect - * @param {Object} options, required options are "institution" and "identifier" - * @return {Iban} the IBAN object - */ - static createIndirect(options) { - return Iban.fromBban('ETH' + options.institution + options.identifier); - } - /** - * This method should be used to check if given string is valid iban object - * - * @method isValid - * @param {String} iban string - * @return {Boolean} true if it is valid IBAN - */ - static isValid(iban) { - const i = new Iban(iban); - return i.isValid(); - } - ; - /** - * Should be called to check if iban is correct - * - * @method isValid - * @returns {Boolean} true if it is, otherwise false - */ - isValid() { - return /^XE[0-9]{2}(ETH[0-9A-Z]{13}|[0-9A-Z]{30,31})$/.test(this._iban) && - mod9710(iso13616Prepare(this._iban)) === 1; - } - ; - /** - * Should be called to check if iban number is direct - * - * @method isDirect - * @returns {Boolean} true if it is, otherwise false - */ - isDirect() { - return this._iban.length === 34 || this._iban.length === 35; - } - ; - /** - * Should be called to check if iban number if indirect - * - * @method isIndirect - * @returns {Boolean} true if it is, otherwise false - */ - isIndirect() { - return this._iban.length === 20; +/** @file jsonrpc.js + * @authors: + * Fabian Vogelsteller + * Marek Kotewicz + * Aaron Kumavis + * @date 2015 + */ + +// Initialize Jsonrpc as a simple object with utility functions. +var Jsonrpc = { + messageId: 0 +}; +/** + * Should be called to valid json create payload object + * + * @method toPayload + * @param {Function} method of jsonrpc call, required + * @param {Array} params, an array of method params, optional + * @returns {Object} valid jsonrpc payload object + */ +Jsonrpc.toPayload = function (method, params) { + if (!method) { + throw new Error('JSONRPC method should be specified for params: "' + JSON.stringify(params) + '"!'); } - ; - /** - * Should be called to get iban checksum - * Uses the mod-97-10 checksumming protocol (ISO/IEC 7064:2003) - * - * @method checksum - * @returns {String} checksum - */ - checksum() { - return this._iban.substr(2, 2); + // advance message ID + Jsonrpc.messageId++; + return { + jsonrpc: '2.0', + id: Jsonrpc.messageId, + method: method, + params: params || [] + }; +}; +/** + * Should be called to check if jsonrpc response is valid + * + * @method isValidResponse + * @param {Object} + * @returns {Boolean} true if response is valid, otherwise false + */ +Jsonrpc.isValidResponse = function (response) { + return Array.isArray(response) ? response.every(validateSingleMessage) : validateSingleMessage(response); + function validateSingleMessage(message) { + return !!message && + !message.error && + message.jsonrpc === '2.0' && + (typeof message.id === 'number' || typeof message.id === 'string') && + message.result !== undefined; // only undefined is not valid json object } - ; - /** - * Should be called to get institution identifier - * eg. XREG - * - * @method institution - * @returns {String} institution identifier - */ - institution() { - return this.isIndirect() ? this._iban.substr(7, 4) : ''; +}; +/** + * Should be called to create batch payload object + * + * @method toBatchPayload + * @param {Array} messages, an array of objects with method (required) and params (optional) fields + * @returns {Array} batch payload + */ +Jsonrpc.toBatchPayload = function (messages) { + return messages.map(function (message) { + return Jsonrpc.toPayload(message.method, message.params); + }); +}; +module.exports = Jsonrpc; + + +/***/ }), + +/***/ 70790: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +/* + This file is part of web3.js. + + web3.js is free software: you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + web3.js is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with web3.js. If not, see . +*/ +/** + * @file index.js + * @author Fabian Vogelsteller + * @date 2017 + */ + +var Subscription = __webpack_require__(48305); +var Subscriptions = function Subscriptions(options) { + this.name = options.name; + this.type = options.type; + this.subscriptions = options.subscriptions || {}; + this.requestManager = null; +}; +Subscriptions.prototype.setRequestManager = function (rm) { + this.requestManager = rm; +}; +Subscriptions.prototype.attachToObject = function (obj) { + var func = this.buildCall(); + var name = this.name.split('.'); + if (name.length > 1) { + obj[name[0]] = obj[name[0]] || {}; + obj[name[0]][name[1]] = func; } - ; - /** - * Should be called to get client identifier within institution - * eg. GAVOFYORK - * - * @method client - * @returns {String} client identifier - */ - client() { - return this.isIndirect() ? this._iban.substr(11) : ''; + else { + obj[name[0]] = func; } - ; - /** - * Should be called to get client direct address - * - * @method toAddress - * @returns {String} ethereum address - */ - toAddress() { - if (this.isDirect()) { - const base36 = this._iban.substr(4); - const asBn = new BigNumber(base36, 36); - return utils.toChecksumAddress(asBn.toString(16, 20)); +}; +Subscriptions.prototype.buildCall = function () { + var _this = this; + return function () { + if (!_this.subscriptions[arguments[0]]) { + console.warn('Subscription ' + JSON.stringify(arguments[0]) + ' doesn\'t exist. Subscribing anyway.'); } - return ''; - } - ; - toString() { - return this._iban; - } - ; -} -module.exports = Iban; + var subscription = new Subscription({ + subscription: _this.subscriptions[arguments[0]] || {}, + requestManager: _this.requestManager, + type: _this.type + }); + return subscription.subscribe.apply(subscription, arguments); + }; +}; +module.exports = { + subscriptions: Subscriptions, + subscription: Subscription +}; /***/ }), -/***/ 41643: +/***/ 48305: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; @@ -42370,320 +49333,336 @@ module.exports = Iban; along with web3.js. If not, see . */ /** - * @file index.js + * @file subscription.js * @author Fabian Vogelsteller * @date 2017 */ -var core = __webpack_require__(43702); -var Method = __webpack_require__(82481); -var utils = __webpack_require__(11627); -var Net = __webpack_require__(88790); +var errors = (__webpack_require__(41032).errors); +var EventEmitter = __webpack_require__(15954); var formatters = (__webpack_require__(41032).formatters); -var Personal = function Personal() { +function identity(value) { + return value; +} +function Subscription(options) { + EventEmitter.call(this); + this.id = null; + this.callback = identity; + this.arguments = null; + this.lastBlock = null; // "from" block tracker for backfilling events on reconnection + this.options = { + subscription: options.subscription, + type: options.type, + requestManager: options.requestManager + }; +} +// INHERIT +Subscription.prototype = Object.create(EventEmitter.prototype); +Subscription.prototype.constructor = Subscription; +/** + * Should be used to extract callback from array of arguments. Modifies input param + * + * @method extractCallback + * @param {Array} arguments + * @return {Function|Null} callback, if exists + */ +Subscription.prototype._extractCallback = function (args) { + if (typeof args[args.length - 1] === 'function') { + return args.pop(); // modify the args array! + } +}; +/** + * Should be called to check if the number of arguments is correct + * + * @method validateArgs + * @param {Array} arguments + * @throws {Error} if it is not + */ +Subscription.prototype._validateArgs = function (args) { + var subscription = this.options.subscription; + if (!subscription) + subscription = {}; + if (!subscription.params) + subscription.params = 0; + if (args.length !== subscription.params) { + throw errors.InvalidNumberOfParams(args.length, subscription.params, subscription.subscriptionName); + } +}; +/** + * Should be called to format input args of method + * + * @method formatInput + * @param {Array} + * @return {Array} + */ +Subscription.prototype._formatInput = function (args) { + var subscription = this.options.subscription; + if (!subscription) { + return args; + } + if (!subscription.inputFormatter) { + return args; + } + var formattedArgs = subscription.inputFormatter.map(function (formatter, index) { + return formatter ? formatter(args[index]) : args[index]; + }); + return formattedArgs; +}; +/** + * Should be called to format output(result) of method + * + * @method formatOutput + * @param result {Object} + * @return {Object} + */ +Subscription.prototype._formatOutput = function (result) { + var subscription = this.options.subscription; + return (subscription && subscription.outputFormatter && result) ? subscription.outputFormatter(result) : result; +}; +/** + * Should create payload from given input args + * + * @method toPayload + * @param {Array} args + * @return {Object} + */ +Subscription.prototype._toPayload = function (args) { + var params = []; + this.callback = this._extractCallback(args) || identity; + if (!this.subscriptionMethod) { + this.subscriptionMethod = args.shift(); + // replace subscription with given name + if (this.options.subscription.subscriptionName) { + this.subscriptionMethod = this.options.subscription.subscriptionName; + } + } + if (!this.arguments) { + this.arguments = this._formatInput(args); + this._validateArgs(this.arguments); + args = []; // make empty after validation + } + // re-add subscriptionName + params.push(this.subscriptionMethod); + params = params.concat(this.arguments); + if (args.length) { + throw new Error('Only a callback is allowed as parameter on an already instantiated subscription.'); + } + return { + method: this.options.type + '_subscribe', + params: params + }; +}; +/** + * Unsubscribes and clears callbacks + * + * @method unsubscribe + * @return {Object} + */ +Subscription.prototype.unsubscribe = function (callback) { + this.options.requestManager.removeSubscription(this.id, callback); + this.id = null; + this.lastBlock = null; + this.removeAllListeners(); +}; +/** + * Subscribes and watches for changes + * + * @method subscribe + * @param {String} subscription the subscription + * @param {Object} options the options object with address topics and fromBlock + * @return {Object} + */ +Subscription.prototype.subscribe = function () { var _this = this; - // sets _requestmanager - core.packageInit(this, arguments); - this.net = new Net(this); - var defaultAccount = null; - var defaultBlock = 'latest'; - Object.defineProperty(this, 'defaultAccount', { - get: function () { - return defaultAccount; - }, - set: function (val) { - if (val) { - defaultAccount = utils.toChecksumAddress(formatters.inputAddressFormatter(val)); + var args = Array.prototype.slice.call(arguments); + var payload = this._toPayload(args); + if (!payload) { + return this; + } + // throw error, if provider is not set + if (!this.options.requestManager.provider) { + setTimeout(function () { + var err1 = new Error('No provider set.'); + _this.callback(err1, null, _this); + _this.emit('error', err1); + }, 0); + return this; + } + // throw error, if provider doesnt support subscriptions + if (!this.options.requestManager.provider.on) { + setTimeout(function () { + var err2 = new Error('The current provider doesn\'t support subscriptions: ' + + _this.options.requestManager.provider.constructor.name); + _this.callback(err2, null, _this); + _this.emit('error', err2); + }, 0); + return this; + } + // Re-subscription only: continue fetching from the last block we received. + // a dropped connection may have resulted in gaps in the logs... + if (this.lastBlock && !!this.options.params && typeof this.options.params === 'object') { + payload.params[1] = this.options.params; + payload.params[1].fromBlock = formatters.inputBlockNumberFormatter(this.lastBlock + 1); + } + // if id is there unsubscribe first + if (this.id) { + this.unsubscribe(); + } + // store the params in the options object + this.options.params = payload.params[1]; + // get past logs, if fromBlock is available + if (payload.params[0] === 'logs' && !!payload.params[1] && typeof payload.params[1] === 'object' && payload.params[1].hasOwnProperty('fromBlock') && isFinite(payload.params[1].fromBlock)) { + // send the subscription request + // copy the params to avoid race-condition with deletion below this block + var blockParams = Object.assign({}, payload.params[1]); + this.options.requestManager.send({ + method: 'eth_getLogs', + params: [blockParams] + }, function (err, logs) { + if (!err) { + logs.forEach(function (log) { + var output = _this._formatOutput(log); + _this.callback(null, output, _this); + _this.emit('data', output); + }); + // TODO subscribe here? after the past logs? } - // update defaultBlock - methods.forEach(function (method) { - method.defaultAccount = defaultAccount; - }); - return val; - }, - enumerable: true - }); - Object.defineProperty(this, 'defaultBlock', { - get: function () { - return defaultBlock; - }, - set: function (val) { - defaultBlock = val; - // update defaultBlock - methods.forEach(function (method) { - method.defaultBlock = defaultBlock; + else { + setTimeout(function () { + _this.callback(err, null, _this); + _this.emit('error', err); + }, 0); + } + }); + } + // create subscription + // TODO move to separate function? so that past logs can go first? + if (typeof payload.params[1] === 'object') + delete payload.params[1].fromBlock; + this.options.requestManager.send(payload, function (err, result) { + if (!err && result) { + _this.id = result; + _this.method = payload.params[0]; + // call callback on notifications + _this.options.requestManager.addSubscription(_this, function (error, result) { + if (!error) { + if (!Array.isArray(result)) { + result = [result]; + } + result.forEach(function (resultItem) { + var output = _this._formatOutput(resultItem); + // Track current block (for gaps introduced by dropped connections) + _this.lastBlock = !!output && typeof output === 'object' ? output.blockNumber : null; + if (typeof _this.options.subscription.subscriptionHandler === 'function') { + return _this.options.subscription.subscriptionHandler.call(_this, output); + } + else { + _this.emit('data', output); + } + // call the callback, last so that unsubscribe there won't affect the emit above + _this.callback(null, output, _this); + }); + } + else { + _this.callback(error, false, _this); + _this.emit('error', error); + } }); - return val; - }, - enumerable: true - }); - var methods = [ - new Method({ - name: 'getAccounts', - call: 'personal_listAccounts', - params: 0, - outputFormatter: utils.toChecksumAddress - }), - new Method({ - name: 'newAccount', - call: 'personal_newAccount', - params: 1, - inputFormatter: [null], - outputFormatter: utils.toChecksumAddress - }), - new Method({ - name: 'unlockAccount', - call: 'personal_unlockAccount', - params: 3, - inputFormatter: [formatters.inputAddressFormatter, null, null] - }), - new Method({ - name: 'lockAccount', - call: 'personal_lockAccount', - params: 1, - inputFormatter: [formatters.inputAddressFormatter] - }), - new Method({ - name: 'importRawKey', - call: 'personal_importRawKey', - params: 2 - }), - new Method({ - name: 'sendTransaction', - call: 'personal_sendTransaction', - params: 2, - inputFormatter: [formatters.inputTransactionFormatter, null] - }), - new Method({ - name: 'signTransaction', - call: 'personal_signTransaction', - params: 2, - inputFormatter: [formatters.inputTransactionFormatter, null] - }), - new Method({ - name: 'sign', - call: 'personal_sign', - params: 3, - inputFormatter: [formatters.inputSignFormatter, formatters.inputAddressFormatter, null] - }), - new Method({ - name: 'ecRecover', - call: 'personal_ecRecover', - params: 2, - inputFormatter: [formatters.inputSignFormatter, null] - }) - ]; - methods.forEach(function (method) { - method.attachToObject(_this); - method.setRequestManager(_this._requestManager); - method.defaultBlock = _this.defaultBlock; - method.defaultAccount = _this.defaultAccount; + _this.emit('connected', result); + } + else { + setTimeout(function () { + _this.callback(err, false, _this); + _this.emit('error', err); + }, 0); + } }); + // return an object to cancel the subscription + return this; }; -core.addProviders(Personal); -module.exports = Personal; +/** + * Resubscribe + * + * @method resubscribe + * + * @returns {void} + */ +Subscription.prototype.resubscribe = function () { + this.options.requestManager.removeSubscription(this.id); // unsubscribe + this.id = null; + this.subscribe(this.callback); +}; +module.exports = Subscription; /***/ }), -/***/ 88790: +/***/ 8117: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; /* - This file is part of web3.js. + This file is part of web3.js. - web3.js is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. + web3.js is free software: you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - web3.js is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. + web3.js is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. - You should have received a copy of the GNU Lesser General Public License - along with web3.js. If not, see . -*/ + You should have received a copy of the GNU Lesser General Public License + along with web3.js. If not, see . + */ /** - * @file index.js + * @file extend.js * @author Fabian Vogelsteller * @date 2017 */ -var core = __webpack_require__(43702); +var formatters = (__webpack_require__(41032).formatters); var Method = __webpack_require__(82481); var utils = __webpack_require__(11627); -var Net = function () { - var _this = this; - // sets _requestmanager - core.packageInit(this, arguments); - [ - new Method({ - name: 'getId', - call: 'net_version', - params: 0, - outputFormatter: parseInt - }), - new Method({ - name: 'isListening', - call: 'net_listening', - params: 0 - }), - new Method({ - name: 'getPeerCount', - call: 'net_peerCount', - params: 0, - outputFormatter: utils.hexToNumber - }) - ].forEach(function (method) { - method.attachToObject(_this); - method.setRequestManager(_this._requestManager); - }); -}; -core.addProviders(Net); -module.exports = Net; - - -/***/ }), - -/***/ 62714: -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -/* - This file is part of web3.js. - - web3.js is free software: you can redistribute it and/or modify - it under the terms of the GNU Lesser General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - web3.js is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public License - along with web3.js. If not, see . -*/ -/** @file httpprovider.js - * @authors: - * Marek Kotewicz - * Marian Oancea - * Fabian Vogelsteller - * @date 2015 - */ -var errors = (__webpack_require__(41032).errors); -var XHR2 = (__webpack_require__(60527)/* .XMLHttpRequest */ .h); // jshint ignore: line -var http = __webpack_require__(98651); -var https = __webpack_require__(2904); -/** - * HttpProvider should be used to send rpc calls over http - */ -var HttpProvider = function HttpProvider(host, options) { - options = options || {}; - this.withCredentials = options.withCredentials || false; - this.timeout = options.timeout || 0; - this.headers = options.headers; - this.agent = options.agent; - this.connected = false; - // keepAlive is true unless explicitly set to false - const keepAlive = options.keepAlive !== false; - this.host = host || 'http://localhost:8545'; - if (!this.agent) { - if (this.host.substring(0, 5) === "https") { - this.httpsAgent = new https.Agent({ keepAlive }); +var extend = function (pckg) { + /* jshint maxcomplexity:5 */ + var ex = function (extension) { + var extendedObject; + if (extension.property) { + if (!pckg[extension.property]) { + pckg[extension.property] = {}; + } + extendedObject = pckg[extension.property]; } else { - this.httpAgent = new http.Agent({ keepAlive }); - } - } -}; -HttpProvider.prototype._prepareRequest = function () { - var request; - // the current runtime is a browser - if (typeof XMLHttpRequest !== 'undefined') { - request = new XMLHttpRequest(); - } - else { - request = new XHR2(); - var agents = { httpsAgent: this.httpsAgent, httpAgent: this.httpAgent, baseUrl: this.baseUrl }; - if (this.agent) { - agents.httpsAgent = this.agent.https; - agents.httpAgent = this.agent.http; - agents.baseUrl = this.agent.baseUrl; + extendedObject = pckg; } - request.nodejsSet(agents); - } - request.open('POST', this.host, true); - request.setRequestHeader('Content-Type', 'application/json'); - request.timeout = this.timeout; - request.withCredentials = this.withCredentials; - if (this.headers) { - this.headers.forEach(function (header) { - request.setRequestHeader(header.name, header.value); - }); - } - return request; -}; -/** - * Should be used to make async request - * - * @method send - * @param {Object} payload - * @param {Function} callback triggered on end with (err, result) - */ -HttpProvider.prototype.send = function (payload, callback) { - var _this = this; - var request = this._prepareRequest(); - request.onreadystatechange = function () { - if (request.readyState === 4 && request.timeout !== 1) { - var result = request.responseText; - var error = null; - try { - result = JSON.parse(result); - } - catch (e) { - error = errors.InvalidResponse(request.responseText); - } - _this.connected = true; - callback(error, result); + if (extension.methods) { + extension.methods.forEach(function (method) { + if (!(method instanceof Method)) { + method = new Method(method); + } + method.attachToObject(extendedObject); + method.setRequestManager(pckg._requestManager); + }); } + return pckg; }; - request.ontimeout = function () { - _this.connected = false; - callback(errors.ConnectionTimeout(this.timeout)); - }; - try { - request.send(JSON.stringify(payload)); - } - catch (error) { - this.connected = false; - callback(errors.InvalidConnection(this.host)); - } -}; -HttpProvider.prototype.disconnect = function () { - //NO OP -}; -/** - * Returns the desired boolean. - * - * @method supportsSubscriptions - * @returns {boolean} - */ -HttpProvider.prototype.supportsSubscriptions = function () { - return false; + ex.formatters = formatters; + ex.utils = utils; + ex.Method = Method; + return ex; }; -module.exports = HttpProvider; +module.exports = extend; /***/ }), -/***/ 89075: +/***/ 43702: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { -"use strict"; /* This file is part of web3.js. @@ -42700,305 +49679,72 @@ module.exports = HttpProvider; You should have received a copy of the GNU Lesser General Public License along with web3.js. If not, see . */ -/** @file index.js - * @authors: - * Fabian Vogelsteller - * @date 2017 - */ - -var errors = (__webpack_require__(41032).errors); -var oboe = __webpack_require__(11595); -var IpcProvider = function IpcProvider(path, net) { - var _this = this; - this.responseCallbacks = {}; - this.notificationCallbacks = []; - this.path = path; - this.connected = false; - this.connection = net.connect({ path: this.path }); - this.addDefaultEvents(); - // LISTEN FOR CONNECTION RESPONSES - var callback = function (result) { - /*jshint maxcomplexity: 6 */ - var id = null; - // get the id which matches the returned id - if (Array.isArray(result)) { - result.forEach(function (load) { - if (_this.responseCallbacks[load.id]) - id = load.id; - }); - } - else { - id = result.id; - } - // notification - if (!id && result.method.indexOf('_subscription') !== -1) { - _this.notificationCallbacks.forEach(function (callback) { - if (typeof callback === 'function') - callback(result); - }); - // fire the callback - } - else if (_this.responseCallbacks[id]) { - _this.responseCallbacks[id](null, result); - delete _this.responseCallbacks[id]; - } - }; - // use oboe.js for Sockets - if (net.constructor.name === 'Socket') { - oboe(this.connection) - .done(callback); - } - else { - this.connection.on('data', function (data) { - _this._parseResponse(data.toString()).forEach(callback); - }); - } -}; -/** -Will add the error and end event to timeout existing calls - -@method addDefaultEvents -*/ -IpcProvider.prototype.addDefaultEvents = function () { - var _this = this; - this.connection.on('connect', function () { - _this.connected = true; - }); - this.connection.on('close', function () { - _this.connected = false; - }); - this.connection.on('error', function () { - _this._timeout(); - }); - this.connection.on('end', function () { - _this._timeout(); - }); - this.connection.on('timeout', function () { - _this._timeout(); - }); -}; -/** - Will parse the response and make an array out of it. - - NOTE, this exists for backwards compatibility reasons. - - @method _parseResponse - @param {String} data - */ -IpcProvider.prototype._parseResponse = function (data) { - var _this = this, returnValues = []; - // DE-CHUNKER - var dechunkedData = data - .replace(/\}[\n\r]?\{/g, '}|--|{') // }{ - .replace(/\}\][\n\r]?\[\{/g, '}]|--|[{') // }][{ - .replace(/\}[\n\r]?\[\{/g, '}|--|[{') // }[{ - .replace(/\}\][\n\r]?\{/g, '}]|--|{') // }]{ - .split('|--|'); - dechunkedData.forEach(function (data) { - // prepend the last chunk - if (_this.lastChunk) - data = _this.lastChunk + data; - var result = null; - try { - result = JSON.parse(data); - } - catch (e) { - _this.lastChunk = data; - // start timeout to cancel all requests - clearTimeout(_this.lastChunkTimeout); - _this.lastChunkTimeout = setTimeout(function () { - _this._timeout(); - throw errors.InvalidResponse(data); - }, 1000 * 15); - return; - } - // cancel timeout and set chunk to null - clearTimeout(_this.lastChunkTimeout); - _this.lastChunk = null; - if (result) - returnValues.push(result); - }); - return returnValues; -}; -/** -Get the adds a callback to the responseCallbacks object, -which will be called if a response matching the response Id will arrive. - -@method _addResponseCallback -*/ -IpcProvider.prototype._addResponseCallback = function (payload, callback) { - var id = payload.id || payload[0].id; - var method = payload.method || payload[0].method; - this.responseCallbacks[id] = callback; - this.responseCallbacks[id].method = method; -}; -/** -Timeout all requests when the end/error event is fired - -@method _timeout -*/ -IpcProvider.prototype._timeout = function () { - for (var key in this.responseCallbacks) { - if (this.responseCallbacks.hasOwnProperty(key)) { - this.responseCallbacks[key](errors.InvalidConnection('on IPC')); - delete this.responseCallbacks[key]; - } - } -}; -/** - Try to reconnect - - @method reconnect - */ -IpcProvider.prototype.reconnect = function () { - this.connection.connect({ path: this.path }); -}; -IpcProvider.prototype.send = function (payload, callback) { - // try reconnect, when connection is gone - if (!this.connection.writable) - this.connection.connect({ path: this.path }); - this.connection.write(JSON.stringify(payload)); - this._addResponseCallback(payload, callback); -}; -/** -Subscribes to provider events.provider - -@method on -@param {String} type 'notification', 'connect', 'error', 'end' or 'data' -@param {Function} callback the callback to call -*/ -IpcProvider.prototype.on = function (type, callback) { - if (typeof callback !== 'function') - throw new Error('The second parameter callback must be a function.'); - switch (type) { - case 'data': - this.notificationCallbacks.push(callback); - break; - // adds error, end, timeout, connect - default: - this.connection.on(type, callback); - break; - } -}; /** - Subscribes to provider events.provider - - @method on - @param {String} type 'connect', 'error', 'end' or 'data' - @param {Function} callback the callback to call + * @file index.js + * @author Fabian Vogelsteller + * @date 2017 */ -IpcProvider.prototype.once = function (type, callback) { - if (typeof callback !== 'function') - throw new Error('The second parameter callback must be a function.'); - this.connection.once(type, callback); -}; -/** -Removes event listener - -@method removeListener -@param {String} type 'data', 'connect', 'error', 'end' or 'data' -@param {Function} callback the callback to call -*/ -IpcProvider.prototype.removeListener = function (type, callback) { - var _this = this; - switch (type) { - case 'data': - this.notificationCallbacks.forEach(function (cb, index) { - if (cb === callback) - _this.notificationCallbacks.splice(index, 1); - }); - break; - default: - this.connection.removeListener(type, callback); - break; - } -}; -/** -Removes all event listeners - -@method removeAllListeners -@param {String} type 'data', 'connect', 'error', 'end' or 'data' -*/ -IpcProvider.prototype.removeAllListeners = function (type) { - switch (type) { - case 'data': - this.notificationCallbacks = []; - break; - default: - this.connection.removeAllListeners(type); - break; +const requestManager = __webpack_require__(617); +const extend = __webpack_require__(8117); +const packageInit = (pkg, args) => { + args = Array.prototype.slice.call(args); + if (!pkg) { + throw new Error('You need to instantiate using the "new" keyword.'); } -}; -/** -Resets the providers, clears all callbacks - -@method reset -*/ -IpcProvider.prototype.reset = function () { - this._timeout(); - this.notificationCallbacks = []; - this.connection.removeAllListeners('error'); - this.connection.removeAllListeners('end'); - this.connection.removeAllListeners('timeout'); - this.addDefaultEvents(); -}; -/** - * Returns the desired boolean. - * - * @method supportsSubscriptions - * @returns {boolean} - */ -IpcProvider.prototype.supportsSubscriptions = function () { - return true; -}; -module.exports = IpcProvider; - - -/***/ }), - -/***/ 46036: -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -/* provided dependency */ var Buffer = __webpack_require__(15313)["Buffer"]; -var isNode = Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]'; -var isRN = typeof navigator !== 'undefined' && navigator.product === 'ReactNative'; -var _btoa = null; -var helpers = null; -if (isNode || isRN) { - _btoa = function (str) { - return Buffer.from(str).toString('base64'); - }; - var url = __webpack_require__(51121); - if (url.URL) { - // Use the new Node 6+ API for parsing URLs that supports username/password - var newURL = url.URL; - helpers = function (url) { - return new newURL(url); - }; + // make property of pkg._provider, which can properly set providers + Object.defineProperty(pkg, 'currentProvider', { + get: () => { + return pkg._provider; + }, + set: (value) => { + return pkg.setProvider(value); + }, + enumerable: true, + configurable: true + }); + // inherit from parent package or create a new RequestManager + if (args[0] && args[0]._requestManager) { + pkg._requestManager = args[0]._requestManager; } else { - // Web3 supports Node.js 5, so fall back to the legacy URL API if necessary - helpers = (__webpack_require__(51121).parse); + pkg._requestManager = new requestManager.Manager(args[0], args[1]); } -} -else { - _btoa = btoa.bind(typeof globalThis === 'object' ? globalThis : self); - helpers = function (url) { - return new URL(url); + // add givenProvider + pkg.givenProvider = requestManager.Manager.givenProvider; + pkg.providers = requestManager.Manager.providers; + pkg._provider = pkg._requestManager.provider; + // add SETPROVIDER function (don't overwrite if already existing) + if (!pkg.setProvider) { + pkg.setProvider = (provider, net) => { + pkg._requestManager.setProvider(provider, net); + pkg._provider = pkg._requestManager.provider; + return true; + }; + } + pkg.setRequestManager = (manager) => { + pkg._requestManager = manager; + pkg._provider = manager.provider; }; -} + // attach batch request creation + pkg.BatchRequest = requestManager.BatchManager.bind(null, pkg._requestManager); + // attach extend function + pkg.extend = extend(pkg); +}; +const addProviders = (pkg) => { + pkg.givenProvider = requestManager.Manager.givenProvider; + pkg.providers = requestManager.Manager.providers; +}; module.exports = { - parseURL: helpers, - btoa: _btoa + packageInit, + addProviders }; /***/ }), -/***/ 80698: +/***/ 9177: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { -"use strict"; /* This file is part of web3.js. @@ -43016,349 +49762,616 @@ module.exports = { along with web3.js. If not, see . */ /** - * @file WebsocketProvider.js - * @authors: Samuel Furter , Fabian Vogelsteller - * @date 2019 + * @file index.js + * @author Marek Kotewicz + * @author Fabian Vogelsteller + * @date 2018 */ - -var EventEmitter = __webpack_require__(15954); -var helpers = __webpack_require__(46036); -var errors = (__webpack_require__(41032).errors); -var Ws = (__webpack_require__(43825).w3cwebsocket); +var Buffer = (__webpack_require__(15313).Buffer); +var utils = __webpack_require__(11627); +var EthersAbiCoder = (__webpack_require__(27090)/* .AbiCoder */ .RQ); +var ParamType = (__webpack_require__(27090)/* .ParamType */ ._R); +var ethersAbiCoder = new EthersAbiCoder(function (type, value) { + if (type.match(/^u?int/) && !Array.isArray(value) && (!(!!value && typeof value === 'object') || value.constructor.name !== 'BN')) { + return value.toString(); + } + return value; +}); +// result method +function Result() { +} /** - * @param {string} url - * @param {Object} options + * ABICoder prototype should be used to encode/decode solidity params of any type + */ +var ABICoder = function () { +}; +/** + * Encodes the function name to its ABI representation, which are the first 4 bytes of the sha3 of the function name including types. * - * @constructor + * @method encodeFunctionSignature + * @param {String|Object} functionName + * @return {String} encoded function name */ -var WebsocketProvider = function WebsocketProvider(url, options) { - EventEmitter.call(this); - options = options || {}; - this.url = url; - this._customTimeout = options.timeout || 1000 * 15; - this.headers = options.headers || {}; - this.protocol = options.protocol || undefined; - this.reconnectOptions = Object.assign({ - auto: false, - delay: 5000, - maxAttempts: false, - onTimeout: false - }, options.reconnect); - this.clientConfig = options.clientConfig || undefined; // Allow a custom client configuration - this.requestOptions = options.requestOptions || undefined; // Allow a custom request options (https://github.com/theturtle32/WebSocket-Node/blob/master/docs/WebSocketClient.md#connectrequesturl-requestedprotocols-origin-headers-requestoptions) - this.DATA = 'data'; - this.CLOSE = 'close'; - this.ERROR = 'error'; - this.CONNECT = 'connect'; - this.RECONNECT = 'reconnect'; - this.connection = null; - this.requestQueue = new Map(); - this.responseQueue = new Map(); - this.reconnectAttempts = 0; - this.reconnecting = false; - // The w3cwebsocket implementation does not support Basic Auth - // username/password in the URL. So generate the basic auth header, and - // pass through with any additional headers supplied in constructor - var parsedURL = helpers.parseURL(url); - if (parsedURL.username && parsedURL.password) { - this.headers.authorization = 'Basic ' + helpers.btoa(parsedURL.username + ':' + parsedURL.password); +ABICoder.prototype.encodeFunctionSignature = function (functionName) { + if (typeof functionName === 'function' || typeof functionName === 'object' && functionName) { + functionName = utils._jsonInterfaceMethodToString(functionName); } - // When all node core implementations that do not have the - // WHATWG compatible URL parser go out of service this line can be removed. - if (parsedURL.auth) { - this.headers.authorization = 'Basic ' + helpers.btoa(parsedURL.auth); + return utils.sha3(functionName).slice(0, 10); +}; +/** + * Encodes the function name to its ABI representation, which are the first 4 bytes of the sha3 of the function name including types. + * + * @method encodeEventSignature + * @param {String|Object} functionName + * @return {String} encoded function name + */ +ABICoder.prototype.encodeEventSignature = function (functionName) { + if (typeof functionName === 'function' || typeof functionName === 'object' && functionName) { + functionName = utils._jsonInterfaceMethodToString(functionName); } - // make property `connected` which will return the current connection status - Object.defineProperty(this, 'connected', { - get: function () { - return this.connection && this.connection.readyState === this.connection.OPEN; - }, - enumerable: true - }); - this.connect(); + return utils.sha3(functionName); }; -// Inherit from EventEmitter -WebsocketProvider.prototype = Object.create(EventEmitter.prototype); -WebsocketProvider.prototype.constructor = WebsocketProvider; /** - * Connects to the configured node + * Should be used to encode plain param * - * @method connect + * @method encodeParameter * - * @returns {void} + * @param {String|Object} type + * @param {any} param + * + * @return {String} encoded plain param */ -WebsocketProvider.prototype.connect = function () { - this.connection = new Ws(this.url, this.protocol, undefined, this.headers, this.requestOptions, this.clientConfig); - this._addSocketListeners(); +ABICoder.prototype.encodeParameter = function (type, param) { + return this.encodeParameters([type], [param]); }; /** - * Listener for the `data` event of the underlying WebSocket object + * Should be used to encode list of params * - * @method _onMessage + * @method encodeParameters * - * @returns {void} + * @param {Array} types + * @param {Array} params + * + * @return {String} encoded list of params */ -WebsocketProvider.prototype._onMessage = function (e) { - var _this = this; - this._parseResponse((typeof e.data === 'string') ? e.data : '').forEach(function (result) { - if (result.method && result.method.indexOf('_subscription') !== -1) { - _this.emit(_this.DATA, result); - return; +ABICoder.prototype.encodeParameters = function (types, params) { + var self = this; + types = self.mapTypes(types); + params = params.map(function (param, index) { + let type = types[index]; + if (typeof type === 'object' && type.type) { + // We may get a named type of shape {name, type} + type = type.type; } - var id = result.id; - // get the id which matches the returned id - if (Array.isArray(result)) { - id = result[0].id; + param = self.formatParam(type, param); + // Format params for tuples + if (typeof type === 'string' && type.includes('tuple')) { + const coder = ethersAbiCoder._getCoder(ParamType.from(type)); + const modifyParams = (coder, param) => { + if (coder.name === 'array') { + return param.map(p => modifyParams(ethersAbiCoder._getCoder(ParamType.from(coder.type.replace('[]', ''))), p)); + } + coder.coders.forEach((c, i) => { + if (c.name === 'tuple') { + modifyParams(c, param[i]); + } + else { + param[i] = self.formatParam(c.name, param[i]); + } + }); + }; + modifyParams(coder, param); } - if (_this.responseQueue.has(id)) { - if (_this.responseQueue.get(id).callback !== undefined) { - _this.responseQueue.get(id).callback(false, result); - } - _this.responseQueue.delete(id); + return param; + }); + return ethersAbiCoder.encode(types, params); +}; +/** + * Map types if simplified format is used + * + * @method mapTypes + * @param {Array} types + * @return {Array} + */ +ABICoder.prototype.mapTypes = function (types) { + var self = this; + var mappedTypes = []; + types.forEach(function (type) { + // Remap `function` type params to bytes24 since Ethers does not + // recognize former type. Solidity docs say `Function` is a bytes24 + // encoding the contract address followed by the function selector hash. + if (typeof type === 'object' && type.type === 'function') { + type = Object.assign({}, type, { type: "bytes24" }); + } + if (self.isSimplifiedStructFormat(type)) { + var structName = Object.keys(type)[0]; + mappedTypes.push(Object.assign(self.mapStructNameAndType(structName), { + components: self.mapStructToCoderFormat(type[structName]) + })); + return; } + mappedTypes.push(type); }); + return mappedTypes; }; /** - * Listener for the `open` event of the underlying WebSocket object + * Check if type is simplified struct format * - * @method _onConnect + * @method isSimplifiedStructFormat + * @param {string | Object} type + * @returns {boolean} + */ +ABICoder.prototype.isSimplifiedStructFormat = function (type) { + return typeof type === 'object' && typeof type.components === 'undefined' && typeof type.name === 'undefined'; +}; +/** + * Maps the correct tuple type and name when the simplified format in encode/decodeParameter is used * - * @returns {void} + * @method mapStructNameAndType + * @param {string} structName + * @return {{type: string, name: *}} */ -WebsocketProvider.prototype._onConnect = function () { - this.emit(this.CONNECT); - this.reconnectAttempts = 0; - this.reconnecting = false; - if (this.requestQueue.size > 0) { - var _this = this; - this.requestQueue.forEach(function (request, key) { - _this.send(request.payload, request.callback); - _this.requestQueue.delete(key); - }); +ABICoder.prototype.mapStructNameAndType = function (structName) { + var type = 'tuple'; + if (structName.indexOf('[]') > -1) { + type = 'tuple[]'; + structName = structName.slice(0, -2); } + return { type: type, name: structName }; }; /** - * Listener for the `close` event of the underlying WebSocket object + * Maps the simplified format in to the expected format of the ABICoder * - * @method _onClose + * @method mapStructToCoderFormat + * @param {Object} struct + * @return {Array} + */ +ABICoder.prototype.mapStructToCoderFormat = function (struct) { + var self = this; + var components = []; + Object.keys(struct).forEach(function (key) { + if (typeof struct[key] === 'object') { + components.push(Object.assign(self.mapStructNameAndType(key), { + components: self.mapStructToCoderFormat(struct[key]) + })); + return; + } + components.push({ + name: key, + type: struct[key] + }); + }); + return components; +}; +/** + * Handle some formatting of params for backwards compatability with Ethers V4 * - * @returns {void} + * @method formatParam + * @param {String} - type + * @param {any} - param + * @return {any} - The formatted param */ -WebsocketProvider.prototype._onClose = function (event) { - var _this = this; - if (this.reconnectOptions.auto && (![1000, 1001].includes(event.code) || event.wasClean === false)) { - this.reconnect(); - return; +ABICoder.prototype.formatParam = function (type, param) { + const paramTypeBytes = new RegExp(/^bytes([0-9]*)$/); + const paramTypeBytesArray = new RegExp(/^bytes([0-9]*)\[\]$/); + const paramTypeNumber = new RegExp(/^(u?int)([0-9]*)$/); + const paramTypeNumberArray = new RegExp(/^(u?int)([0-9]*)\[\]$/); + // Format BN to string + if (utils.isBN(param) || utils.isBigNumber(param)) { + return param.toString(10); } - this.emit(this.CLOSE, event); - if (this.requestQueue.size > 0) { - this.requestQueue.forEach(function (request, key) { - request.callback(errors.ConnectionNotOpenError(event)); - _this.requestQueue.delete(key); - }); + if (type.match(paramTypeBytesArray) || type.match(paramTypeNumberArray)) { + return param.map(p => this.formatParam(type.replace('[]', ''), p)); } - if (this.responseQueue.size > 0) { - this.responseQueue.forEach(function (request, key) { - request.callback(errors.InvalidConnection('on WS', event)); - _this.responseQueue.delete(key); - }); + // Format correct width for u?int[0-9]* + let match = type.match(paramTypeNumber); + if (match) { + let size = parseInt(match[2] || "256"); + if (size / 8 < param.length) { + // pad to correct bit width + param = utils.leftPad(param, size); + } } - this._removeSocketListeners(); - this.removeAllListeners(); + // Format correct length for bytes[0-9]+ + match = type.match(paramTypeBytes); + if (match) { + if (Buffer.isBuffer(param)) { + param = utils.toHex(param); + } + // format to correct length + let size = parseInt(match[1]); + if (size) { + let maxSize = size * 2; + if (param.substring(0, 2) === '0x') { + maxSize += 2; + } + if (param.length < maxSize) { + // pad to correct length + param = utils.rightPad(param, size * 2); + } + } + // format odd-length bytes to even-length + if (param.length % 2 === 1) { + param = '0x0' + param.substring(2); + } + } + return param; }; /** - * Will add the required socket listeners - * - * @method _addSocketListeners + * Encodes a function call from its json interface and parameters. * - * @returns {void} + * @method encodeFunctionCall + * @param {Array} jsonInterface + * @param {Array} params + * @return {String} The encoded ABI for this function call */ -WebsocketProvider.prototype._addSocketListeners = function () { - this.connection.addEventListener('message', this._onMessage.bind(this)); - this.connection.addEventListener('open', this._onConnect.bind(this)); - this.connection.addEventListener('close', this._onClose.bind(this)); +ABICoder.prototype.encodeFunctionCall = function (jsonInterface, params) { + return this.encodeFunctionSignature(jsonInterface) + this.encodeParameters(jsonInterface.inputs, params).replace('0x', ''); }; /** - * Will remove all socket listeners + * Should be used to decode bytes to plain param * - * @method _removeSocketListeners + * @method decodeParameter + * @param {String} type + * @param {String} bytes + * @return {Object} plain param + */ +ABICoder.prototype.decodeParameter = function (type, bytes) { + return this.decodeParameters([type], bytes)[0]; +}; +/** + * Should be used to decode list of params * - * @returns {void} + * @method decodeParameter + * @param {Array} outputs + * @param {String} bytes + * @return {Array} array of plain params */ -WebsocketProvider.prototype._removeSocketListeners = function () { - this.connection.removeEventListener('message', this._onMessage); - this.connection.removeEventListener('open', this._onConnect); - this.connection.removeEventListener('close', this._onClose); +ABICoder.prototype.decodeParameters = function (outputs, bytes) { + return this.decodeParametersWith(outputs, bytes, false); }; /** - * Will parse the response and make an array out of it. + * Should be used to decode list of params * - * @method _parseResponse + * @method decodeParameter + * @param {Array} outputs + * @param {String} bytes + * @param {Boolean} loose + * @return {Array} array of plain params + */ +ABICoder.prototype.decodeParametersWith = function (outputs, bytes, loose) { + if (outputs.length > 0 && (!bytes || bytes === '0x' || bytes === '0X')) { + throw new Error('Returned values aren\'t valid, did it run Out of Gas? ' + + 'You might also see this error if you are not using the ' + + 'correct ABI for the contract you are retrieving data from, ' + + 'requesting data from a block number that does not exist, ' + + 'or querying a node which is not fully synced.'); + } + var res = ethersAbiCoder.decode(this.mapTypes(outputs), '0x' + bytes.replace(/0x/i, ''), loose); + var returnValue = new Result(); + returnValue.__length__ = 0; + outputs.forEach(function (output, i) { + var decodedValue = res[returnValue.__length__]; + const isStringObject = typeof output === 'object' && output.type && output.type === 'string'; + const isStringType = typeof output === 'string' && output === 'string'; + // only convert `0x` to null if it's not string value + decodedValue = (decodedValue === '0x' && !isStringObject && !isStringType) ? null : decodedValue; + returnValue[i] = decodedValue; + if ((typeof output === 'function' || !!output && typeof output === 'object') && output.name) { + returnValue[output.name] = decodedValue; + } + returnValue.__length__++; + }); + return returnValue; +}; +/** + * Decodes events non- and indexed parameters. * + * @method decodeLog + * @param {Object} inputs * @param {String} data - * - * @returns {Array} + * @param {Array} topics + * @return {Array} array of plain params */ -WebsocketProvider.prototype._parseResponse = function (data) { - var _this = this, returnValues = []; - // DE-CHUNKER - var dechunkedData = data - .replace(/\}[\n\r]?\{/g, '}|--|{') // }{ - .replace(/\}\][\n\r]?\[\{/g, '}]|--|[{') // }][{ - .replace(/\}[\n\r]?\[\{/g, '}|--|[{') // }[{ - .replace(/\}\][\n\r]?\{/g, '}]|--|{') // }]{ - .split('|--|'); - dechunkedData.forEach(function (data) { - // prepend the last chunk - if (_this.lastChunk) - data = _this.lastChunk + data; - var result = null; - try { - result = JSON.parse(data); +ABICoder.prototype.decodeLog = function (inputs, data, topics) { + var _this = this; + topics = Array.isArray(topics) ? topics : [topics]; + data = data || ''; + var notIndexedInputs = []; + var indexedParams = []; + var topicCount = 0; + // TODO check for anonymous logs? + inputs.forEach(function (input, i) { + if (input.indexed) { + indexedParams[i] = (['bool', 'int', 'uint', 'address', 'fixed', 'ufixed'].find(function (staticType) { + return input.type.indexOf(staticType) !== -1; + })) ? _this.decodeParameter(input.type, topics[topicCount]) : topics[topicCount]; + topicCount++; } - catch (e) { - _this.lastChunk = data; - // start timeout to cancel all requests - clearTimeout(_this.lastChunkTimeout); - _this.lastChunkTimeout = setTimeout(function () { - if (_this.reconnectOptions.auto && _this.reconnectOptions.onTimeout) { - _this.reconnect(); - return; - } - _this.emit(_this.ERROR, errors.ConnectionTimeout(_this._customTimeout)); - if (_this.requestQueue.size > 0) { - _this.requestQueue.forEach(function (request, key) { - request.callback(errors.ConnectionTimeout(_this._customTimeout)); - _this.requestQueue.delete(key); - }); - } - }, _this._customTimeout); - return; + else { + notIndexedInputs[i] = input; + } + }); + var nonIndexedData = data; + var notIndexedParams = (nonIndexedData) ? this.decodeParametersWith(notIndexedInputs, nonIndexedData, true) : []; + var returnValue = new Result(); + returnValue.__length__ = 0; + inputs.forEach(function (res, i) { + returnValue[i] = (res.type === 'string') ? '' : null; + if (typeof notIndexedParams[i] !== 'undefined') { + returnValue[i] = notIndexedParams[i]; + } + if (typeof indexedParams[i] !== 'undefined') { + returnValue[i] = indexedParams[i]; + } + if (res.name) { + returnValue[res.name] = returnValue[i]; } - // cancel timeout and set chunk to null - clearTimeout(_this.lastChunkTimeout); - _this.lastChunk = null; - if (result) - returnValues.push(result); + returnValue.__length__++; }); - return returnValues; + return returnValue; }; +var coder = new ABICoder(); +module.exports = coder; + + +/***/ }), + +/***/ 84390: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +/* + This file is part of web3.js. + + web3.js is free software: you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + web3.js is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public License + along with web3.js. If not, see . +*/ /** - * Does check if the provider is connecting and will add it to the queue or will send it directly - * - * @method send + * @file iban.js * - * @param {Object} payload - * @param {Function} callback + * Details: https://github.com/ethereum/wiki/wiki/ICAP:-Inter-exchange-Client-Address-Protocol * - * @returns {void} + * @author Marek Kotewicz + * @date 2015 */ -WebsocketProvider.prototype.send = function (payload, callback) { - var _this = this; - var id = payload.id; - var request = { payload: payload, callback: callback }; - if (Array.isArray(payload)) { - id = payload[0].id; - } - if (this.connection.readyState === this.connection.CONNECTING || this.reconnecting) { - this.requestQueue.set(id, request); - return; - } - if (this.connection.readyState !== this.connection.OPEN) { - this.requestQueue.delete(id); - this.emit(this.ERROR, errors.ConnectionNotOpenError()); - request.callback(errors.ConnectionNotOpenError()); - return; - } - this.responseQueue.set(id, request); - this.requestQueue.delete(id); - try { - this.connection.send(JSON.stringify(request.payload)); - } - catch (error) { - request.callback(error); - _this.responseQueue.delete(id); + +const utils = __webpack_require__(11627); +const BigNumber = __webpack_require__(28891); +const leftPad = function (string, bytes) { + let result = string; + while (result.length < bytes * 2) { + result = '0' + result; } + return result; }; /** - * Resets the providers, clears all callbacks - * - * @method reset - * - * @returns {void} - */ -WebsocketProvider.prototype.reset = function () { - this.responseQueue.clear(); - this.requestQueue.clear(); - this.removeAllListeners(); - this._removeSocketListeners(); - this._addSocketListeners(); -}; -/** - * Closes the current connection with the given code and reason arguments - * - * @method disconnect - * - * @param {number} code - * @param {string} reason + * Prepare an IBAN for mod 97 computation by moving the first 4 chars to the end and transforming the letters to + * numbers (A = 10, B = 11, ..., Z = 35), as specified in ISO13616. * - * @returns {void} + * @method iso13616Prepare + * @param {String} iban the IBAN + * @returns {String} the prepared IBAN */ -WebsocketProvider.prototype.disconnect = function (code, reason) { - this._removeSocketListeners(); - this.connection.close(code || 1000, reason); +const iso13616Prepare = function (iban) { + const A = 'A'.charCodeAt(0); + const Z = 'Z'.charCodeAt(0); + iban = iban.toUpperCase(); + iban = iban.substr(4) + iban.substr(0, 4); + return iban.split('').map(function (n) { + const code = n.charCodeAt(0); + if (code >= A && code <= Z) { + // A = 10, B = 11, ... Z = 35 + return code - A + 10; + } + else { + return n; + } + }).join(''); }; /** - * Returns the desired boolean. - * - * @method supportsSubscriptions + * Calculates the MOD 97 10 of the passed IBAN as specified in ISO7064. * - * @returns {boolean} + * @method mod9710 + * @param {String} iban + * @returns {Number} */ -WebsocketProvider.prototype.supportsSubscriptions = function () { - return true; +const mod9710 = function (iban) { + let remainder = iban; + let block; + while (remainder.length > 2) { + block = remainder.slice(0, 9); + remainder = parseInt(block, 10) % 97 + remainder.slice(block.length); + } + return parseInt(remainder, 10) % 97; }; /** - * Removes the listeners and reconnects to the socket. - * - * @method reconnect + * This prototype should be used to create iban object from iban correct string * - * @returns {void} + * @param {String} iban */ -WebsocketProvider.prototype.reconnect = function () { - var _this = this; - this.reconnecting = true; - if (this.responseQueue.size > 0) { - this.responseQueue.forEach(function (request, key) { - request.callback(errors.PendingRequestsOnReconnectingError()); - _this.responseQueue.delete(key); - }); +class Iban { + constructor(iban) { + this._iban = iban; } - if (!this.reconnectOptions.maxAttempts || - this.reconnectAttempts < this.reconnectOptions.maxAttempts) { - setTimeout(function () { - _this.reconnectAttempts++; - _this._removeSocketListeners(); - _this.emit(_this.RECONNECT, _this.reconnectAttempts); - _this.connect(); - }, this.reconnectOptions.delay); - return; + /** + * This method should be used to create an ethereum address from a direct iban address + * + * @method toAddress + * @param {String} iban address + * @return {String} the ethereum address + */ + static toAddress(ib) { + ib = new Iban(ib); + if (!ib.isDirect()) { + throw new Error('IBAN is indirect and can\'t be converted'); + } + return ib.toAddress(); } - this.emit(this.ERROR, errors.MaxAttemptsReachedOnReconnectingError()); - this.reconnecting = false; - if (this.requestQueue.size > 0) { - this.requestQueue.forEach(function (request, key) { - request.callback(errors.MaxAttemptsReachedOnReconnectingError()); - _this.requestQueue.delete(key); - }); + /** + * This method should be used to create iban address from an ethereum address + * + * @method toIban + * @param {String} address + * @return {String} the IBAN address + */ + static toIban(address) { + return Iban.fromAddress(address).toString(); } -}; -module.exports = WebsocketProvider; + /** + * This method should be used to create iban object from an ethereum address + * + * @method fromAddress + * @param {String} address + * @return {Iban} the IBAN object + */ + static fromAddress(address) { + if (!utils.isAddress(address)) { + throw new Error('Provided address is not a valid address: ' + address); + } + address = address.replace('0x', '').replace('0X', ''); + const asBn = new BigNumber(address, 16); + const base36 = asBn.toString(36); + const padded = leftPad(base36, 15); + return Iban.fromBban(padded.toUpperCase()); + } + /** + * Convert the passed BBAN to an IBAN for this country specification. + * Please note that "generation of the IBAN shall be the exclusive responsibility of the bank/branch servicing the account". + * This method implements the preferred algorithm described in http://en.wikipedia.org/wiki/International_Bank_Account_Number#Generating_IBAN_check_digits + * + * @method fromBban + * @param {String} bban the BBAN to convert to IBAN + * @returns {Iban} the IBAN object + */ + static fromBban(bban) { + const countryCode = 'XE'; + const remainder = mod9710(iso13616Prepare(countryCode + '00' + bban)); + const checkDigit = ('0' + (98 - remainder)).slice(-2); + return new Iban(countryCode + checkDigit + bban); + } + /** + * Should be used to create IBAN object for given institution and identifier + * + * @method createIndirect + * @param {Object} options, required options are "institution" and "identifier" + * @return {Iban} the IBAN object + */ + static createIndirect(options) { + return Iban.fromBban('ETH' + options.institution + options.identifier); + } + /** + * This method should be used to check if given string is valid iban object + * + * @method isValid + * @param {String} iban string + * @return {Boolean} true if it is valid IBAN + */ + static isValid(iban) { + const i = new Iban(iban); + return i.isValid(); + } + ; + /** + * Should be called to check if iban is correct + * + * @method isValid + * @returns {Boolean} true if it is, otherwise false + */ + isValid() { + return /^XE[0-9]{2}(ETH[0-9A-Z]{13}|[0-9A-Z]{30,31})$/.test(this._iban) && + mod9710(iso13616Prepare(this._iban)) === 1; + } + ; + /** + * Should be called to check if iban number is direct + * + * @method isDirect + * @returns {Boolean} true if it is, otherwise false + */ + isDirect() { + return this._iban.length === 34 || this._iban.length === 35; + } + ; + /** + * Should be called to check if iban number if indirect + * + * @method isIndirect + * @returns {Boolean} true if it is, otherwise false + */ + isIndirect() { + return this._iban.length === 20; + } + ; + /** + * Should be called to get iban checksum + * Uses the mod-97-10 checksumming protocol (ISO/IEC 7064:2003) + * + * @method checksum + * @returns {String} checksum + */ + checksum() { + return this._iban.substr(2, 2); + } + ; + /** + * Should be called to get institution identifier + * eg. XREG + * + * @method institution + * @returns {String} institution identifier + */ + institution() { + return this.isIndirect() ? this._iban.substr(7, 4) : ''; + } + ; + /** + * Should be called to get client identifier within institution + * eg. GAVOFYORK + * + * @method client + * @returns {String} client identifier + */ + client() { + return this.isIndirect() ? this._iban.substr(11) : ''; + } + ; + /** + * Should be called to get client direct address + * + * @method toAddress + * @returns {String} ethereum address + */ + toAddress() { + if (this.isDirect()) { + const base36 = this._iban.substr(4); + const asBn = new BigNumber(base36, 36); + return utils.toChecksumAddress(asBn.toString(16, 20)); + } + return ''; + } + ; + toString() { + return this._iban; + } + ; +} +module.exports = Iban; /***/ }), -/***/ 90873: +/***/ 41643: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; @@ -43385,1507 +50398,1820 @@ module.exports = WebsocketProvider; */ var core = __webpack_require__(43702); -var Subscriptions = (__webpack_require__(70790).subscriptions); var Method = __webpack_require__(82481); -// var formatters = require('web3-core-helpers').formatters; +var utils = __webpack_require__(11627); var Net = __webpack_require__(88790); -var Shh = function Shh() { +var formatters = (__webpack_require__(41032).formatters); +var Personal = function Personal() { var _this = this; // sets _requestmanager core.packageInit(this, arguments); - // overwrite package setRequestManager - var setRequestManager = this.setRequestManager; - this.setRequestManager = function (manager) { - setRequestManager(manager); - _this.net.setRequestManager(manager); - return true; - }; - // overwrite setProvider - var setProvider = this.setProvider; - this.setProvider = function () { - setProvider.apply(_this, arguments); - _this.setRequestManager(_this._requestManager); - }; this.net = new Net(this); - [ - new Subscriptions({ - name: 'subscribe', - type: 'shh', - subscriptions: { - 'messages': { - params: 1 - // inputFormatter: [formatters.inputPostFormatter], - // outputFormatter: formatters.outputPostFormatter - } + var defaultAccount = null; + var defaultBlock = 'latest'; + Object.defineProperty(this, 'defaultAccount', { + get: function () { + return defaultAccount; + }, + set: function (val) { + if (val) { + defaultAccount = utils.toChecksumAddress(formatters.inputAddressFormatter(val)); } - }), - new Method({ - name: 'getVersion', - call: 'shh_version', - params: 0 - }), - new Method({ - name: 'getInfo', - call: 'shh_info', - params: 0 - }), - new Method({ - name: 'setMaxMessageSize', - call: 'shh_setMaxMessageSize', - params: 1 - }), - new Method({ - name: 'setMinPoW', - call: 'shh_setMinPoW', - params: 1 - }), - new Method({ - name: 'markTrustedPeer', - call: 'shh_markTrustedPeer', - params: 1 - }), - new Method({ - name: 'newKeyPair', - call: 'shh_newKeyPair', - params: 0 - }), - new Method({ - name: 'addPrivateKey', - call: 'shh_addPrivateKey', - params: 1 - }), - new Method({ - name: 'deleteKeyPair', - call: 'shh_deleteKeyPair', - params: 1 - }), - new Method({ - name: 'hasKeyPair', - call: 'shh_hasKeyPair', - params: 1 - }), - new Method({ - name: 'getPublicKey', - call: 'shh_getPublicKey', - params: 1 - }), - new Method({ - name: 'getPrivateKey', - call: 'shh_getPrivateKey', - params: 1 - }), - new Method({ - name: 'newSymKey', - call: 'shh_newSymKey', - params: 0 - }), - new Method({ - name: 'addSymKey', - call: 'shh_addSymKey', - params: 1 - }), - new Method({ - name: 'generateSymKeyFromPassword', - call: 'shh_generateSymKeyFromPassword', - params: 1 - }), + // update defaultBlock + methods.forEach(function (method) { + method.defaultAccount = defaultAccount; + }); + return val; + }, + enumerable: true + }); + Object.defineProperty(this, 'defaultBlock', { + get: function () { + return defaultBlock; + }, + set: function (val) { + defaultBlock = val; + // update defaultBlock + methods.forEach(function (method) { + method.defaultBlock = defaultBlock; + }); + return val; + }, + enumerable: true + }); + var methods = [ new Method({ - name: 'hasSymKey', - call: 'shh_hasSymKey', - params: 1 + name: 'getAccounts', + call: 'personal_listAccounts', + params: 0, + outputFormatter: utils.toChecksumAddress }), new Method({ - name: 'getSymKey', - call: 'shh_getSymKey', - params: 1 + name: 'newAccount', + call: 'personal_newAccount', + params: 1, + inputFormatter: [null], + outputFormatter: utils.toChecksumAddress }), new Method({ - name: 'deleteSymKey', - call: 'shh_deleteSymKey', - params: 1 + name: 'unlockAccount', + call: 'personal_unlockAccount', + params: 3, + inputFormatter: [formatters.inputAddressFormatter, null, null] }), new Method({ - name: 'newMessageFilter', - call: 'shh_newMessageFilter', - params: 1 + name: 'lockAccount', + call: 'personal_lockAccount', + params: 1, + inputFormatter: [formatters.inputAddressFormatter] }), new Method({ - name: 'getFilterMessages', - call: 'shh_getFilterMessages', - params: 1 + name: 'importRawKey', + call: 'personal_importRawKey', + params: 2 }), new Method({ - name: 'deleteMessageFilter', - call: 'shh_deleteMessageFilter', - params: 1 + name: 'sendTransaction', + call: 'personal_sendTransaction', + params: 2, + inputFormatter: [formatters.inputTransactionFormatter, null] }), new Method({ - name: 'post', - call: 'shh_post', - params: 1, - inputFormatter: [null] + name: 'signTransaction', + call: 'personal_signTransaction', + params: 2, + inputFormatter: [formatters.inputTransactionFormatter, null] }), new Method({ - name: 'unsubscribe', - call: 'shh_unsubscribe', - params: 1 + name: 'sign', + call: 'personal_sign', + params: 3, + inputFormatter: [formatters.inputSignFormatter, formatters.inputAddressFormatter, null] + }), + new Method({ + name: 'ecRecover', + call: 'personal_ecRecover', + params: 2, + inputFormatter: [formatters.inputSignFormatter, null] }) - ].forEach(function (method) { + ]; + methods.forEach(function (method) { method.attachToObject(_this); method.setRequestManager(_this._requestManager); + method.defaultBlock = _this.defaultBlock; + method.defaultAccount = _this.defaultAccount; }); }; -Shh.prototype.clearSubscriptions = function () { - this._requestManager.clearSubscriptions(); -}; -core.addProviders(Shh); -module.exports = Shh; +core.addProviders(Personal); +module.exports = Personal; /***/ }), -/***/ 43825: +/***/ 88790: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { -var _globalThis; -if (typeof globalThis === 'object') { - _globalThis = globalThis; -} else { - try { - _globalThis = __webpack_require__(75764); - } catch (error) { - } finally { - if (!_globalThis && typeof window !== 'undefined') { _globalThis = window; } - if (!_globalThis) { throw new Error('Could not determine global this'); } - } -} +"use strict"; +/* + This file is part of web3.js. -var NativeWebSocket = _globalThis.WebSocket || _globalThis.MozWebSocket; -var websocket_version = __webpack_require__(53605); + web3.js is free software: you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + web3.js is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. + You should have received a copy of the GNU Lesser General Public License + along with web3.js. If not, see . +*/ /** - * Expose a W3C WebSocket class with just one or two arguments. + * @file index.js + * @author Fabian Vogelsteller + * @date 2017 */ -function W3CWebSocket(uri, protocols) { - var native_instance; - - if (protocols) { - native_instance = new NativeWebSocket(uri, protocols); - } - else { - native_instance = new NativeWebSocket(uri); - } - - /** - * 'native_instance' is an instance of nativeWebSocket (the browser's WebSocket - * class). Since it is an Object it will be returned as it is when creating an - * instance of W3CWebSocket via 'new W3CWebSocket()'. - * - * ECMAScript 5: http://bclary.com/2004/11/07/#a-13.2.2 - */ - return native_instance; -} -if (NativeWebSocket) { - ['CONNECTING', 'OPEN', 'CLOSING', 'CLOSED'].forEach(function(prop) { - Object.defineProperty(W3CWebSocket, prop, { - get: function() { return NativeWebSocket[prop]; } - }); - }); -} -/** - * Module exports. - */ -module.exports = { - 'w3cwebsocket' : NativeWebSocket ? W3CWebSocket : null, - 'version' : websocket_version +var core = __webpack_require__(43702); +var Method = __webpack_require__(82481); +var utils = __webpack_require__(11627); +var Net = function () { + var _this = this; + // sets _requestmanager + core.packageInit(this, arguments); + [ + new Method({ + name: 'getId', + call: 'net_version', + params: 0, + outputFormatter: parseInt + }), + new Method({ + name: 'isListening', + call: 'net_listening', + params: 0 + }), + new Method({ + name: 'getPeerCount', + call: 'net_peerCount', + params: 0, + outputFormatter: utils.hexToNumber + }) + ].forEach(function (method) { + method.attachToObject(_this); + method.setRequestManager(_this._requestManager); + }); }; +core.addProviders(Net); +module.exports = Net; /***/ }), -/***/ 53605: -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - -module.exports = __webpack_require__(89718).version; - - -/***/ }), - -/***/ 57299: +/***/ 62714: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { -"use strict"; - - -var forEach = __webpack_require__(68241); -var availableTypedArrays = __webpack_require__(13719); -var callBound = __webpack_require__(2864); - -var $toString = callBound('Object.prototype.toString'); -var hasToStringTag = __webpack_require__(73342)(); +/* + This file is part of web3.js. -var g = typeof globalThis === 'undefined' ? __webpack_require__.g : globalThis; -var typedArrays = availableTypedArrays(); + web3.js is free software: you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. -var $slice = callBound('String.prototype.slice'); -var toStrTags = {}; -var gOPD = __webpack_require__(49547); -var getPrototypeOf = Object.getPrototypeOf; // require('getprototypeof'); -if (hasToStringTag && gOPD && getPrototypeOf) { - forEach(typedArrays, function (typedArray) { - if (typeof g[typedArray] === 'function') { - var arr = new g[typedArray](); - if (Symbol.toStringTag in arr) { - var proto = getPrototypeOf(arr); - var descriptor = gOPD(proto, Symbol.toStringTag); - if (!descriptor) { - var superProto = getPrototypeOf(proto); - descriptor = gOPD(superProto, Symbol.toStringTag); - } - toStrTags[typedArray] = descriptor.get; - } - } - }); -} + web3.js is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. -var tryTypedArrays = function tryAllTypedArrays(value) { - var foundName = false; - forEach(toStrTags, function (getter, typedArray) { - if (!foundName) { - try { - var name = getter.call(value); - if (name === typedArray) { - foundName = name; - } - } catch (e) {} - } - }); - return foundName; + You should have received a copy of the GNU Lesser General Public License + along with web3.js. If not, see . +*/ +/** @file httpprovider.js + * @authors: + * Marek Kotewicz + * Marian Oancea + * Fabian Vogelsteller + * @date 2015 + */ +var errors = (__webpack_require__(41032).errors); +var XHR2 = (__webpack_require__(60527)/* .XMLHttpRequest */ .h); // jshint ignore: line +var http = __webpack_require__(98651); +var https = __webpack_require__(2904); +/** + * HttpProvider should be used to send rpc calls over http + */ +var HttpProvider = function HttpProvider(host, options) { + options = options || {}; + this.withCredentials = options.withCredentials || false; + this.timeout = options.timeout || 0; + this.headers = options.headers; + this.agent = options.agent; + this.connected = false; + // keepAlive is true unless explicitly set to false + const keepAlive = options.keepAlive !== false; + this.host = host || 'http://localhost:8545'; + if (!this.agent) { + if (this.host.substring(0, 5) === "https") { + this.httpsAgent = new https.Agent({ keepAlive }); + } + else { + this.httpAgent = new http.Agent({ keepAlive }); + } + } }; - -var isTypedArray = __webpack_require__(11821); - -module.exports = function whichTypedArray(value) { - if (!isTypedArray(value)) { return false; } - if (!hasToStringTag || !(Symbol.toStringTag in value)) { return $slice($toString(value), 8, -1); } - return tryTypedArrays(value); +HttpProvider.prototype._prepareRequest = function () { + var request; + // the current runtime is a browser + if (typeof XMLHttpRequest !== 'undefined') { + request = new XMLHttpRequest(); + } + else { + request = new XHR2(); + var agents = { httpsAgent: this.httpsAgent, httpAgent: this.httpAgent, baseUrl: this.baseUrl }; + if (this.agent) { + agents.httpsAgent = this.agent.https; + agents.httpAgent = this.agent.http; + agents.baseUrl = this.agent.baseUrl; + } + request.nodejsSet(agents); + } + request.open('POST', this.host, true); + request.setRequestHeader('Content-Type', 'application/json'); + request.timeout = this.timeout; + request.withCredentials = this.withCredentials; + if (this.headers) { + this.headers.forEach(function (header) { + request.setRequestHeader(header.name, header.value); + }); + } + return request; +}; +/** + * Should be used to make async request + * + * @method send + * @param {Object} payload + * @param {Function} callback triggered on end with (err, result) + */ +HttpProvider.prototype.send = function (payload, callback) { + var _this = this; + var request = this._prepareRequest(); + request.onreadystatechange = function () { + if (request.readyState === 4 && request.timeout !== 1) { + var result = request.responseText; + var error = null; + try { + result = JSON.parse(result); + } + catch (e) { + error = errors.InvalidResponse(request.responseText); + } + _this.connected = true; + callback(error, result); + } + }; + request.ontimeout = function () { + _this.connected = false; + callback(errors.ConnectionTimeout(this.timeout)); + }; + try { + request.send(JSON.stringify(payload)); + } + catch (error) { + this.connected = false; + callback(errors.InvalidConnection(this.host)); + } +}; +HttpProvider.prototype.disconnect = function () { + //NO OP +}; +/** + * Returns the desired boolean. + * + * @method supportsSubscriptions + * @returns {boolean} + */ +HttpProvider.prototype.supportsSubscriptions = function () { + return false; }; +module.exports = HttpProvider; /***/ }), -/***/ 91566: +/***/ 89075: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { -var queryString = __webpack_require__(66319) -var setQuery = __webpack_require__(55614) -var assign = __webpack_require__(52458) -var ensureHeader = __webpack_require__(82494) - -// this is replaced in the browser -var request = __webpack_require__(96418) - -var mimeTypeJson = 'application/json' -var noop = function () {} +"use strict"; +/* + This file is part of web3.js. -module.exports = xhrRequest -function xhrRequest (url, opt, cb) { - if (!url || typeof url !== 'string') { - throw new TypeError('must specify a URL') - } - if (typeof opt === 'function') { - cb = opt - opt = {} - } - if (cb && typeof cb !== 'function') { - throw new TypeError('expected cb to be undefined or a function') - } + web3.js is free software: you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. - cb = cb || noop - opt = opt || {} + web3.js is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. - var defaultResponse = opt.json ? 'json' : 'text' - opt = assign({ responseType: defaultResponse }, opt) + You should have received a copy of the GNU Lesser General Public License + along with web3.js. If not, see . +*/ +/** @file index.js + * @authors: + * Fabian Vogelsteller + * @date 2017 + */ - var headers = opt.headers || {} - var method = (opt.method || 'GET').toUpperCase() - var query = opt.query - if (query) { - if (typeof query !== 'string') { - query = queryString.stringify(query) +var errors = (__webpack_require__(41032).errors); +var oboe = __webpack_require__(11595); +var IpcProvider = function IpcProvider(path, net) { + var _this = this; + this.responseCallbacks = {}; + this.notificationCallbacks = []; + this.path = path; + this.connected = false; + this.connection = net.connect({ path: this.path }); + this.addDefaultEvents(); + // LISTEN FOR CONNECTION RESPONSES + var callback = function (result) { + /*jshint maxcomplexity: 6 */ + var id = null; + // get the id which matches the returned id + if (Array.isArray(result)) { + result.forEach(function (load) { + if (_this.responseCallbacks[load.id]) + id = load.id; + }); + } + else { + id = result.id; + } + // notification + if (!id && result.method.indexOf('_subscription') !== -1) { + _this.notificationCallbacks.forEach(function (callback) { + if (typeof callback === 'function') + callback(result); + }); + // fire the callback + } + else if (_this.responseCallbacks[id]) { + _this.responseCallbacks[id](null, result); + delete _this.responseCallbacks[id]; + } + }; + // use oboe.js for Sockets + if (net.constructor.name === 'Socket') { + oboe(this.connection) + .done(callback); } - url = setQuery(url, query) - } - - // allow json response - if (opt.responseType === 'json') { - ensureHeader(headers, 'Accept', mimeTypeJson) - } + else { + this.connection.on('data', function (data) { + _this._parseResponse(data.toString()).forEach(callback); + }); + } +}; +/** +Will add the error and end event to timeout existing calls - // if body content is json - if (opt.json && method !== 'GET' && method !== 'HEAD') { - ensureHeader(headers, 'Content-Type', mimeTypeJson) - opt.body = JSON.stringify(opt.body) - } +@method addDefaultEvents +*/ +IpcProvider.prototype.addDefaultEvents = function () { + var _this = this; + this.connection.on('connect', function () { + _this.connected = true; + }); + this.connection.on('close', function () { + _this.connected = false; + }); + this.connection.on('error', function () { + _this._timeout(); + }); + this.connection.on('end', function () { + _this._timeout(); + }); + this.connection.on('timeout', function () { + _this._timeout(); + }); +}; +/** + Will parse the response and make an array out of it. - opt.method = method - opt.url = url - opt.headers = headers - delete opt.query - delete opt.json + NOTE, this exists for backwards compatibility reasons. - return request(opt, cb) -} + @method _parseResponse + @param {String} data + */ +IpcProvider.prototype._parseResponse = function (data) { + var _this = this, returnValues = []; + // DE-CHUNKER + var dechunkedData = data + .replace(/\}[\n\r]?\{/g, '}|--|{') // }{ + .replace(/\}\][\n\r]?\[\{/g, '}]|--|[{') // }][{ + .replace(/\}[\n\r]?\[\{/g, '}|--|[{') // }[{ + .replace(/\}\][\n\r]?\{/g, '}]|--|{') // }]{ + .split('|--|'); + dechunkedData.forEach(function (data) { + // prepend the last chunk + if (_this.lastChunk) + data = _this.lastChunk + data; + var result = null; + try { + result = JSON.parse(data); + } + catch (e) { + _this.lastChunk = data; + // start timeout to cancel all requests + clearTimeout(_this.lastChunkTimeout); + _this.lastChunkTimeout = setTimeout(function () { + _this._timeout(); + throw errors.InvalidResponse(data); + }, 1000 * 15); + return; + } + // cancel timeout and set chunk to null + clearTimeout(_this.lastChunkTimeout); + _this.lastChunk = null; + if (result) + returnValues.push(result); + }); + return returnValues; +}; +/** +Get the adds a callback to the responseCallbacks object, +which will be called if a response matching the response Id will arrive. +@method _addResponseCallback +*/ +IpcProvider.prototype._addResponseCallback = function (payload, callback) { + var id = payload.id || payload[0].id; + var method = payload.method || payload[0].method; + this.responseCallbacks[id] = callback; + this.responseCallbacks[id].method = method; +}; +/** +Timeout all requests when the end/error event is fired -/***/ }), +@method _timeout +*/ +IpcProvider.prototype._timeout = function () { + for (var key in this.responseCallbacks) { + if (this.responseCallbacks.hasOwnProperty(key)) { + this.responseCallbacks[key](errors.InvalidConnection('on IPC')); + delete this.responseCallbacks[key]; + } + } +}; +/** + Try to reconnect -/***/ 82494: -/***/ ((module) => { + @method reconnect + */ +IpcProvider.prototype.reconnect = function () { + this.connection.connect({ path: this.path }); +}; +IpcProvider.prototype.send = function (payload, callback) { + // try reconnect, when connection is gone + if (!this.connection.writable) + this.connection.connect({ path: this.path }); + this.connection.write(JSON.stringify(payload)); + this._addResponseCallback(payload, callback); +}; +/** +Subscribes to provider events.provider -module.exports = ensureHeader -function ensureHeader (headers, key, value) { - var lower = key.toLowerCase() - if (!headers[key] && !headers[lower]) { - headers[key] = value - } -} +@method on +@param {String} type 'notification', 'connect', 'error', 'end' or 'data' +@param {Function} callback the callback to call +*/ +IpcProvider.prototype.on = function (type, callback) { + if (typeof callback !== 'function') + throw new Error('The second parameter callback must be a function.'); + switch (type) { + case 'data': + this.notificationCallbacks.push(callback); + break; + // adds error, end, timeout, connect + default: + this.connection.on(type, callback); + break; + } +}; +/** + Subscribes to provider events.provider + @method on + @param {String} type 'connect', 'error', 'end' or 'data' + @param {Function} callback the callback to call + */ +IpcProvider.prototype.once = function (type, callback) { + if (typeof callback !== 'function') + throw new Error('The second parameter callback must be a function.'); + this.connection.once(type, callback); +}; +/** +Removes event listener -/***/ }), +@method removeListener +@param {String} type 'data', 'connect', 'error', 'end' or 'data' +@param {Function} callback the callback to call +*/ +IpcProvider.prototype.removeListener = function (type, callback) { + var _this = this; + switch (type) { + case 'data': + this.notificationCallbacks.forEach(function (cb, index) { + if (cb === callback) + _this.notificationCallbacks.splice(index, 1); + }); + break; + default: + this.connection.removeListener(type, callback); + break; + } +}; +/** +Removes all event listeners -/***/ 96670: -/***/ ((module) => { +@method removeAllListeners +@param {String} type 'data', 'connect', 'error', 'end' or 'data' +*/ +IpcProvider.prototype.removeAllListeners = function (type) { + switch (type) { + case 'data': + this.notificationCallbacks = []; + break; + default: + this.connection.removeAllListeners(type); + break; + } +}; +/** +Resets the providers, clears all callbacks -module.exports = getResponse -function getResponse (opt, resp) { - if (!resp) return null - return { - statusCode: resp.statusCode, - headers: resp.headers, - method: opt.method, - url: opt.url, - // the XHR object in browser, http response in Node - rawRequest: resp.rawRequest ? resp.rawRequest : resp - } -} +@method reset +*/ +IpcProvider.prototype.reset = function () { + this._timeout(); + this.notificationCallbacks = []; + this.connection.removeAllListeners('error'); + this.connection.removeAllListeners('end'); + this.connection.removeAllListeners('timeout'); + this.addDefaultEvents(); +}; +/** + * Returns the desired boolean. + * + * @method supportsSubscriptions + * @returns {boolean} + */ +IpcProvider.prototype.supportsSubscriptions = function () { + return true; +}; +module.exports = IpcProvider; /***/ }), -/***/ 96418: +/***/ 46036: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { -var xhr = __webpack_require__(18288) -var normalize = __webpack_require__(96670) -var noop = function () {} - -module.exports = xhrRequest -function xhrRequest (opt, cb) { - delete opt.uri - - // for better JSON.parse error handling than xhr module - var useJson = false - if (opt.responseType === 'json') { - opt.responseType = 'text' - useJson = true - } - - var req = xhr(opt, function xhrRequestResult (err, resp, body) { - if (useJson && !err) { - try { - var text = resp.rawRequest.responseText - body = JSON.parse(text) - } catch (e) { - err = e - } +/* provided dependency */ var Buffer = __webpack_require__(15313)["Buffer"]; +var isNode = Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]'; +var isRN = typeof navigator !== 'undefined' && navigator.product === 'ReactNative'; +var _btoa = null; +var helpers = null; +if (isNode || isRN) { + _btoa = function (str) { + return Buffer.from(str).toString('base64'); + }; + var url = __webpack_require__(51121); + if (url.URL) { + // Use the new Node 6+ API for parsing URLs that supports username/password + var newURL = url.URL; + helpers = function (url) { + return new newURL(url); + }; + } + else { + // Web3 supports Node.js 5, so fall back to the legacy URL API if necessary + helpers = (__webpack_require__(51121).parse); } - - resp = normalize(opt, resp) - if (err) cb(err, null, resp) - else cb(err, body, resp) - cb = noop - }) - - // Patch abort() so that it also calls the callback, but with an error - var onabort = req.onabort - req.onabort = function () { - var ret = onabort.apply(req, Array.prototype.slice.call(arguments)) - cb(new Error('XHR Aborted')) - cb = noop - return ret - } - - return req } +else { + _btoa = btoa.bind(typeof globalThis === 'object' ? globalThis : self); + helpers = function (url) { + return new URL(url); + }; +} +module.exports = { + parseURL: helpers, + btoa: _btoa +}; /***/ }), -/***/ 18288: +/***/ 80698: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; +/* + This file is part of web3.js. -var window = __webpack_require__(74560) -var isFunction = __webpack_require__(88125) -var parseHeaders = __webpack_require__(23526) -var xtend = __webpack_require__(31693) + web3.js is free software: you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. -module.exports = createXHR -// Allow use of default import syntax in TypeScript -module.exports["default"] = createXHR; -createXHR.XMLHttpRequest = window.XMLHttpRequest || noop -createXHR.XDomainRequest = "withCredentials" in (new createXHR.XMLHttpRequest()) ? createXHR.XMLHttpRequest : window.XDomainRequest + web3.js is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. -forEachArray(["get", "put", "post", "patch", "head", "delete"], function(method) { - createXHR[method === "delete" ? "del" : method] = function(uri, options, callback) { - options = initParams(uri, options, callback) - options.method = method.toUpperCase() - return _createXHR(options) - } -}) + You should have received a copy of the GNU Lesser General Public License + along with web3.js. If not, see . + */ +/** + * @file WebsocketProvider.js + * @authors: Samuel Furter , Fabian Vogelsteller + * @date 2019 + */ -function forEachArray(array, iterator) { - for (var i = 0; i < array.length; i++) { - iterator(array[i]) +var EventEmitter = __webpack_require__(15954); +var helpers = __webpack_require__(46036); +var errors = (__webpack_require__(41032).errors); +var Ws = (__webpack_require__(43825).w3cwebsocket); +/** + * @param {string} url + * @param {Object} options + * + * @constructor + */ +var WebsocketProvider = function WebsocketProvider(url, options) { + EventEmitter.call(this); + options = options || {}; + this.url = url; + this._customTimeout = options.timeout || 1000 * 15; + this.headers = options.headers || {}; + this.protocol = options.protocol || undefined; + this.reconnectOptions = Object.assign({ + auto: false, + delay: 5000, + maxAttempts: false, + onTimeout: false + }, options.reconnect); + this.clientConfig = options.clientConfig || undefined; // Allow a custom client configuration + this.requestOptions = options.requestOptions || undefined; // Allow a custom request options (https://github.com/theturtle32/WebSocket-Node/blob/master/docs/WebSocketClient.md#connectrequesturl-requestedprotocols-origin-headers-requestoptions) + this.DATA = 'data'; + this.CLOSE = 'close'; + this.ERROR = 'error'; + this.CONNECT = 'connect'; + this.RECONNECT = 'reconnect'; + this.connection = null; + this.requestQueue = new Map(); + this.responseQueue = new Map(); + this.reconnectAttempts = 0; + this.reconnecting = false; + // The w3cwebsocket implementation does not support Basic Auth + // username/password in the URL. So generate the basic auth header, and + // pass through with any additional headers supplied in constructor + var parsedURL = helpers.parseURL(url); + if (parsedURL.username && parsedURL.password) { + this.headers.authorization = 'Basic ' + helpers.btoa(parsedURL.username + ':' + parsedURL.password); } -} - -function isEmpty(obj){ - for(var i in obj){ - if(obj.hasOwnProperty(i)) return false + // When all node core implementations that do not have the + // WHATWG compatible URL parser go out of service this line can be removed. + if (parsedURL.auth) { + this.headers.authorization = 'Basic ' + helpers.btoa(parsedURL.auth); } - return true -} - -function initParams(uri, options, callback) { - var params = uri - - if (isFunction(options)) { - callback = options - if (typeof uri === "string") { - params = {uri:uri} + // make property `connected` which will return the current connection status + Object.defineProperty(this, 'connected', { + get: function () { + return this.connection && this.connection.readyState === this.connection.OPEN; + }, + enumerable: true + }); + this.connect(); +}; +// Inherit from EventEmitter +WebsocketProvider.prototype = Object.create(EventEmitter.prototype); +WebsocketProvider.prototype.constructor = WebsocketProvider; +/** + * Connects to the configured node + * + * @method connect + * + * @returns {void} + */ +WebsocketProvider.prototype.connect = function () { + this.connection = new Ws(this.url, this.protocol, undefined, this.headers, this.requestOptions, this.clientConfig); + this._addSocketListeners(); +}; +/** + * Listener for the `data` event of the underlying WebSocket object + * + * @method _onMessage + * + * @returns {void} + */ +WebsocketProvider.prototype._onMessage = function (e) { + var _this = this; + this._parseResponse((typeof e.data === 'string') ? e.data : '').forEach(function (result) { + if (result.method && result.method.indexOf('_subscription') !== -1) { + _this.emit(_this.DATA, result); + return; } - } else { - params = xtend(options, {uri: uri}) - } - - params.callback = callback - return params -} - -function createXHR(uri, options, callback) { - options = initParams(uri, options, callback) - return _createXHR(options) -} - -function _createXHR(options) { - if(typeof options.callback === "undefined"){ - throw new Error("callback argument missing") - } - - var called = false - var callback = function cbOnce(err, response, body){ - if(!called){ - called = true - options.callback(err, response, body) + var id = result.id; + // get the id which matches the returned id + if (Array.isArray(result)) { + id = result[0].id; } - } - - function readystatechange() { - if (xhr.readyState === 4) { - setTimeout(loadFunc, 0) + if (_this.responseQueue.has(id)) { + if (_this.responseQueue.get(id).callback !== undefined) { + _this.responseQueue.get(id).callback(false, result); + } + _this.responseQueue.delete(id); } + }); +}; +/** + * Listener for the `open` event of the underlying WebSocket object + * + * @method _onConnect + * + * @returns {void} + */ +WebsocketProvider.prototype._onConnect = function () { + this.emit(this.CONNECT); + this.reconnectAttempts = 0; + this.reconnecting = false; + if (this.requestQueue.size > 0) { + var _this = this; + this.requestQueue.forEach(function (request, key) { + _this.send(request.payload, request.callback); + _this.requestQueue.delete(key); + }); } - - function getBody() { - // Chrome with requestType=blob throws errors arround when even testing access to responseText - var body = undefined - - if (xhr.response) { - body = xhr.response - } else { - body = xhr.responseText || getXml(xhr) - } - - if (isJson) { - try { - body = JSON.parse(body) - } catch (e) {} - } - - return body +}; +/** + * Listener for the `close` event of the underlying WebSocket object + * + * @method _onClose + * + * @returns {void} + */ +WebsocketProvider.prototype._onClose = function (event) { + var _this = this; + if (this.reconnectOptions.auto && (![1000, 1001].includes(event.code) || event.wasClean === false)) { + this.reconnect(); + return; } - - function errorFunc(evt) { - clearTimeout(timeoutTimer) - if(!(evt instanceof Error)){ - evt = new Error("" + (evt || "Unknown XMLHttpRequest Error") ) - } - evt.statusCode = 0 - return callback(evt, failureResponse) + this.emit(this.CLOSE, event); + if (this.requestQueue.size > 0) { + this.requestQueue.forEach(function (request, key) { + request.callback(errors.ConnectionNotOpenError(event)); + _this.requestQueue.delete(key); + }); } - - // will load the data & process the response in a special response object - function loadFunc() { - if (aborted) return - var status - clearTimeout(timeoutTimer) - if(options.useXDR && xhr.status===undefined) { - //IE8 CORS GET successful response doesn't have a status field, but body is fine - status = 200 - } else { - status = (xhr.status === 1223 ? 204 : xhr.status) - } - var response = failureResponse - var err = null - - if (status !== 0){ - response = { - body: getBody(), - statusCode: status, - method: method, - headers: {}, - url: uri, - rawRequest: xhr - } - if(xhr.getAllResponseHeaders){ //remember xhr can in fact be XDR for CORS in IE - response.headers = parseHeaders(xhr.getAllResponseHeaders()) - } - } else { - err = new Error("Internal XMLHttpRequest Error") - } - return callback(err, response, response.body) + if (this.responseQueue.size > 0) { + this.responseQueue.forEach(function (request, key) { + request.callback(errors.InvalidConnection('on WS', event)); + _this.responseQueue.delete(key); + }); } - - var xhr = options.xhr || null - - if (!xhr) { - if (options.cors || options.useXDR) { - xhr = new createXHR.XDomainRequest() - }else{ - xhr = new createXHR.XMLHttpRequest() + this._removeSocketListeners(); + this.removeAllListeners(); +}; +/** + * Will add the required socket listeners + * + * @method _addSocketListeners + * + * @returns {void} + */ +WebsocketProvider.prototype._addSocketListeners = function () { + this.connection.addEventListener('message', this._onMessage.bind(this)); + this.connection.addEventListener('open', this._onConnect.bind(this)); + this.connection.addEventListener('close', this._onClose.bind(this)); +}; +/** + * Will remove all socket listeners + * + * @method _removeSocketListeners + * + * @returns {void} + */ +WebsocketProvider.prototype._removeSocketListeners = function () { + this.connection.removeEventListener('message', this._onMessage); + this.connection.removeEventListener('open', this._onConnect); + this.connection.removeEventListener('close', this._onClose); +}; +/** + * Will parse the response and make an array out of it. + * + * @method _parseResponse + * + * @param {String} data + * + * @returns {Array} + */ +WebsocketProvider.prototype._parseResponse = function (data) { + var _this = this, returnValues = []; + // DE-CHUNKER + var dechunkedData = data + .replace(/\}[\n\r]?\{/g, '}|--|{') // }{ + .replace(/\}\][\n\r]?\[\{/g, '}]|--|[{') // }][{ + .replace(/\}[\n\r]?\[\{/g, '}|--|[{') // }[{ + .replace(/\}\][\n\r]?\{/g, '}]|--|{') // }]{ + .split('|--|'); + dechunkedData.forEach(function (data) { + // prepend the last chunk + if (_this.lastChunk) + data = _this.lastChunk + data; + var result = null; + try { + result = JSON.parse(data); } - } - - var key - var aborted - var uri = xhr.url = options.uri || options.url - var method = xhr.method = options.method || "GET" - var body = options.body || options.data - var headers = xhr.headers = options.headers || {} - var sync = !!options.sync - var isJson = false - var timeoutTimer - var failureResponse = { - body: undefined, - headers: {}, - statusCode: 0, - method: method, - url: uri, - rawRequest: xhr - } - - if ("json" in options && options.json !== false) { - isJson = true - headers["accept"] || headers["Accept"] || (headers["Accept"] = "application/json") //Don't override existing accept header declared by user - if (method !== "GET" && method !== "HEAD") { - headers["content-type"] || headers["Content-Type"] || (headers["Content-Type"] = "application/json") //Don't override existing accept header declared by user - body = JSON.stringify(options.json === true ? body : options.json) + catch (e) { + _this.lastChunk = data; + // start timeout to cancel all requests + clearTimeout(_this.lastChunkTimeout); + _this.lastChunkTimeout = setTimeout(function () { + if (_this.reconnectOptions.auto && _this.reconnectOptions.onTimeout) { + _this.reconnect(); + return; + } + _this.emit(_this.ERROR, errors.ConnectionTimeout(_this._customTimeout)); + if (_this.requestQueue.size > 0) { + _this.requestQueue.forEach(function (request, key) { + request.callback(errors.ConnectionTimeout(_this._customTimeout)); + _this.requestQueue.delete(key); + }); + } + }, _this._customTimeout); + return; } + // cancel timeout and set chunk to null + clearTimeout(_this.lastChunkTimeout); + _this.lastChunk = null; + if (result) + returnValues.push(result); + }); + return returnValues; +}; +/** + * Does check if the provider is connecting and will add it to the queue or will send it directly + * + * @method send + * + * @param {Object} payload + * @param {Function} callback + * + * @returns {void} + */ +WebsocketProvider.prototype.send = function (payload, callback) { + var _this = this; + var id = payload.id; + var request = { payload: payload, callback: callback }; + if (Array.isArray(payload)) { + id = payload[0].id; } - - xhr.onreadystatechange = readystatechange - xhr.onload = loadFunc - xhr.onerror = errorFunc - // IE9 must have onprogress be set to a unique function. - xhr.onprogress = function () { - // IE must die - } - xhr.onabort = function(){ - aborted = true; + if (this.connection.readyState === this.connection.CONNECTING || this.reconnecting) { + this.requestQueue.set(id, request); + return; } - xhr.ontimeout = errorFunc - xhr.open(method, uri, !sync, options.username, options.password) - //has to be after open - if(!sync) { - xhr.withCredentials = !!options.withCredentials + if (this.connection.readyState !== this.connection.OPEN) { + this.requestQueue.delete(id); + this.emit(this.ERROR, errors.ConnectionNotOpenError()); + request.callback(errors.ConnectionNotOpenError()); + return; } - // Cannot set timeout with sync request - // not setting timeout on the xhr object, because of old webkits etc. not handling that correctly - // both npm's request and jquery 1.x use this kind of timeout, so this is being consistent - if (!sync && options.timeout > 0 ) { - timeoutTimer = setTimeout(function(){ - if (aborted) return - aborted = true//IE9 may still call readystatechange - xhr.abort("timeout") - var e = new Error("XMLHttpRequest timeout") - e.code = "ETIMEDOUT" - errorFunc(e) - }, options.timeout ) + this.responseQueue.set(id, request); + this.requestQueue.delete(id); + try { + this.connection.send(JSON.stringify(request.payload)); } - - if (xhr.setRequestHeader) { - for(key in headers){ - if(headers.hasOwnProperty(key)){ - xhr.setRequestHeader(key, headers[key]) - } - } - } else if (options.headers && !isEmpty(options.headers)) { - throw new Error("Headers cannot be set on an XDomainRequest object") + catch (error) { + request.callback(error); + _this.responseQueue.delete(id); } - - if ("responseType" in options) { - xhr.responseType = options.responseType +}; +/** + * Resets the providers, clears all callbacks + * + * @method reset + * + * @returns {void} + */ +WebsocketProvider.prototype.reset = function () { + this.responseQueue.clear(); + this.requestQueue.clear(); + this.removeAllListeners(); + this._removeSocketListeners(); + this._addSocketListeners(); +}; +/** + * Closes the current connection with the given code and reason arguments + * + * @method disconnect + * + * @param {number} code + * @param {string} reason + * + * @returns {void} + */ +WebsocketProvider.prototype.disconnect = function (code, reason) { + this._removeSocketListeners(); + this.connection.close(code || 1000, reason); +}; +/** + * Returns the desired boolean. + * + * @method supportsSubscriptions + * + * @returns {boolean} + */ +WebsocketProvider.prototype.supportsSubscriptions = function () { + return true; +}; +/** + * Removes the listeners and reconnects to the socket. + * + * @method reconnect + * + * @returns {void} + */ +WebsocketProvider.prototype.reconnect = function () { + var _this = this; + this.reconnecting = true; + if (this.responseQueue.size > 0) { + this.responseQueue.forEach(function (request, key) { + request.callback(errors.PendingRequestsOnReconnectingError()); + _this.responseQueue.delete(key); + }); } - - if ("beforeSend" in options && - typeof options.beforeSend === "function" - ) { - options.beforeSend(xhr) + if (!this.reconnectOptions.maxAttempts || + this.reconnectAttempts < this.reconnectOptions.maxAttempts) { + setTimeout(function () { + _this.reconnectAttempts++; + _this._removeSocketListeners(); + _this.emit(_this.RECONNECT, _this.reconnectAttempts); + _this.connect(); + }, this.reconnectOptions.delay); + return; } - - // Microsoft Edge browser sends "undefined" when send is called with undefined value. - // XMLHttpRequest spec says to pass null as body to indicate no body - // See https://github.com/naugtur/xhr/issues/100. - xhr.send(body || null) - - return xhr - - -} - -function getXml(xhr) { - // xhr.responseXML will throw Exception "InvalidStateError" or "DOMException" - // See https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/responseXML. - try { - if (xhr.responseType === "document") { - return xhr.responseXML - } - var firefoxBugTakenEffect = xhr.responseXML && xhr.responseXML.documentElement.nodeName === "parsererror" - if (xhr.responseType === "" && !firefoxBugTakenEffect) { - return xhr.responseXML - } - } catch (e) {} - - return null -} - -function noop() {} - - -/***/ }), - -/***/ 31693: -/***/ ((module) => { - -module.exports = extend - -var hasOwnProperty = Object.prototype.hasOwnProperty; - -function extend() { - var target = {} - - for (var i = 0; i < arguments.length; i++) { - var source = arguments[i] - - for (var key in source) { - if (hasOwnProperty.call(source, key)) { - target[key] = source[key] - } - } + this.emit(this.ERROR, errors.MaxAttemptsReachedOnReconnectingError()); + this.reconnecting = false; + if (this.requestQueue.size > 0) { + this.requestQueue.forEach(function (request, key) { + request.callback(errors.MaxAttemptsReachedOnReconnectingError()); + _this.requestQueue.delete(key); + }); } - - return target -} - - -/***/ }), - -/***/ 60527: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -"use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "h": () => (/* binding */ XMLHttpRequest) -/* harmony export */ }); -const XMLHttpRequest = globalThis.XMLHttpRequest -/* unused harmony default export */ var __WEBPACK_DEFAULT_EXPORT__ = (globalThis.XMLHttpRequest); +}; +module.exports = WebsocketProvider; /***/ }), -/***/ 96484: -/***/ ((__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) => { +/***/ 90873: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; +/* + This file is part of web3.js. -// EXTERNAL MODULE: ../plugins/example/src/index.ts -var src = __webpack_require__(12170); -// EXTERNAL MODULE: ../plugin-infra/src/entry.ts -var entry = __webpack_require__(79936); -// EXTERNAL MODULE: ../plugins/Debugger/src/base.ts + 7 modules -var base = __webpack_require__(87946); -// EXTERNAL MODULE: ../plugins/Debugger/src/constants.ts -var constants = __webpack_require__(58202); -;// CONCATENATED MODULE: ../plugins/Debugger/src/index.ts - - - -(0,entry/* registerPlugin */.fo)({ - ...base/* base */.u, - SNSAdaptor: { - load: ()=>__webpack_require__.e(/* import() */ 9148).then(__webpack_require__.bind(__webpack_require__, 19148)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 - }, - Dashboard: { - load: ()=>__webpack_require__.e(/* import() */ 1526).then(__webpack_require__.bind(__webpack_require__, 51526)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 - }, - Worker: { - load: ()=>__webpack_require__.e(/* import() */ 7264).then(__webpack_require__.bind(__webpack_require__, 37264)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 - } -}); - -// EXTERNAL MODULE: ../plugins/Flow/src/base.ts + 7 modules -var src_base = __webpack_require__(95261); -;// CONCATENATED MODULE: ../plugins/Flow/src/index.ts - - -(0,entry/* registerPlugin */.fo)({ - ...src_base/* base */.u, - SNSAdaptor: { - load: ()=>Promise.all(/* import() */[__webpack_require__.e(5815), __webpack_require__.e(6813), __webpack_require__.e(9239), __webpack_require__.e(6982), __webpack_require__.e(9997), __webpack_require__.e(6553)]).then(__webpack_require__.bind(__webpack_require__, 16553)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 - }, - Dashboard: { - load: ()=>Promise.all(/* import() */[__webpack_require__.e(5815), __webpack_require__.e(6813), __webpack_require__.e(9239), __webpack_require__.e(6982), __webpack_require__.e(9997), __webpack_require__.e(5942)]).then(__webpack_require__.bind(__webpack_require__, 35942)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 - }, - Worker: { - load: ()=>__webpack_require__.e(/* import() */ 766).then(__webpack_require__.bind(__webpack_require__, 50766)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 - } -}); - -// EXTERNAL MODULE: ../plugins/FileService/src/base.ts + 7 modules -var FileService_src_base = __webpack_require__(91243); -;// CONCATENATED MODULE: ../plugins/FileService/src/index.ts - - -(0,entry/* registerPlugin */.fo)({ - ...FileService_src_base/* base */.u, - SNSAdaptor: { - load: ()=>Promise.all(/* import() */[__webpack_require__.e(5638), __webpack_require__.e(2698), __webpack_require__.e(9759), __webpack_require__.e(3294), __webpack_require__.e(405), __webpack_require__.e(6316), __webpack_require__.e(3617), __webpack_require__.e(4162), __webpack_require__.e(1695)]).then(__webpack_require__.bind(__webpack_require__, 94852)) - , - hotModuleReload: (hot)=>{ - /* unsupported import.meta.webpackHot */ undefined && 0; - } - }, - Worker: { - load: ()=>Promise.all(/* import() */[__webpack_require__.e(2698), __webpack_require__.e(6339)]).then(__webpack_require__.bind(__webpack_require__, 96339)) - , - hotModuleReload: (hot)=>{ - /* unsupported import.meta.webpackHot */ undefined && 0; - } - } -}); - -// EXTERNAL MODULE: ../plugins/RSS3/src/base.ts + 7 modules -var RSS3_src_base = __webpack_require__(97206); -// EXTERNAL MODULE: ../plugins/RSS3/src/constants.ts -var src_constants = __webpack_require__(17989); -;// CONCATENATED MODULE: ../plugins/RSS3/src/index.ts + web3.js is free software: you can redistribute it and/or modify + it under the terms of the GNU Lesser General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + web3.js is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Lesser General Public License for more details. + You should have received a copy of the GNU Lesser General Public License + along with web3.js. If not, see . +*/ +/** + * @file index.js + * @author Fabian Vogelsteller + * @date 2017 + */ -(0,entry/* registerPlugin */.fo)({ - ...RSS3_src_base/* base */.u, - SNSAdaptor: { - load: ()=>Promise.all(/* import() */[__webpack_require__.e(7871), __webpack_require__.e(4381)]).then(__webpack_require__.bind(__webpack_require__, 64381)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 - }, - Dashboard: { - load: ()=>__webpack_require__.e(/* import() */ 8890).then(__webpack_require__.bind(__webpack_require__, 68890)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 - }, - Worker: { - load: ()=>__webpack_require__.e(/* import() */ 1592).then(__webpack_require__.bind(__webpack_require__, 1592)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 - } -}); +var core = __webpack_require__(43702); +var Subscriptions = (__webpack_require__(70790).subscriptions); +var Method = __webpack_require__(82481); +// var formatters = require('web3-core-helpers').formatters; +var Net = __webpack_require__(88790); +var Shh = function Shh() { + var _this = this; + // sets _requestmanager + core.packageInit(this, arguments); + // overwrite package setRequestManager + var setRequestManager = this.setRequestManager; + this.setRequestManager = function (manager) { + setRequestManager(manager); + _this.net.setRequestManager(manager); + return true; + }; + // overwrite setProvider + var setProvider = this.setProvider; + this.setProvider = function () { + setProvider.apply(_this, arguments); + _this.setRequestManager(_this._requestManager); + }; + this.net = new Net(this); + [ + new Subscriptions({ + name: 'subscribe', + type: 'shh', + subscriptions: { + 'messages': { + params: 1 + // inputFormatter: [formatters.inputPostFormatter], + // outputFormatter: formatters.outputPostFormatter + } + } + }), + new Method({ + name: 'getVersion', + call: 'shh_version', + params: 0 + }), + new Method({ + name: 'getInfo', + call: 'shh_info', + params: 0 + }), + new Method({ + name: 'setMaxMessageSize', + call: 'shh_setMaxMessageSize', + params: 1 + }), + new Method({ + name: 'setMinPoW', + call: 'shh_setMinPoW', + params: 1 + }), + new Method({ + name: 'markTrustedPeer', + call: 'shh_markTrustedPeer', + params: 1 + }), + new Method({ + name: 'newKeyPair', + call: 'shh_newKeyPair', + params: 0 + }), + new Method({ + name: 'addPrivateKey', + call: 'shh_addPrivateKey', + params: 1 + }), + new Method({ + name: 'deleteKeyPair', + call: 'shh_deleteKeyPair', + params: 1 + }), + new Method({ + name: 'hasKeyPair', + call: 'shh_hasKeyPair', + params: 1 + }), + new Method({ + name: 'getPublicKey', + call: 'shh_getPublicKey', + params: 1 + }), + new Method({ + name: 'getPrivateKey', + call: 'shh_getPrivateKey', + params: 1 + }), + new Method({ + name: 'newSymKey', + call: 'shh_newSymKey', + params: 0 + }), + new Method({ + name: 'addSymKey', + call: 'shh_addSymKey', + params: 1 + }), + new Method({ + name: 'generateSymKeyFromPassword', + call: 'shh_generateSymKeyFromPassword', + params: 1 + }), + new Method({ + name: 'hasSymKey', + call: 'shh_hasSymKey', + params: 1 + }), + new Method({ + name: 'getSymKey', + call: 'shh_getSymKey', + params: 1 + }), + new Method({ + name: 'deleteSymKey', + call: 'shh_deleteSymKey', + params: 1 + }), + new Method({ + name: 'newMessageFilter', + call: 'shh_newMessageFilter', + params: 1 + }), + new Method({ + name: 'getFilterMessages', + call: 'shh_getFilterMessages', + params: 1 + }), + new Method({ + name: 'deleteMessageFilter', + call: 'shh_deleteMessageFilter', + params: 1 + }), + new Method({ + name: 'post', + call: 'shh_post', + params: 1, + inputFormatter: [null] + }), + new Method({ + name: 'unsubscribe', + call: 'shh_unsubscribe', + params: 1 + }) + ].forEach(function (method) { + method.attachToObject(_this); + method.setRequestManager(_this._requestManager); + }); +}; +Shh.prototype.clearSubscriptions = function () { + this._requestManager.clearSubscriptions(); +}; +core.addProviders(Shh); +module.exports = Shh; -// EXTERNAL MODULE: ../plugins/DAO/src/base.ts + 7 modules -var DAO_src_base = __webpack_require__(74351); -// EXTERNAL MODULE: ../plugins/DAO/src/constants.ts -var DAO_src_constants = __webpack_require__(85043); -;// CONCATENATED MODULE: ../plugins/DAO/src/index.ts +/***/ }), +/***/ 43825: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { -(0,entry/* registerPlugin */.fo)({ - ...DAO_src_base/* base */.u, - SNSAdaptor: { - load: ()=>__webpack_require__.e(/* import() */ 6697).then(__webpack_require__.bind(__webpack_require__, 7372)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 - }, - Dashboard: { - load: ()=>__webpack_require__.e(/* import() */ 3493).then(__webpack_require__.bind(__webpack_require__, 73493)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 - }, - Worker: { - load: ()=>__webpack_require__.e(/* import() */ 8178).then(__webpack_require__.bind(__webpack_require__, 48178)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 - } -}); +var _globalThis; +if (typeof globalThis === 'object') { + _globalThis = globalThis; +} else { + try { + _globalThis = __webpack_require__(75764); + } catch (error) { + } finally { + if (!_globalThis && typeof window !== 'undefined') { _globalThis = window; } + if (!_globalThis) { throw new Error('Could not determine global this'); } + } +} -// EXTERNAL MODULE: ../plugins/Solana/src/base.ts + 7 modules -var Solana_src_base = __webpack_require__(43128); -;// CONCATENATED MODULE: ../plugins/Solana/src/index.ts +var NativeWebSocket = _globalThis.WebSocket || _globalThis.MozWebSocket; +var websocket_version = __webpack_require__(53605); -(0,entry/* registerPlugin */.fo)({ - ...Solana_src_base/* base */.u, - SNSAdaptor: { - load: ()=>Promise.all(/* import() */[__webpack_require__.e(2735), __webpack_require__.e(5687), __webpack_require__.e(9278), __webpack_require__.e(5229), __webpack_require__.e(5464), __webpack_require__.e(1183), __webpack_require__.e(7425), __webpack_require__.e(686), __webpack_require__.e(237), __webpack_require__.e(1432), __webpack_require__.e(9834), __webpack_require__.e(9831), __webpack_require__.e(7121), __webpack_require__.e(9223), __webpack_require__.e(4520), __webpack_require__.e(652), __webpack_require__.e(6872)]).then(__webpack_require__.bind(__webpack_require__, 56872)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 - }, - Dashboard: { - load: ()=>Promise.all(/* import() */[__webpack_require__.e(2735), __webpack_require__.e(5687), __webpack_require__.e(9278), __webpack_require__.e(5229), __webpack_require__.e(5464), __webpack_require__.e(1183), __webpack_require__.e(7425), __webpack_require__.e(686), __webpack_require__.e(237), __webpack_require__.e(1432), __webpack_require__.e(9834), __webpack_require__.e(9831), __webpack_require__.e(7121), __webpack_require__.e(9223), __webpack_require__.e(4520), __webpack_require__.e(652), __webpack_require__.e(2825)]).then(__webpack_require__.bind(__webpack_require__, 42825)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 - }, - Worker: { - load: ()=>__webpack_require__.e(/* import() */ 1782).then(__webpack_require__.bind(__webpack_require__, 81782)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 - } -}); +/** + * Expose a W3C WebSocket class with just one or two arguments. + */ +function W3CWebSocket(uri, protocols) { + var native_instance; -// EXTERNAL MODULE: ../plugins/CyberConnect/src/base.tsx -var CyberConnect_src_base = __webpack_require__(2380); -;// CONCATENATED MODULE: ../plugins/CyberConnect/src/index.ts + if (protocols) { + native_instance = new NativeWebSocket(uri, protocols); + } + else { + native_instance = new NativeWebSocket(uri); + } + /** + * 'native_instance' is an instance of nativeWebSocket (the browser's WebSocket + * class). Since it is an Object it will be returned as it is when creating an + * instance of W3CWebSocket via 'new W3CWebSocket()'. + * + * ECMAScript 5: http://bclary.com/2004/11/07/#a-13.2.2 + */ + return native_instance; +} +if (NativeWebSocket) { + ['CONNECTING', 'OPEN', 'CLOSING', 'CLOSED'].forEach(function(prop) { + Object.defineProperty(W3CWebSocket, prop, { + get: function() { return NativeWebSocket[prop]; } + }); + }); +} -(0,entry/* registerPlugin */.fo)({ - ...CyberConnect_src_base/* base */.u, - SNSAdaptor: { - load: ()=>Promise.all(/* import() */[__webpack_require__.e(5638), __webpack_require__.e(6739), __webpack_require__.e(4227), __webpack_require__.e(3758), __webpack_require__.e(444), __webpack_require__.e(1851), __webpack_require__.e(7822), __webpack_require__.e(7856), __webpack_require__.e(400), __webpack_require__.e(3453), __webpack_require__.e(3742), __webpack_require__.e(9271), __webpack_require__.e(2253), __webpack_require__.e(5255), __webpack_require__.e(5334), __webpack_require__.e(5393), __webpack_require__.e(8828), __webpack_require__.e(8857), __webpack_require__.e(7318), __webpack_require__.e(9706), __webpack_require__.e(2297), __webpack_require__.e(6124), __webpack_require__.e(2917), __webpack_require__.e(4270), __webpack_require__.e(6191), __webpack_require__.e(97), __webpack_require__.e(1822), __webpack_require__.e(1528), __webpack_require__.e(5148), __webpack_require__.e(4221)]).then(__webpack_require__.bind(__webpack_require__, 26825)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 - }, - Worker: { - load: ()=>__webpack_require__.e(/* import() */ 3906).then(__webpack_require__.bind(__webpack_require__, 33906)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 - } -}); +/** + * Module exports. + */ +module.exports = { + 'w3cwebsocket' : NativeWebSocket ? W3CWebSocket : null, + 'version' : websocket_version +}; -// EXTERNAL MODULE: ../plugins/GoPlusSecurity/src/base.ts + 7 modules -var GoPlusSecurity_src_base = __webpack_require__(51213); -// EXTERNAL MODULE: ../plugins/GoPlusSecurity/src/constants.ts -var GoPlusSecurity_src_constants = __webpack_require__(3502); -;// CONCATENATED MODULE: ../plugins/GoPlusSecurity/src/index.ts +/***/ }), +/***/ 53605: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { -(0,entry/* registerPlugin */.fo)({ - ...GoPlusSecurity_src_base/* base */.u, - SNSAdaptor: { - load: ()=>Promise.all(/* import() */[__webpack_require__.e(5638), __webpack_require__.e(7871), __webpack_require__.e(405), __webpack_require__.e(8288)]).then(__webpack_require__.bind(__webpack_require__, 18089)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 - }, - Dashboard: { - load: ()=>__webpack_require__.e(/* import() */ 3183).then(__webpack_require__.bind(__webpack_require__, 63183)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 - }, - Worker: { - load: ()=>__webpack_require__.e(/* import() */ 1661).then(__webpack_require__.bind(__webpack_require__, 11661)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 - } -}); +module.exports = __webpack_require__(89718).version; -// EXTERNAL MODULE: ../plugins/CrossChainBridge/src/base.ts + 7 modules -var CrossChainBridge_src_base = __webpack_require__(56003); -// EXTERNAL MODULE: ../plugins/CrossChainBridge/src/constants.tsx + 1 modules -var CrossChainBridge_src_constants = __webpack_require__(78569); -;// CONCATENATED MODULE: ../plugins/CrossChainBridge/src/index.ts +/***/ }), +/***/ 57299: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { -(0,entry/* registerPlugin */.fo)({ - ...CrossChainBridge_src_base/* base */.u, - SNSAdaptor: { - load: ()=>__webpack_require__.e(/* import() */ 6679).then(__webpack_require__.bind(__webpack_require__, 66679)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 - }, - Dashboard: { - load: ()=>__webpack_require__.e(/* import() */ 9910).then(__webpack_require__.bind(__webpack_require__, 39910)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 - }, - Worker: { - load: ()=>__webpack_require__.e(/* import() */ 4149).then(__webpack_require__.bind(__webpack_require__, 54149)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 - } -}); +"use strict"; -// EXTERNAL MODULE: ../plugins/Wallet/src/index.ts + 1 modules -var Wallet_src = __webpack_require__(19841); -;// CONCATENATED MODULE: ./src/plugins/Wallet/index.ts +var forEach = __webpack_require__(68241); +var availableTypedArrays = __webpack_require__(13719); +var callBound = __webpack_require__(2864); -(0,entry/* registerPlugin */.fo)({ - ...Wallet_src/* base */.ue, - SNSAdaptor: { - load: ()=>Promise.all(/* import() */[__webpack_require__.e(5638), __webpack_require__.e(2698), __webpack_require__.e(7871), __webpack_require__.e(9759), __webpack_require__.e(6230), __webpack_require__.e(2598), __webpack_require__.e(405), __webpack_require__.e(8136), __webpack_require__.e(3020), __webpack_require__.e(8818)]).then(__webpack_require__.bind(__webpack_require__, 88818)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 - }, - Dashboard: { - load: ()=>Promise.all(/* import() */[__webpack_require__.e(5638), __webpack_require__.e(2698), __webpack_require__.e(7871), __webpack_require__.e(9759), __webpack_require__.e(6230), __webpack_require__.e(2598), __webpack_require__.e(405), __webpack_require__.e(8136), __webpack_require__.e(3020), __webpack_require__.e(5452)]).then(__webpack_require__.bind(__webpack_require__, 15452)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 - }, - Worker: { - load: ()=>Promise.all(/* import() */[__webpack_require__.e(2698), __webpack_require__.e(6739), __webpack_require__.e(4227), __webpack_require__.e(4544), __webpack_require__.e(5737), __webpack_require__.e(3883), __webpack_require__.e(6045), __webpack_require__.e(1077), __webpack_require__.e(8117), __webpack_require__.e(2943), __webpack_require__.e(5756), __webpack_require__.e(8492), __webpack_require__.e(7765), __webpack_require__.e(1305), __webpack_require__.e(5891), __webpack_require__.e(8936), __webpack_require__.e(6265), __webpack_require__.e(1246), __webpack_require__.e(7141), __webpack_require__.e(708), __webpack_require__.e(9447), __webpack_require__.e(7764), __webpack_require__.e(4859), __webpack_require__.e(8563), __webpack_require__.e(8198)]).then(__webpack_require__.bind(__webpack_require__, 57568)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 - } -}); +var $toString = callBound('Object.prototype.toString'); +var hasToStringTag = __webpack_require__(73342)(); -// EXTERNAL MODULE: ./src/plugins/EVM/base.ts -var EVM_base = __webpack_require__(13234); -;// CONCATENATED MODULE: ./src/plugins/EVM/index.ts +var g = typeof globalThis === 'undefined' ? __webpack_require__.g : globalThis; +var typedArrays = availableTypedArrays(); +var $slice = callBound('String.prototype.slice'); +var toStrTags = {}; +var gOPD = __webpack_require__(49547); +var getPrototypeOf = Object.getPrototypeOf; // require('getprototypeof'); +if (hasToStringTag && gOPD && getPrototypeOf) { + forEach(typedArrays, function (typedArray) { + if (typeof g[typedArray] === 'function') { + var arr = new g[typedArray](); + if (Symbol.toStringTag in arr) { + var proto = getPrototypeOf(arr); + var descriptor = gOPD(proto, Symbol.toStringTag); + if (!descriptor) { + var superProto = getPrototypeOf(proto); + descriptor = gOPD(superProto, Symbol.toStringTag); + } + toStrTags[typedArray] = descriptor.get; + } + } + }); +} -(0,entry/* registerPlugin */.fo)({ - ...EVM_base/* base */.u, - SNSAdaptor: { - load: ()=>Promise.all(/* import() */[__webpack_require__.e(9759), __webpack_require__.e(4227), __webpack_require__.e(4544), __webpack_require__.e(6045), __webpack_require__.e(3147), __webpack_require__.e(8019), __webpack_require__.e(8712), __webpack_require__.e(9278), __webpack_require__.e(2261), __webpack_require__.e(8331), __webpack_require__.e(7913), __webpack_require__.e(1491), __webpack_require__.e(9714), __webpack_require__.e(125), __webpack_require__.e(5578), __webpack_require__.e(5553), __webpack_require__.e(2505), __webpack_require__.e(7664), __webpack_require__.e(6125)]).then(__webpack_require__.bind(__webpack_require__, 26125)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 - }, - Dashboard: { - load: ()=>Promise.all(/* import() */[__webpack_require__.e(9759), __webpack_require__.e(4227), __webpack_require__.e(4544), __webpack_require__.e(6045), __webpack_require__.e(3147), __webpack_require__.e(8019), __webpack_require__.e(8712), __webpack_require__.e(9278), __webpack_require__.e(2261), __webpack_require__.e(8331), __webpack_require__.e(7913), __webpack_require__.e(1491), __webpack_require__.e(9714), __webpack_require__.e(125), __webpack_require__.e(5578), __webpack_require__.e(5553), __webpack_require__.e(2505), __webpack_require__.e(7664), __webpack_require__.e(4597)]).then(__webpack_require__.bind(__webpack_require__, 64597)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 - }, - Worker: { - load: ()=>__webpack_require__.e(/* import() */ 6314).then(__webpack_require__.bind(__webpack_require__, 66314)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 - } -}); +var tryTypedArrays = function tryAllTypedArrays(value) { + var foundName = false; + forEach(toStrTags, function (getter, typedArray) { + if (!foundName) { + try { + var name = getter.call(value); + if (name === typedArray) { + foundName = name; + } + } catch (e) {} + } + }); + return foundName; +}; -// EXTERNAL MODULE: ./src/plugins/RedPacket/base.ts -var RedPacket_base = __webpack_require__(84078); -;// CONCATENATED MODULE: ./src/plugins/RedPacket/index.ts +var isTypedArray = __webpack_require__(11821); +module.exports = function whichTypedArray(value) { + if (!isTypedArray(value)) { return false; } + if (!hasToStringTag || !(Symbol.toStringTag in value)) { return $slice($toString(value), 8, -1); } + return tryTypedArrays(value); +}; -(0,entry/* registerPlugin */.fo)({ - ...RedPacket_base/* base */.u, - SNSAdaptor: { - load: ()=>Promise.all(/* import() */[__webpack_require__.e(5638), __webpack_require__.e(2698), __webpack_require__.e(7871), __webpack_require__.e(3294), __webpack_require__.e(6885), __webpack_require__.e(4435), __webpack_require__.e(664)]).then(__webpack_require__.bind(__webpack_require__, 10075)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 - }, - Worker: { - load: ()=>__webpack_require__.e(/* import() */ 8305).then(__webpack_require__.bind(__webpack_require__, 58305)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 - } -}); -// EXTERNAL MODULE: ./src/plugins/ITO/base.ts -var ITO_base = __webpack_require__(1725); -;// CONCATENATED MODULE: ./src/plugins/ITO/index.ts +/***/ }), +/***/ 91566: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { -(0,entry/* registerPlugin */.fo)({ - ...ITO_base/* base */.u, - SNSAdaptor: { - load: ()=>Promise.all(/* import() */[__webpack_require__.e(5638), __webpack_require__.e(2698), __webpack_require__.e(7871), __webpack_require__.e(9759), __webpack_require__.e(3294), __webpack_require__.e(2486), __webpack_require__.e(405), __webpack_require__.e(3758), __webpack_require__.e(187), __webpack_require__.e(6885), __webpack_require__.e(8346), __webpack_require__.e(5614), __webpack_require__.e(4435), __webpack_require__.e(6668)]).then(__webpack_require__.bind(__webpack_require__, 53731)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 - }, - Worker: { - load: ()=>__webpack_require__.e(/* import() */ 7342).then(__webpack_require__.bind(__webpack_require__, 7342)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 - } -}); +var queryString = __webpack_require__(66319) +var setQuery = __webpack_require__(55614) +var assign = __webpack_require__(52458) +var ensureHeader = __webpack_require__(82494) -// EXTERNAL MODULE: ./src/plugins/Snapshot/base.ts -var Snapshot_base = __webpack_require__(40939); -;// CONCATENATED MODULE: ./src/plugins/Snapshot/index.ts +// this is replaced in the browser +var request = __webpack_require__(96418) +var mimeTypeJson = 'application/json' +var noop = function () {} -(0,entry/* registerPlugin */.fo)({ - ...Snapshot_base/* base */.u, - SNSAdaptor: { - load: ()=>Promise.all(/* import() */[__webpack_require__.e(5638), __webpack_require__.e(2698), __webpack_require__.e(7871), __webpack_require__.e(3294), __webpack_require__.e(2486), __webpack_require__.e(8364), __webpack_require__.e(855), __webpack_require__.e(7682)]).then(__webpack_require__.bind(__webpack_require__, 72355)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 - }, - Worker: { - load: ()=>__webpack_require__.e(/* import() */ 7150).then(__webpack_require__.bind(__webpack_require__, 17150)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 - } -}); +module.exports = xhrRequest +function xhrRequest (url, opt, cb) { + if (!url || typeof url !== 'string') { + throw new TypeError('must specify a URL') + } + if (typeof opt === 'function') { + cb = opt + opt = {} + } + if (cb && typeof cb !== 'function') { + throw new TypeError('expected cb to be undefined or a function') + } -// EXTERNAL MODULE: ./src/plugins/Savings/base.ts -var Savings_base = __webpack_require__(95163); -;// CONCATENATED MODULE: ./src/plugins/Savings/index.ts + cb = cb || noop + opt = opt || {} + var defaultResponse = opt.json ? 'json' : 'text' + opt = assign({ responseType: defaultResponse }, opt) -(0,entry/* registerPlugin */.fo)({ - ...Savings_base/* base */.u, - SNSAdaptor: { - load: ()=>Promise.all(/* import() */[__webpack_require__.e(5638), __webpack_require__.e(2698), __webpack_require__.e(9759), __webpack_require__.e(405), __webpack_require__.e(3758), __webpack_require__.e(187), __webpack_require__.e(1546), __webpack_require__.e(2939), __webpack_require__.e(4428), __webpack_require__.e(7764), __webpack_require__.e(6885), __webpack_require__.e(8346), __webpack_require__.e(9311), __webpack_require__.e(5908)]).then(__webpack_require__.bind(__webpack_require__, 23692)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 - }, - Worker: { - load: ()=>__webpack_require__.e(/* import() */ 8796).then(__webpack_require__.bind(__webpack_require__, 88796)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 + var headers = opt.headers || {} + var method = (opt.method || 'GET').toUpperCase() + var query = opt.query + if (query) { + if (typeof query !== 'string') { + query = queryString.stringify(query) } -}); - -// EXTERNAL MODULE: ./src/plugins/Collectible/base.ts -var Collectible_base = __webpack_require__(38704); -;// CONCATENATED MODULE: ./src/plugins/Collectible/index.ts - + url = setQuery(url, query) + } -(0,entry/* registerPlugin */.fo)({ - ...Collectible_base/* base */.u, - SNSAdaptor: { - load: ()=>Promise.all(/* import() */[__webpack_require__.e(5638), __webpack_require__.e(2698), __webpack_require__.e(7871), __webpack_require__.e(3294), __webpack_require__.e(4227), __webpack_require__.e(4544), __webpack_require__.e(405), __webpack_require__.e(6045), __webpack_require__.e(3147), __webpack_require__.e(8019), __webpack_require__.e(8712), __webpack_require__.e(9278), __webpack_require__.e(2261), __webpack_require__.e(8331), __webpack_require__.e(7913), __webpack_require__.e(1491), __webpack_require__.e(9714), __webpack_require__.e(125), __webpack_require__.e(8364), __webpack_require__.e(5578), __webpack_require__.e(3102), __webpack_require__.e(2505), __webpack_require__.e(9893), __webpack_require__.e(4110), __webpack_require__.e(2159)]).then(__webpack_require__.bind(__webpack_require__, 68259)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 - }, - Worker: { - load: ()=>__webpack_require__.e(/* import() */ 1589).then(__webpack_require__.bind(__webpack_require__, 51589)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 - } -}); + // allow json response + if (opt.responseType === 'json') { + ensureHeader(headers, 'Accept', mimeTypeJson) + } -// EXTERNAL MODULE: ./src/plugins/External/base.ts -var External_base = __webpack_require__(47845); -;// CONCATENATED MODULE: ./src/plugins/External/index.ts + // if body content is json + if (opt.json && method !== 'GET' && method !== 'HEAD') { + ensureHeader(headers, 'Content-Type', mimeTypeJson) + opt.body = JSON.stringify(opt.body) + } + opt.method = method + opt.url = url + opt.headers = headers + delete opt.query + delete opt.json -(0,entry/* registerPlugin */.fo)({ - ...External_base/* base */.u, - SNSAdaptor: { - load: ()=>Promise.all(/* import() */[__webpack_require__.e(5638), __webpack_require__.e(7871), __webpack_require__.e(9759), __webpack_require__.e(2486), __webpack_require__.e(313), __webpack_require__.e(4024)]).then(__webpack_require__.bind(__webpack_require__, 94024)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 - } -}); + return request(opt, cb) +} -// EXTERNAL MODULE: ./src/plugins/Transak/base.ts -var Transak_base = __webpack_require__(17446); -;// CONCATENATED MODULE: ./src/plugins/Transak/index.ts +/***/ }), -(0,entry/* registerPlugin */.fo)({ - ...Transak_base/* base */.u, - SNSAdaptor: { - load: ()=>__webpack_require__.e(/* import() */ 7118).then(__webpack_require__.bind(__webpack_require__, 57118)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 - }, - Dashboard: { - load: ()=>__webpack_require__.e(/* import() */ 9296).then(__webpack_require__.bind(__webpack_require__, 39296)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 - } -}); +/***/ 82494: +/***/ ((module) => { -// EXTERNAL MODULE: ./src/plugins/Gitcoin/base.ts -var Gitcoin_base = __webpack_require__(76659); -;// CONCATENATED MODULE: ./src/plugins/Gitcoin/index.ts +module.exports = ensureHeader +function ensureHeader (headers, key, value) { + var lower = key.toLowerCase() + if (!headers[key] && !headers[lower]) { + headers[key] = value + } +} -(0,entry/* registerPlugin */.fo)({ - ...Gitcoin_base/* base */.u, - SNSAdaptor: { - load: ()=>Promise.all(/* import() */[__webpack_require__.e(5638), __webpack_require__.e(2698), __webpack_require__.e(7871), __webpack_require__.e(9893), __webpack_require__.e(5012)]).then(__webpack_require__.bind(__webpack_require__, 35012)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 - }, - Worker: { - load: ()=>__webpack_require__.e(/* import() */ 2137).then(__webpack_require__.bind(__webpack_require__, 72137)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 - } -}); +/***/ }), -// EXTERNAL MODULE: ./src/plugins/Polls/base.ts -var Polls_base = __webpack_require__(23594); -;// CONCATENATED MODULE: ./src/plugins/Polls/index.ts +/***/ 96670: +/***/ ((module) => { +module.exports = getResponse +function getResponse (opt, resp) { + if (!resp) return null + return { + statusCode: resp.statusCode, + headers: resp.headers, + method: opt.method, + url: opt.url, + // the XHR object in browser, http response in Node + rawRequest: resp.rawRequest ? resp.rawRequest : resp + } +} -(0,entry/* registerPlugin */.fo)({ - ...Polls_base/* base */.u, - SNSAdaptor: { - load: ()=>Promise.all(/* import() */[__webpack_require__.e(5638), __webpack_require__.e(7871), __webpack_require__.e(3294), __webpack_require__.e(2009)]).then(__webpack_require__.bind(__webpack_require__, 46054)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 - }, - Worker: { - load: ()=>__webpack_require__.e(/* import() */ 7384).then(__webpack_require__.bind(__webpack_require__, 67384)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 - } -}); -// EXTERNAL MODULE: ./src/plugins/VCent/base.ts -var VCent_base = __webpack_require__(12482); -;// CONCATENATED MODULE: ./src/plugins/VCent/index.ts +/***/ }), +/***/ 96418: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { -(0,entry/* registerPlugin */.fo)({ - ...VCent_base/* base */.u, - Worker: { - load: ()=>__webpack_require__.e(/* import() */ 3119).then(__webpack_require__.bind(__webpack_require__, 33119)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 - }, - SNSAdaptor: { - load: ()=>__webpack_require__.e(/* import() */ 2315).then(__webpack_require__.bind(__webpack_require__, 72315)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 - } -}); +var xhr = __webpack_require__(18288) +var normalize = __webpack_require__(96670) +var noop = function () {} -// EXTERNAL MODULE: ./src/plugins/Trader/base.ts -var Trader_base = __webpack_require__(93041); -;// CONCATENATED MODULE: ./src/plugins/Trader/index.ts +module.exports = xhrRequest +function xhrRequest (opt, cb) { + delete opt.uri + // for better JSON.parse error handling than xhr module + var useJson = false + if (opt.responseType === 'json') { + opt.responseType = 'text' + useJson = true + } -(0,entry/* registerPlugin */.fo)({ - ...Trader_base/* base */.u, - SNSAdaptor: { - load: ()=>Promise.all(/* import() */[__webpack_require__.e(5638), __webpack_require__.e(2698), __webpack_require__.e(7871), __webpack_require__.e(9759), __webpack_require__.e(6230), __webpack_require__.e(2598), __webpack_require__.e(2486), __webpack_require__.e(405), __webpack_require__.e(3758), __webpack_require__.e(187), __webpack_require__.e(1546), __webpack_require__.e(2939), __webpack_require__.e(4428), __webpack_require__.e(4072), __webpack_require__.e(7015), __webpack_require__.e(7531), __webpack_require__.e(5678), __webpack_require__.e(7764), __webpack_require__.e(6885), __webpack_require__.e(8346), __webpack_require__.e(9311), __webpack_require__.e(465), __webpack_require__.e(6978), __webpack_require__.e(388)]).then(__webpack_require__.bind(__webpack_require__, 49866)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 - }, - Dashboard: { - load: ()=>Promise.all(/* import() */[__webpack_require__.e(5638), __webpack_require__.e(2698), __webpack_require__.e(7871), __webpack_require__.e(9759), __webpack_require__.e(6230), __webpack_require__.e(2598), __webpack_require__.e(2486), __webpack_require__.e(405), __webpack_require__.e(3758), __webpack_require__.e(187), __webpack_require__.e(1546), __webpack_require__.e(2939), __webpack_require__.e(4428), __webpack_require__.e(7764), __webpack_require__.e(6885), __webpack_require__.e(8346), __webpack_require__.e(9311), __webpack_require__.e(465), __webpack_require__.e(2880)]).then(__webpack_require__.bind(__webpack_require__, 81726)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 - }, - Worker: { - load: ()=>__webpack_require__.e(/* import() */ 4668).then(__webpack_require__.bind(__webpack_require__, 4668)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 + var req = xhr(opt, function xhrRequestResult (err, resp, body) { + if (useJson && !err) { + try { + var text = resp.rawRequest.responseText + body = JSON.parse(text) + } catch (e) { + err = e + } } -}); - -// EXTERNAL MODULE: ./src/plugins/dHEDGE/base.tsx -var dHEDGE_base = __webpack_require__(41462); -;// CONCATENATED MODULE: ./src/plugins/dHEDGE/index.ts + resp = normalize(opt, resp) + if (err) cb(err, null, resp) + else cb(err, body, resp) + cb = noop + }) -(0,entry/* registerPlugin */.fo)({ - ...dHEDGE_base/* base */.u, - SNSAdaptor: { - load: ()=>Promise.all(/* import() */[__webpack_require__.e(5638), __webpack_require__.e(2698), __webpack_require__.e(7871), __webpack_require__.e(9759), __webpack_require__.e(4072), __webpack_require__.e(7015), __webpack_require__.e(7531), __webpack_require__.e(5678), __webpack_require__.e(8370), __webpack_require__.e(6978), __webpack_require__.e(6013), __webpack_require__.e(9172)]).then(__webpack_require__.bind(__webpack_require__, 51767)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 - }, - Dashboard: { - load: ()=>Promise.all(/* import() */[__webpack_require__.e(5638), __webpack_require__.e(2698), __webpack_require__.e(6013), __webpack_require__.e(945)]).then(__webpack_require__.bind(__webpack_require__, 10945)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 - }, - Worker: { - load: ()=>__webpack_require__.e(/* import() */ 6358).then(__webpack_require__.bind(__webpack_require__, 56358)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 - } -}); + // Patch abort() so that it also calls the callback, but with an error + var onabort = req.onabort + req.onabort = function () { + var ret = onabort.apply(req, Array.prototype.slice.call(arguments)) + cb(new Error('XHR Aborted')) + cb = noop + return ret + } -// EXTERNAL MODULE: ./src/plugins/PoolTogether/base.tsx -var PoolTogether_base = __webpack_require__(30689); -;// CONCATENATED MODULE: ./src/plugins/PoolTogether/index.ts + return req +} -(0,entry/* registerPlugin */.fo)({ - ...PoolTogether_base/* base */.u, - SNSAdaptor: { - load: ()=>Promise.all(/* import() */[__webpack_require__.e(5638), __webpack_require__.e(2698), __webpack_require__.e(9759), __webpack_require__.e(3294), __webpack_require__.e(6885), __webpack_require__.e(1801), __webpack_require__.e(7562)]).then(__webpack_require__.bind(__webpack_require__, 92526)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 - }, - Dashboard: { - load: ()=>Promise.all(/* import() */[__webpack_require__.e(5638), __webpack_require__.e(2698), __webpack_require__.e(1801), __webpack_require__.e(8925)]).then(__webpack_require__.bind(__webpack_require__, 74635)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 - }, - Worker: { - load: ()=>__webpack_require__.e(/* import() */ 7476).then(__webpack_require__.bind(__webpack_require__, 97476)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 - } -}); +/***/ }), -// EXTERNAL MODULE: ./src/plugins/GoodGhosting/base.ts + 1 modules -var GoodGhosting_base = __webpack_require__(5493); -;// CONCATENATED MODULE: ./src/plugins/GoodGhosting/index.ts +/***/ 18288: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { +"use strict"; -(0,entry/* registerPlugin */.fo)({ - ...GoodGhosting_base/* base */.u, - SNSAdaptor: { - load: ()=>Promise.all(/* import() */[__webpack_require__.e(5638), __webpack_require__.e(2698), __webpack_require__.e(3294), __webpack_require__.e(6885), __webpack_require__.e(1651)]).then(__webpack_require__.bind(__webpack_require__, 1322)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 - } -}); +var window = __webpack_require__(74560) +var isFunction = __webpack_require__(88125) +var parseHeaders = __webpack_require__(23526) +var xtend = __webpack_require__(31693) -// EXTERNAL MODULE: ./src/plugins/UnlockProtocol/base.ts -var UnlockProtocol_base = __webpack_require__(99883); -;// CONCATENATED MODULE: ./src/plugins/UnlockProtocol/index.ts +module.exports = createXHR +// Allow use of default import syntax in TypeScript +module.exports["default"] = createXHR; +createXHR.XMLHttpRequest = window.XMLHttpRequest || noop +createXHR.XDomainRequest = "withCredentials" in (new createXHR.XMLHttpRequest()) ? createXHR.XMLHttpRequest : window.XDomainRequest +forEachArray(["get", "put", "post", "patch", "head", "delete"], function(method) { + createXHR[method === "delete" ? "del" : method] = function(uri, options, callback) { + options = initParams(uri, options, callback) + options.method = method.toUpperCase() + return _createXHR(options) + } +}) -(0,entry/* registerPlugin */.fo)({ - ...UnlockProtocol_base/* base */.u, - SNSAdaptor: { - load: ()=>Promise.all(/* import() */[__webpack_require__.e(5638), __webpack_require__.e(9093)]).then(__webpack_require__.bind(__webpack_require__, 19093)) - , - hotModuleReload: (hot)=> undefined - }, - Worker: { - load: ()=>__webpack_require__.e(/* import() */ 5103).then(__webpack_require__.bind(__webpack_require__, 55103)) - , - hotModuleReload: (hot)=> undefined +function forEachArray(array, iterator) { + for (var i = 0; i < array.length; i++) { + iterator(array[i]) } -}); +} -// EXTERNAL MODULE: ./src/plugins/Avatar/base.ts -var Avatar_base = __webpack_require__(28165); -;// CONCATENATED MODULE: ./src/plugins/Avatar/index.ts +function isEmpty(obj){ + for(var i in obj){ + if(obj.hasOwnProperty(i)) return false + } + return true +} +function initParams(uri, options, callback) { + var params = uri -(0,entry/* registerPlugin */.fo)({ - ...Avatar_base/* base */.u, - SNSAdaptor: { - load: ()=>__webpack_require__.e(/* import() */ 7714).then(__webpack_require__.bind(__webpack_require__, 27714)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 - }, - Worker: { - load: ()=>__webpack_require__.e(/* import() */ 7125).then(__webpack_require__.bind(__webpack_require__, 57125)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 + if (isFunction(options)) { + callback = options + if (typeof uri === "string") { + params = {uri:uri} + } + } else { + params = xtend(options, {uri: uri}) } -}); -// EXTERNAL MODULE: ./src/plugins/Furucombo/base.tsx -var Furucombo_base = __webpack_require__(16228); -;// CONCATENATED MODULE: ./src/plugins/Furucombo/index.ts + params.callback = callback + return params +} +function createXHR(uri, options, callback) { + options = initParams(uri, options, callback) + return _createXHR(options) +} -(0,entry/* registerPlugin */.fo)({ - ...Furucombo_base/* base */.u, - SNSAdaptor: { - load: ()=>Promise.all(/* import() */[__webpack_require__.e(5638), __webpack_require__.e(7871), __webpack_require__.e(9376)]).then(__webpack_require__.bind(__webpack_require__, 4789)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 +function _createXHR(options) { + if(typeof options.callback === "undefined"){ + throw new Error("callback argument missing") } -}); - -// EXTERNAL MODULE: ./src/plugins/MaskBox/base.ts + 3 modules -var MaskBox_base = __webpack_require__(63867); -;// CONCATENATED MODULE: ./src/plugins/MaskBox/index.ts + var called = false + var callback = function cbOnce(err, response, body){ + if(!called){ + called = true + options.callback(err, response, body) + } + } -(0,entry/* registerPlugin */.fo)({ - ...MaskBox_base/* base */.u, - SNSAdaptor: { - load: ()=>Promise.all(/* import() */[__webpack_require__.e(5638), __webpack_require__.e(2698), __webpack_require__.e(7871), __webpack_require__.e(3294), __webpack_require__.e(405), __webpack_require__.e(6885), __webpack_require__.e(3102), __webpack_require__.e(4110), __webpack_require__.e(8112)]).then(__webpack_require__.bind(__webpack_require__, 67061)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 - }, - Worker: { - load: ()=>__webpack_require__.e(/* import() */ 5097).then(__webpack_require__.bind(__webpack_require__, 85097)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 + function readystatechange() { + if (xhr.readyState === 4) { + setTimeout(loadFunc, 0) + } } -}); -// EXTERNAL MODULE: ./src/plugins/NextID/base.ts + 7 modules -var NextID_base = __webpack_require__(75611); -// EXTERNAL MODULE: ./src/plugins/NextID/constants.ts -var NextID_constants = __webpack_require__(6736); -;// CONCATENATED MODULE: ./src/plugins/NextID/index.ts + function getBody() { + // Chrome with requestType=blob throws errors arround when even testing access to responseText + var body = undefined + if (xhr.response) { + body = xhr.response + } else { + body = xhr.responseText || getXml(xhr) + } + if (isJson) { + try { + body = JSON.parse(body) + } catch (e) {} + } -(0,entry/* registerPlugin */.fo)({ - ...NextID_base/* base */.u, - SNSAdaptor: { - load: ()=>Promise.all(/* import() */[__webpack_require__.e(5638), __webpack_require__.e(2698), __webpack_require__.e(9759), __webpack_require__.e(405), __webpack_require__.e(2092), __webpack_require__.e(8346), __webpack_require__.e(6254), __webpack_require__.e(5689)]).then(__webpack_require__.bind(__webpack_require__, 35689)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 - }, - Dashboard: { - load: ()=>__webpack_require__.e(/* import() */ 90).then(__webpack_require__.bind(__webpack_require__, 70090)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 - }, - Worker: { - load: ()=>__webpack_require__.e(/* import() */ 6717).then(__webpack_require__.bind(__webpack_require__, 46717)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 + return body } -}); -// EXTERNAL MODULE: ./src/plugins/Pets/base.tsx -var Pets_base = __webpack_require__(39594); -;// CONCATENATED MODULE: ./src/plugins/Pets/index.ts + function errorFunc(evt) { + clearTimeout(timeoutTimer) + if(!(evt instanceof Error)){ + evt = new Error("" + (evt || "Unknown XMLHttpRequest Error") ) + } + evt.statusCode = 0 + return callback(evt, failureResponse) + } + // will load the data & process the response in a special response object + function loadFunc() { + if (aborted) return + var status + clearTimeout(timeoutTimer) + if(options.useXDR && xhr.status===undefined) { + //IE8 CORS GET successful response doesn't have a status field, but body is fine + status = 200 + } else { + status = (xhr.status === 1223 ? 204 : xhr.status) + } + var response = failureResponse + var err = null -(0,entry/* registerPlugin */.fo)({ - ...Pets_base/* base */.u, - SNSAdaptor: { - load: ()=>Promise.all(/* import() */[__webpack_require__.e(5638), __webpack_require__.e(2698), __webpack_require__.e(9759), __webpack_require__.e(2486), __webpack_require__.e(3966), __webpack_require__.e(646)]).then(__webpack_require__.bind(__webpack_require__, 20646)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 - }, - Worker: { - load: ()=>__webpack_require__.e(/* import() */ 7099).then(__webpack_require__.bind(__webpack_require__, 7099)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 - }, - Dashboard: { - load: ()=>Promise.all(/* import() */[__webpack_require__.e(5638), __webpack_require__.e(2698), __webpack_require__.e(9759), __webpack_require__.e(2486), __webpack_require__.e(3966), __webpack_require__.e(4549)]).then(__webpack_require__.bind(__webpack_require__, 4549)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 + if (status !== 0){ + response = { + body: getBody(), + statusCode: status, + method: method, + headers: {}, + url: uri, + rawRequest: xhr + } + if(xhr.getAllResponseHeaders){ //remember xhr can in fact be XDR for CORS in IE + response.headers = parseHeaders(xhr.getAllResponseHeaders()) + } + } else { + err = new Error("Internal XMLHttpRequest Error") + } + return callback(err, response, response.body) } -}); - -// EXTERNAL MODULE: ./src/plugins/CryptoartAI/base.ts -var CryptoartAI_base = __webpack_require__(2189); -;// CONCATENATED MODULE: ./src/plugins/CryptoartAI/index.ts + var xhr = options.xhr || null -(0,entry/* registerPlugin */.fo)({ - ...CryptoartAI_base/* base */.u, - SNSAdaptor: { - load: ()=>Promise.all(/* import() */[__webpack_require__.e(5638), __webpack_require__.e(2698), __webpack_require__.e(7871), __webpack_require__.e(2261), __webpack_require__.e(8331), __webpack_require__.e(8364), __webpack_require__.e(9893), __webpack_require__.e(8963)]).then(__webpack_require__.bind(__webpack_require__, 50751)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 - }, - Worker: { - load: ()=>__webpack_require__.e(/* import() */ 2115).then(__webpack_require__.bind(__webpack_require__, 32115)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 + if (!xhr) { + if (options.cors || options.useXDR) { + xhr = new createXHR.XDomainRequest() + }else{ + xhr = new createXHR.XMLHttpRequest() + } } -}); - -// EXTERNAL MODULE: ./src/plugins/FindTruman/base.ts -var FindTruman_base = __webpack_require__(29676); -;// CONCATENATED MODULE: ./src/plugins/FindTruman/index.ts + var key + var aborted + var uri = xhr.url = options.uri || options.url + var method = xhr.method = options.method || "GET" + var body = options.body || options.data + var headers = xhr.headers = options.headers || {} + var sync = !!options.sync + var isJson = false + var timeoutTimer + var failureResponse = { + body: undefined, + headers: {}, + statusCode: 0, + method: method, + url: uri, + rawRequest: xhr + } -(0,entry/* registerPlugin */.fo)({ - ...FindTruman_base/* base */.u, - SNSAdaptor: { - load: ()=>Promise.all(/* import() */[__webpack_require__.e(5638), __webpack_require__.e(7871), __webpack_require__.e(9759), __webpack_require__.e(3294), __webpack_require__.e(405), __webpack_require__.e(6141)]).then(__webpack_require__.bind(__webpack_require__, 3178)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 - }, - Worker: { - load: ()=>__webpack_require__.e(/* import() */ 3833).then(__webpack_require__.bind(__webpack_require__, 33833)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 + if ("json" in options && options.json !== false) { + isJson = true + headers["accept"] || headers["Accept"] || (headers["Accept"] = "application/json") //Don't override existing accept header declared by user + if (method !== "GET" && method !== "HEAD") { + headers["content-type"] || headers["Content-Type"] || (headers["Content-Type"] = "application/json") //Don't override existing accept header declared by user + body = JSON.stringify(options.json === true ? body : options.json) + } } -}); -// EXTERNAL MODULE: ./src/plugins/ArtBlocks/base.tsx -var ArtBlocks_base = __webpack_require__(37857); -;// CONCATENATED MODULE: ./src/plugins/ArtBlocks/index.ts + xhr.onreadystatechange = readystatechange + xhr.onload = loadFunc + xhr.onerror = errorFunc + // IE9 must have onprogress be set to a unique function. + xhr.onprogress = function () { + // IE must die + } + xhr.onabort = function(){ + aborted = true; + } + xhr.ontimeout = errorFunc + xhr.open(method, uri, !sync, options.username, options.password) + //has to be after open + if(!sync) { + xhr.withCredentials = !!options.withCredentials + } + // Cannot set timeout with sync request + // not setting timeout on the xhr object, because of old webkits etc. not handling that correctly + // both npm's request and jquery 1.x use this kind of timeout, so this is being consistent + if (!sync && options.timeout > 0 ) { + timeoutTimer = setTimeout(function(){ + if (aborted) return + aborted = true//IE9 may still call readystatechange + xhr.abort("timeout") + var e = new Error("XMLHttpRequest timeout") + e.code = "ETIMEDOUT" + errorFunc(e) + }, options.timeout ) + } + if (xhr.setRequestHeader) { + for(key in headers){ + if(headers.hasOwnProperty(key)){ + xhr.setRequestHeader(key, headers[key]) + } + } + } else if (options.headers && !isEmpty(options.headers)) { + throw new Error("Headers cannot be set on an XDomainRequest object") + } -(0,entry/* registerPlugin */.fo)({ - ...ArtBlocks_base/* base */.u, - SNSAdaptor: { - load: ()=>Promise.all(/* import() */[__webpack_require__.e(5638), __webpack_require__.e(2698), __webpack_require__.e(7871), __webpack_require__.e(1399)]).then(__webpack_require__.bind(__webpack_require__, 35214)) - , - hotModuleReload: (hot)=>/* unsupported import.meta.webpackHot */ undefined && 0 + if ("responseType" in options) { + xhr.responseType = options.responseType } -}); -;// CONCATENATED MODULE: ./src/plugin-infra/register.js -// This file is a JavaScript file because it's reference to the plugins should not be counted as a project reference. -// If your plugin also works in isolated dashboard, please also register it in -// packages/dashboard/src/initialization/plugins.ts + if ("beforeSend" in options && + typeof options.beforeSend === "function" + ) { + options.beforeSend(xhr) + } + // Microsoft Edge browser sends "undefined" when send is called with undefined value. + // XMLHttpRequest spec says to pass null as body to indicate no body + // See https://github.com/naugtur/xhr/issues/100. + xhr.send(body || null) + return xhr +} +function getXml(xhr) { + // xhr.responseXML will throw Exception "InvalidStateError" or "DOMException" + // See https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/responseXML. + try { + if (xhr.responseType === "document") { + return xhr.responseXML + } + var firefoxBugTakenEffect = xhr.responseXML && xhr.responseXML.documentElement.nodeName === "parsererror" + if (xhr.responseType === "" && !firefoxBugTakenEffect) { + return xhr.responseXML + } + } catch (e) {} + return null +} +function noop() {} +/***/ }), +/***/ 31693: +/***/ ((module) => { +module.exports = extend +var hasOwnProperty = Object.prototype.hasOwnProperty; +function extend() { + var target = {} + for (var i = 0; i < arguments.length; i++) { + var source = arguments[i] + for (var key in source) { + if (hasOwnProperty.call(source, key)) { + target[key] = source[key] + } + } + } + return target +} +/***/ }), +/***/ 20003: +/***/ ((module) => { +"use strict"; +var alphabet = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_'.split('') + , length = 64 + , map = {} + , seed = 0 + , i = 0 + , prev; +/** + * Return a string representing the specified number. + * + * @param {Number} num The number to convert. + * @returns {String} The string representation of the number. + * @api public + */ +function encode(num) { + var encoded = ''; + do { + encoded = alphabet[num % length] + encoded; + num = Math.floor(num / length); + } while (num > 0); + return encoded; +} +/** + * Return the integer value specified by the given string. + * + * @param {String} str The string to convert. + * @returns {Number} The integer value represented by the string. + * @api public + */ +function decode(str) { + var decoded = 0; + for (i = 0; i < str.length; i++) { + decoded = decoded * length + map[str.charAt(i)]; + } + return decoded; +} +/** + * Yeast: A tiny growing id generator. + * + * @returns {String} A unique id. + * @api public + */ +function yeast() { + var now = encode(+new Date()); + if (now !== prev) return seed = 0, prev = now; + return now +'.'+ encode(seed++); +} +// +// Map each character to its index. +// +for (; i < length; i++) map[alphabet[i]] = i; -// import '../plugins/Profile' +// +// Expose the `yeast`, `encode` and `decode` functions. +// +yeast.encode = encode; +yeast.decode = decode; +module.exports = yeast; +/***/ }), +/***/ 60527: +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "h": () => (/* binding */ XMLHttpRequest) +/* harmony export */ }); +const XMLHttpRequest = globalThis.XMLHttpRequest +/* unused harmony default export */ var __WEBPACK_DEFAULT_EXPORT__ = (globalThis.XMLHttpRequest); /***/ }), @@ -44960,231 +52286,255 @@ module.exports = __webpack_require__.p + "assets/2ce52a3440dbeb9d55ef.png"; /***/ }), -/***/ 74229: +/***/ 86302: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; -module.exports = __webpack_require__.p + "assets/1de6dd0005bb179fcfde.png"; +module.exports = __webpack_require__.p + "assets/279959eb34cd906ded3d.png"; /***/ }), -/***/ 42643: +/***/ 1394: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; -module.exports = __webpack_require__.p + "assets/f1663665b45324754111.png"; +module.exports = __webpack_require__.p + "assets/e50fecf341c2966cc2c9.png"; /***/ }), -/***/ 98339: +/***/ 93563: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; -module.exports = __webpack_require__.p + "assets/0b0a54d8df125d5cc820.png"; +module.exports = __webpack_require__.p + "assets/fbdeb94ebab1d7c4c58b.png"; /***/ }), -/***/ 59579: +/***/ 19196: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; -module.exports = __webpack_require__.p + "assets/90176527092abba269c4.png"; +module.exports = __webpack_require__.p + "assets/61f5cf1e434b9c098faf.png"; /***/ }), -/***/ 24771: +/***/ 68391: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; -module.exports = __webpack_require__.p + "assets/1cb7de56917987650812.png"; +module.exports = __webpack_require__.p + "assets/3ff6be9a45d47d1ea74f.png"; /***/ }), -/***/ 73201: +/***/ 43990: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; -module.exports = __webpack_require__.p + "assets/5923a119357ae9c12444.png"; +module.exports = __webpack_require__.p + "assets/d032889c3c58bb3c8e74.png"; /***/ }), -/***/ 59204: +/***/ 62996: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; -module.exports = __webpack_require__.p + "assets/75862cc182d1478421f8.png"; +module.exports = __webpack_require__.p + "assets/e4754cbbafbc56217880.png"; /***/ }), -/***/ 16972: +/***/ 61977: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; -module.exports = __webpack_require__.p + "assets/0f8d93b8a63e0bba4d47.png"; +module.exports = __webpack_require__.p + "assets/428c4a0d344d4f0fc4e4.png"; /***/ }), -/***/ 43884: +/***/ 53369: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; -module.exports = __webpack_require__.p + "assets/e9b962b38127a66dc453.png"; +module.exports = __webpack_require__.p + "assets/86aa2c9e4fc30fa0e546.png"; /***/ }), -/***/ 94955: +/***/ 96559: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; -module.exports = __webpack_require__.p + "assets/5fa7c3a5fd9ba7e5db31.png"; +module.exports = __webpack_require__.p + "assets/15a041f20f4dc6d5005e.png"; /***/ }), -/***/ 25869: +/***/ 39872: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; -module.exports = __webpack_require__.p + "assets/2c57dd0a46a06c6fa2c6.png"; +module.exports = __webpack_require__.p + "assets/52c91e7e9583db255392.png"; /***/ }), -/***/ 37650: +/***/ 39952: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; -module.exports = __webpack_require__.p + "assets/7df8fdabbbb222480c26.png"; +module.exports = __webpack_require__.p + "assets/d62071d31816d5f7b3f6.png"; /***/ }), -/***/ 57191: +/***/ 65720: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; -module.exports = __webpack_require__.p + "assets/6482c4cefefd90b5347b.png"; +module.exports = __webpack_require__.p + "assets/1de6dd0005bb179fcfde.png"; /***/ }), -/***/ 661: +/***/ 10851: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; -module.exports = __webpack_require__.p + "assets/d6593b34bb228be76d33.png"; +module.exports = __webpack_require__.p + "assets/f1663665b45324754111.png"; /***/ }), -/***/ 88635: +/***/ 23790: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; -module.exports = __webpack_require__.p + "assets/893e99123a1793cbc778.png"; +module.exports = __webpack_require__.p + "assets/0b0a54d8df125d5cc820.png"; /***/ }), -/***/ 30870: +/***/ 40859: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; -module.exports = __webpack_require__.p + "assets/421018e3c23dc5f8b067.png"; +module.exports = __webpack_require__.p + "assets/90176527092abba269c4.png"; /***/ }), -/***/ 55489: +/***/ 27771: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; -module.exports = __webpack_require__.p + "assets/1f3c8830105a02615880.png"; +module.exports = __webpack_require__.p + "assets/1cb7de56917987650812.png"; /***/ }), -/***/ 27154: +/***/ 97857: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; -module.exports = __webpack_require__.p + "assets/b85ae831340ec901be3d.png"; +module.exports = __webpack_require__.p + "assets/5923a119357ae9c12444.png"; /***/ }), -/***/ 86302: +/***/ 12065: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; -module.exports = __webpack_require__.p + "assets/279959eb34cd906ded3d.png"; +module.exports = __webpack_require__.p + "assets/75862cc182d1478421f8.png"; /***/ }), -/***/ 1394: +/***/ 7700: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; -module.exports = __webpack_require__.p + "assets/e50fecf341c2966cc2c9.png"; +module.exports = __webpack_require__.p + "assets/0f8d93b8a63e0bba4d47.png"; /***/ }), -/***/ 93563: +/***/ 55182: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; -module.exports = __webpack_require__.p + "assets/fbdeb94ebab1d7c4c58b.png"; +module.exports = __webpack_require__.p + "assets/e9b962b38127a66dc453.png"; /***/ }), -/***/ 19196: +/***/ 85476: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; -module.exports = __webpack_require__.p + "assets/61f5cf1e434b9c098faf.png"; +module.exports = __webpack_require__.p + "assets/5fa7c3a5fd9ba7e5db31.png"; /***/ }), -/***/ 68391: +/***/ 60934: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; -module.exports = __webpack_require__.p + "assets/3ff6be9a45d47d1ea74f.png"; +module.exports = __webpack_require__.p + "assets/5962fbad1c74397b5b4e.png"; /***/ }), -/***/ 43990: +/***/ 45027: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; -module.exports = __webpack_require__.p + "assets/d032889c3c58bb3c8e74.png"; +module.exports = __webpack_require__.p + "assets/01fe8fc95b630bc80a5a.png"; /***/ }), -/***/ 62996: +/***/ 24728: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; -module.exports = __webpack_require__.p + "assets/e4754cbbafbc56217880.png"; +module.exports = __webpack_require__.p + "assets/7df8fdabbbb222480c26.png"; /***/ }), -/***/ 61977: +/***/ 54476: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; -module.exports = __webpack_require__.p + "assets/428c4a0d344d4f0fc4e4.png"; +module.exports = __webpack_require__.p + "assets/6482c4cefefd90b5347b.png"; /***/ }), -/***/ 53369: +/***/ 34807: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; -module.exports = __webpack_require__.p + "assets/86aa2c9e4fc30fa0e546.png"; +module.exports = __webpack_require__.p + "assets/334eb8e059d8d06f3ed0.png"; /***/ }), -/***/ 96559: +/***/ 60126: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; -module.exports = __webpack_require__.p + "assets/15a041f20f4dc6d5005e.png"; +module.exports = __webpack_require__.p + "assets/421018e3c23dc5f8b067.png"; + +/***/ }), + +/***/ 1110: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +module.exports = __webpack_require__.p + "assets/2c7958a7923701d25cbe.png"; + +/***/ }), + +/***/ 90952: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +module.exports = __webpack_require__.p + "assets/1f3c8830105a02615880.png"; /***/ }), -/***/ 28012: +/***/ 97213: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +module.exports = __webpack_require__.p + "assets/b85ae831340ec901be3d.png"; + +/***/ }), + +/***/ 31116: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; @@ -45192,7 +52542,7 @@ module.exports = __webpack_require__.p + "assets/6fa109065f24234b7d65.png"; /***/ }), -/***/ 36284: +/***/ 85206: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; @@ -45200,7 +52550,15 @@ module.exports = __webpack_require__.p + "assets/0c3b46b836f44283e009.png"; /***/ }), -/***/ 55002: +/***/ 4492: +/***/ ((module, __unused_webpack_exports, __webpack_require__) => { + +"use strict"; +module.exports = __webpack_require__.p + "assets/5923a119357ae9c12444.png"; + +/***/ }), + +/***/ 59785: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; @@ -45208,7 +52566,7 @@ module.exports = __webpack_require__.p + "assets/f45ab0c214fe3549adfb.png"; /***/ }), -/***/ 96951: +/***/ 76645: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; @@ -45216,19 +52574,19 @@ module.exports = __webpack_require__.p + "assets/6e3a870c629ccaf7631c.png"; /***/ }), -/***/ 39872: +/***/ 42131: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; -module.exports = __webpack_require__.p + "assets/52c91e7e9583db255392.png"; +module.exports = __webpack_require__.p + "assets/7a4cfc24f92215333023.png"; /***/ }), -/***/ 39952: +/***/ 65280: /***/ ((module, __unused_webpack_exports, __webpack_require__) => { "use strict"; -module.exports = __webpack_require__.p + "assets/d62071d31816d5f7b3f6.png"; +module.exports = __webpack_require__.p + "assets/1dab22f6fe2a31694ce1.png"; /***/ }), @@ -45253,6 +52611,13 @@ module.exports = __webpack_require__.p + "assets/d62071d31816d5f7b3f6.png"; /***/ }), +/***/ 73911: +/***/ (() => { + +/* (ignored) */ + +/***/ }), + /***/ 74450: /***/ (() => { @@ -45344,79 +52709,6 @@ if ($gOPD) { module.exports = $gOPD; -/***/ }), - -/***/ 32248: -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "Z": () => (/* binding */ _assertThisInitialized) -/* harmony export */ }); -function _assertThisInitialized(self) { - if (self === void 0) { - throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); - } - - return self; -} - -/***/ }), - -/***/ 45788: -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "Z": () => (/* binding */ _extends) -/* harmony export */ }); -function _extends() { - _extends = Object.assign || function (target) { - for (var i = 1; i < arguments.length; i++) { - var source = arguments[i]; - - for (var key in source) { - if (Object.prototype.hasOwnProperty.call(source, key)) { - target[key] = source[key]; - } - } - } - - return target; - }; - - return _extends.apply(this, arguments); -} - -/***/ }), - -/***/ 68944: -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -"use strict"; - -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - "Z": () => (/* binding */ _inheritsLoose) -}); - -;// CONCATENATED MODULE: ../../node_modules/.pnpm/@babel+runtime@7.16.3/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js -function _setPrototypeOf(o, p) { - _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { - o.__proto__ = p; - return o; - }; - - return _setPrototypeOf(o, p); -} -;// CONCATENATED MODULE: ../../node_modules/.pnpm/@babel+runtime@7.16.3/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js - -function _inheritsLoose(subClass, superClass) { - subClass.prototype = Object.create(superClass.prototype); - subClass.prototype.constructor = subClass; - _setPrototypeOf(subClass, superClass); -} - /***/ }), /***/ 84423: @@ -45656,26 +52948,14 @@ function _getPrototypeOf(o) { /***/ }), -/***/ 91258: +/***/ 4830: /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; - -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - "Z": () => (/* binding */ _inherits) -}); - -;// CONCATENATED MODULE: ../../node_modules/.pnpm/@babel+runtime@7.17.9/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js -function _setPrototypeOf(o, p) { - _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { - o.__proto__ = p; - return o; - }; - - return _setPrototypeOf(o, p); -} -;// CONCATENATED MODULE: ../../node_modules/.pnpm/@babel+runtime@7.17.9/node_modules/@babel/runtime/helpers/esm/inherits.js +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "Z": () => (/* binding */ _inherits) +/* harmony export */ }); +/* harmony import */ var _setPrototypeOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(37661); function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { @@ -45692,7 +52972,24 @@ function _inherits(subClass, superClass) { Object.defineProperty(subClass, "prototype", { writable: false }); - if (superClass) _setPrototypeOf(subClass, superClass); + if (superClass) (0,_setPrototypeOf_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)(subClass, superClass); +} + +/***/ }), + +/***/ 68131: +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "Z": () => (/* binding */ _inheritsLoose) +/* harmony export */ }); +/* harmony import */ var _setPrototypeOf_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(37661); + +function _inheritsLoose(subClass, superClass) { + subClass.prototype = Object.create(superClass.prototype); + subClass.prototype.constructor = subClass; + (0,_setPrototypeOf_js__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)(subClass, superClass); } /***/ }), @@ -45787,6 +53084,24 @@ function _possibleConstructorReturn(self, call) { /***/ }), +/***/ 37661: +/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { + +"use strict"; +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "Z": () => (/* binding */ _setPrototypeOf) +/* harmony export */ }); +function _setPrototypeOf(o, p) { + _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { + o.__proto__ = p; + return o; + }; + + return _setPrototypeOf(o, p); +} + +/***/ }), + /***/ 80046: /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { @@ -45927,7 +53242,7 @@ function _unsupportedIterableToArray(o, minLen) { /***/ }), -/***/ 20785: +/***/ 9074: /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; @@ -45939,11 +53254,11 @@ __webpack_require__.d(__webpack_exports__, { "J3": () => (/* reexport */ memoizePromise) }); -// UNUSED EXPORTS: isArrayBufferEqual +// UNUSED EXPORTS: decodeHexString, encodeHexString, isArrayBufferEqual // EXTERNAL MODULE: ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/memoize.js var memoize = __webpack_require__(77184); -;// CONCATENATED MODULE: ../../node_modules/.pnpm/@dimensiondev+kit@0.0.0-20220228054820-f2378be/node_modules/@dimensiondev/kit/esm/ecmascript/memoizePromise.js +;// CONCATENATED MODULE: ../../node_modules/.pnpm/@dimensiondev+kit@0.0.0-20220617045824-8bc7a27/node_modules/@dimensiondev/kit/esm/ecmascript/memoizePromise.js /** * The promise version of lodash-es/memoize @@ -45968,7 +53283,7 @@ function memoizePromise(f, resolver) { return memorizedFunction; } //# sourceMappingURL=memoizePromise.js.map -;// CONCATENATED MODULE: ../../node_modules/.pnpm/@dimensiondev+kit@0.0.0-20220228054820-f2378be/node_modules/@dimensiondev/kit/esm/ecmascript/defer.js +;// CONCATENATED MODULE: ../../node_modules/.pnpm/@dimensiondev+kit@0.0.0-20220617045824-8bc7a27/node_modules/@dimensiondev/kit/esm/ecmascript/defer.js /** * ! Please use the Promise constructor if possible * If you don't understand https://groups.google.com/forum/#!topic/bluebird-js/mUiX2-vXW2s @@ -45982,7 +53297,7 @@ function defer() { return [p, a, b]; } //# sourceMappingURL=defer.js.map -;// CONCATENATED MODULE: ../../node_modules/.pnpm/@dimensiondev+kit@0.0.0-20220228054820-f2378be/node_modules/@dimensiondev/kit/esm/ecmascript/concatArrayBuffer.js +;// CONCATENATED MODULE: ../../node_modules/.pnpm/@dimensiondev+kit@0.0.0-20220617045824-8bc7a27/node_modules/@dimensiondev/kit/esm/ecmascript/concatArrayBuffer.js function concatArrayBuffer(...parts) { const buffers = parts.map((x) => new Uint8Array(x)); const u8 = new Uint8Array(buffers.reduce((a, b) => a + b.length, 0)); @@ -45994,7 +53309,8 @@ function concatArrayBuffer(...parts) { return u8.buffer; } //# sourceMappingURL=concatArrayBuffer.js.map -;// CONCATENATED MODULE: ../../node_modules/.pnpm/@dimensiondev+kit@0.0.0-20220228054820-f2378be/node_modules/@dimensiondev/kit/esm/ecmascript/index.js +;// CONCATENATED MODULE: ../../node_modules/.pnpm/@dimensiondev+kit@0.0.0-20220617045824-8bc7a27/node_modules/@dimensiondev/kit/esm/ecmascript/index.js + @@ -46003,50 +53319,20 @@ function concatArrayBuffer(...parts) { /***/ }), -/***/ 78183: +/***/ 16684: /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; // EXPORTS __webpack_require__.d(__webpack_exports__, { - "ky": () => (/* reexport */ findAvailableImageURL), "sS": () => (/* reexport */ formatFileSize) }); -// UNUSED EXPORTS: detectAudioSupport, detectImageSupport, detectVideoSupport, getDimensionAsJPEG, getDimensionAsPNG +// UNUSED EXPORTS: detectAudioSupport, detectImageSupport, detectVideoSupport, findAvailableImageURL, getDimensionAsJPEG, getDimensionAsPNG -;// CONCATENATED MODULE: ../../node_modules/.pnpm/@dimensiondev+kit@0.0.0-20220228054820-f2378be/node_modules/@dimensiondev/kit/esm/media/detectMediaSupport.js -function detectAudioSupport(url) { - return detectMediaSupport('audio', url); -} -function detectVideoSupport(url) { - return detectMediaSupport('video', url); -} -function detectImageSupport(url) { - return detectMediaSupport('img', url); -} -async function findAvailableImageURL(srcset) { - for (const url of Array.from(srcset)) { - if (await detectImageSupport(url)) { - return url; - } - } - throw new Error('unavailable'); -} -function detectMediaSupport(name, url) { - return new Promise((resolve) => { - const reject = () => resolve(false); - const element = document.createElement(name); - element.addEventListener('error', reject); - element.addEventListener('abort', reject); - element.addEventListener('load', () => resolve(true)); - element.addEventListener('loadedmetadata', () => resolve(true)); - element.src = url; - }); -} -//# sourceMappingURL=detectMediaSupport.js.map -;// CONCATENATED MODULE: ../../node_modules/.pnpm/@dimensiondev+kit@0.0.0-20220228054820-f2378be/node_modules/@dimensiondev/kit/esm/media/file.js +;// CONCATENATED MODULE: ../../node_modules/.pnpm/@dimensiondev+kit@0.0.0-20220617045824-8bc7a27/node_modules/@dimensiondev/kit/esm/media/file.js +/// function formatFileSize(input = 0, si = isMacPlatform(), fractionDigits = 1) { if (input === 0 || Number.isNaN(input)) { return '0 B'; @@ -46060,17 +53346,18 @@ function formatFileSize(input = 0, si = isMacPlatform(), fractionDigits = 1) { } /** @internal */ function isMacPlatform() { + var _a, _b; try { - return /^Mac/.test(navigator.platform); + return /^Mac/.test((_b = (_a = navigator.userAgentData) === null || _a === void 0 ? void 0 : _a.platform) !== null && _b !== void 0 ? _b : navigator.platform); } catch { return false; } } //# sourceMappingURL=file.js.map -// EXTERNAL MODULE: ../../node_modules/.pnpm/@dimensiondev+kit@0.0.0-20220228054820-f2378be/node_modules/@dimensiondev/kit/esm/index.js + 1 modules -var esm = __webpack_require__(28807); -;// CONCATENATED MODULE: ../../node_modules/.pnpm/@dimensiondev+kit@0.0.0-20220228054820-f2378be/node_modules/@dimensiondev/kit/esm/media/image.js +// EXTERNAL MODULE: ../../node_modules/.pnpm/@dimensiondev+kit@0.0.0-20220617045824-8bc7a27/node_modules/@dimensiondev/kit/esm/index.js +var esm = __webpack_require__(46123); +;// CONCATENATED MODULE: ../../node_modules/.pnpm/@dimensiondev+kit@0.0.0-20220617045824-8bc7a27/node_modules/@dimensiondev/kit/esm/media/image.js /* eslint-disable no-bitwise */ function getDimensionAsPNG(buf) { @@ -46113,7 +53400,7 @@ function getDimensionAsJPEG(buf) { } } //# sourceMappingURL=image.js.map -;// CONCATENATED MODULE: ../../node_modules/.pnpm/@dimensiondev+kit@0.0.0-20220228054820-f2378be/node_modules/@dimensiondev/kit/esm/media/index.js +;// CONCATENATED MODULE: ../../node_modules/.pnpm/@dimensiondev+kit@0.0.0-20220617045824-8bc7a27/node_modules/@dimensiondev/kit/esm/media/index.js @@ -46121,7 +53408,7 @@ function getDimensionAsJPEG(buf) { /***/ }), -/***/ 74221: +/***/ 86598: /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; @@ -46140,7 +53427,7 @@ function safeUnreachable(value) { /***/ }), -/***/ 75961: +/***/ 35972: /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; @@ -46157,7 +53444,7 @@ function getEnumAsArray(enumObject) { /***/ }), -/***/ 26998: +/***/ 98690: /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; @@ -46182,7 +53469,7 @@ function combineAbortSignal(..._) { /***/ }), -/***/ 89086: +/***/ 15304: /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; @@ -46201,7 +53488,7 @@ function delay(time) { /***/ }), -/***/ 32291: +/***/ 84344: /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; @@ -46215,7 +53502,9 @@ function encodeText(input) { return new TextEncoder().encode(input); } function decodeText(input) { - return new TextDecoder().decode(input); + if (input instanceof ArrayBuffer) + return new TextDecoder().decode(input); + return new TextDecoder().decode(Uint8Array.from(input)); } function decodeArrayBuffer(input) { const decoded = atob(input); @@ -46227,7 +53516,7 @@ function decodeArrayBuffer(input) { } function encodeArrayBuffer(input) { let encoded = ''; - for (const code of new Uint8Array(input)) { + for (const code of input instanceof ArrayBuffer ? new Uint8Array(input) : Uint8Array.from(input)) { encoded += String.fromCharCode(code); } return btoa(encoded); @@ -46236,7 +53525,7 @@ function encodeArrayBuffer(input) { /***/ }), -/***/ 50579: +/***/ 39373: /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; @@ -46689,63 +53978,18 @@ var Result; /***/ }), -/***/ 44284: +/***/ 14084: /***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { "use strict"; /* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "VD": () => (/* binding */ e), /* harmony export */ "oy": () => (/* binding */ u) /* harmony export */ }); -/* unused harmony exports JSON_TYPES, TypesonPromise, Undefined, escapeKeyPathComponent, getByKeyPath, getJSONType, hasConstructorOf, isObject, isPlainObject, isThenable, isUserObject, setAtKeyPath, toStringTag, unescapeKeyPathComponent */ +/* unused harmony exports JSON_TYPES, Undefined, escapeKeyPathComponent, getByKeyPath, getJSONType, hasConstructorOf, isObject, isPlainObject, isThenable, isUserObject, setAtKeyPath, toStringTag, unescapeKeyPathComponent */ function ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function _objectSpread2(e){for(var t=1;te.length)&&(t=e.length);for(var r=0,n=new Array(t);r-1){var n=e[unescapeKeyPathComponent(t.slice(0,r))];return void 0===n?void 0:getByKeyPath(n,t.slice(r+1))}return e[unescapeKeyPathComponent(t)]}function setAtKeyPath(e,t,r){if(""===t)return r;var n=t.indexOf(".");return n>-1?setAtKeyPath(e[unescapeKeyPathComponent(t.slice(0,n))],t.slice(n+1),r):(e[unescapeKeyPathComponent(t)]=r,e)}function getJSONType(e){return null===e?"null":Array.isArray(e)?"array":_typeof(e)}function _await(e,t,r){return r?t?t(e):e:(e&&e.then||(e=Promise.resolve(e)),t?e.then(t):e)}var o=Object.keys,i=Array.isArray,c={}.hasOwnProperty,s=["type","replaced","iterateIn","iterateUnsetNumeric"];function _async(e){return function(){for(var t=[],r=0;rn?-1:rt.keypath}var u=function(){function Typeson(e){_classCallCheck(this,Typeson),this.options=e,this.plainObjectReplacers=[],this.nonplainObjectReplacers=[],this.revivers={},this.types={}}return _createClass(Typeson,[{key:"stringify",value:function stringify(e,t,r,n){n=_objectSpread2(_objectSpread2(_objectSpread2({},this.options),n),{},{stringification:!0});var a=this.encapsulate(e,null,n);return i(a)?JSON.stringify(a[0],t,r):a.then((function(e){return JSON.stringify(e,t,r)}))}},{key:"stringifySync",value:function stringifySync(e,t,r,n){return this.stringify(e,t,r,_objectSpread2(_objectSpread2({throwOnBadSyncType:!0},n),{},{sync:!0}))}},{key:"stringifyAsync",value:function stringifyAsync(e,t,r,n){return this.stringify(e,t,r,_objectSpread2(_objectSpread2({throwOnBadSyncType:!0},n),{},{sync:!1}))}},{key:"parse",value:function parse(e,t,r){return r=_objectSpread2(_objectSpread2(_objectSpread2({},this.options),r),{},{parse:!0}),this.revive(JSON.parse(e,t),r)}},{key:"parseSync",value:function parseSync(e,t,r){return this.parse(e,t,_objectSpread2(_objectSpread2({throwOnBadSyncType:!0},r),{},{sync:!0}))}},{key:"parseAsync",value:function parseAsync(e,t,r){return this.parse(e,t,_objectSpread2(_objectSpread2({throwOnBadSyncType:!0},r),{},{sync:!1}))}},{key:"specialTypeNames",value:function specialTypeNames(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return r.returnTypeNames=!0,this.encapsulate(e,t,r)}},{key:"rootTypeName",value:function rootTypeName(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return r.iterateNone=!0,this.encapsulate(e,t,r)}},{key:"encapsulate",value:function encapsulate(t,r,n){var a=_async((function(t,r){return _await(Promise.all(r.map((function(e){return e[1].p}))),(function(n){return _await(Promise.all(n.map(_async((function(n){var o=!1,i=[],c=_slicedToArray(r.splice(0,1),1),s=_slicedToArray(c[0],7),u=s[0],p=s[2],y=s[3],l=s[4],f=s[5],h=s[6],v=_encapsulate(u,n,p,y,i,!0,h),d=hasConstructorOf(v,e);return function _invoke(e,t){var r=e();return r&&r.then?r.then(t):t(r)}((function(){if(u&&d)return _await(v.p,(function(e){l[f]=e;var r=a(t,i);return o=!0,r}))}),(function(e){return o?e:(u?l[f]=v:t=d?v.p:v,a(t,i))}))})))),(function(){return t}))}))})),u=(n=_objectSpread2(_objectSpread2({sync:!0},this.options),n)).sync,p=this,y={},l=[],f=[],h=[],v=!("cyclic"in n)||n.cyclic,d=n.encapsulateObserver,b=_encapsulate("",t,v,r||{},h);function finish(e){var t=Object.values(y);if(n.iterateNone)return t.length?t[0]:getJSONType(e);if(t.length){if(n.returnTypeNames)return _toConsumableArray(new Set(t));e&&isPlainObject(e)&&!c.call(e,"$types")?e.$types=y:e={$:e,$types:{$:y}}}else isObject(e)&&c.call(e,"$types")&&(e={$:e,$types:!0});return!n.returnTypeNames&&e}function _adaptBuiltinStateObjectProperties(e,t,r){Object.assign(e,t);var n=s.map((function(t){var r=e[t];return delete e[t],r}));r(),s.forEach((function(t,r){e[t]=n[r]}))}function _encapsulate(t,r,a,s,u,h,v){var b,_={},O=_typeof(r),j=d?function(n){var o=v||s.type||getJSONType(r);d(Object.assign(n||_,{keypath:t,value:r,cyclic:a,stateObj:s,promisesData:u,resolvingTypesonPromise:h,awaitingTypesonPromise:hasConstructorOf(r,e)},{type:o}))}:null;if(["string","boolean","number","undefined"].includes(O))return void 0===r||Number.isNaN(r)||r===Number.NEGATIVE_INFINITY||r===Number.POSITIVE_INFINITY?(b=s.replaced?r:replace(t,r,s,u,!1,h,j))!==r&&(_={replaced:b}):b=r,j&&j(),b;if(null===r)return j&&j(),r;if(a&&!s.iterateIn&&!s.iterateUnsetNumeric&&r&&"object"===_typeof(r)){var m=l.indexOf(r);if(!(m<0))return y[t]="#",j&&j({cyclicKeypath:f[m]}),"#"+f[m];!0===a&&(l.push(r),f.push(t))}var S,g=isPlainObject(r),P=i(r),T=(g||P)&&(!p.plainObjectReplacers.length||s.replaced)||s.iterateIn?r:replace(t,r,s,u,g||P,null,j);if(T!==r?(b=T,_={replaced:T}):""===t&&hasConstructorOf(r,e)?(u.push([t,r,a,s,void 0,void 0,s.type]),b=r):P&&"object"!==s.iterateIn||"array"===s.iterateIn?(S=new Array(r.length),_={clone:S}):(["function","symbol"].includes(_typeof(r))||"toJSON"in r||hasConstructorOf(r,e)||hasConstructorOf(r,Promise)||hasConstructorOf(r,ArrayBuffer))&&!g&&"object"!==s.iterateIn?b=r:(S={},s.addLength&&(S.length=r.length),_={clone:S}),j&&j(),n.iterateNone)return S||b;if(!S)return b;if(s.iterateIn){var w=function _loop(n){var o={ownKeys:c.call(r,n)};_adaptBuiltinStateObjectProperties(s,o,(function(){var o=t+(t?".":"")+escapeKeyPathComponent(n),i=_encapsulate(o,r[n],Boolean(a),s,u,h);hasConstructorOf(i,e)?u.push([o,i,Boolean(a),s,S,n,s.type]):void 0!==i&&(S[n]=i)}))};for(var A in r)w(A);j&&j({endIterateIn:!0,end:!0})}else o(r).forEach((function(n){var o=t+(t?".":"")+escapeKeyPathComponent(n);_adaptBuiltinStateObjectProperties(s,{ownKeys:!0},(function(){var t=_encapsulate(o,r[n],Boolean(a),s,u,h);hasConstructorOf(t,e)?u.push([o,t,Boolean(a),s,S,n,s.type]):void 0!==t&&(S[n]=t)}))})),j&&j({endIterateOwn:!0,end:!0});if(s.iterateUnsetNumeric){for(var C=r.length,k=function _loop2(n){if(!(n in r)){var o=t+(t?".":"")+n;_adaptBuiltinStateObjectProperties(s,{ownKeys:!1},(function(){var t=_encapsulate(o,void 0,Boolean(a),s,u,h);hasConstructorOf(t,e)?u.push([o,t,Boolean(a),s,S,n,s.type]):void 0!==t&&(S[n]=t)}))}},N=0;N { - -"use strict"; -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "f": () => (/* binding */ createContainer), -/* harmony export */ "u": () => (/* binding */ useContainer) -/* harmony export */ }); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(86248); - - -function createContainer(useHook) { - var Context = react__WEBPACK_IMPORTED_MODULE_0__.createContext(null); - - function Provider(props) { - var value = useHook(props.initialState); - return react__WEBPACK_IMPORTED_MODULE_0__.createElement(Context.Provider, { - value: value - }, props.children); - } - - function useContainer() { - var value = react__WEBPACK_IMPORTED_MODULE_0__.useContext(Context); - - if (value === null) { - throw new Error("Component must be wrapped with "); - } - - return value; - } - - return { - Provider: Provider, - useContainer: useContainer - }; -} -function useContainer(container) { - return container.useContainer(); -} - - -//# sourceMappingURL=unstated-next.mjs.map - - /***/ }), /***/ 8474: @@ -46812,11 +54056,27 @@ module.exports = {"version":"1.0.34"}; /***/ }), -/***/ 90667: +/***/ 30460: +/***/ ((module) => { + +"use strict"; +module.exports = JSON.parse('{"type":"object","additionalProperties":true,"properties":{"type":{"type":"string","enum":["arweave"],"title":"type"},"id":{"type":"string","title":"id"},"name":{"type":"string","title":"name"},"size":{"type":"number","title":"size"},"createdAt":{"type":"string","format":"date-time","title":"createdAt"},"key":{"type":"string","title":"key"},"payloadTxID":{"type":"string","title":"payloadTxID"},"landingTxID":{"type":"string","title":"landingTxID"}},"required":["createdAt","id","landingTxID","name","payloadTxID","size"]}'); + +/***/ }), + +/***/ 10857: /***/ ((module) => { "use strict"; -module.exports = JSON.parse('{"snackbar_done":"Done","import":"Import","balance":"Balance","select_token":"Select a Token","erc20_token_list_placeholder":"Token name or contract address","erc20_token_list_loading":"Loading token lists...","erc20_search_token_loading":"Loading token...","erc20_search_not_token_found":"No results or contract address does not meet the query criteria.","address_viewer_binding_rules_title":"The NFT gallary will show NFTs as below rules:","address_viewer_binding_rule1":"The nickname is ENS or RNS.","address_viewer_binding_rule2":"The bio contains ENS, RNS or a valid address.","address_viewer_binding_rule3":"The ID + suffix is ENS or RNS.","address_viewer_binding_rule4":"The address used to sign the PFP NFTs.","address_viewer_current_display_of":"Current display of {{type}}: ","address_viewer_loading":"Loading...","address_viewer_address_name_ens":"ENS","address_viewer_address_name_uns":"UNS","address_viewer_address_name_dns":"DNS","address_viewer_address_name_rns":"RNS","address_viewer_address_name_address":"address","address_viewer_address_name_twitter":"twitter blue","dialog_dismiss":"Dismiss"}'); +module.exports = JSON.parse('{"type":"object","additionalProperties":true,"properties":{"type":{"type":"string","enum":["file"],"title":"type"},"provider":{"type":"string","enum":["arweave","ipfs","swarm"],"title":"provider"},"id":{"type":"string","title":"id"},"name":{"type":"string","title":"name"},"size":{"type":"number","title":"size"},"createdAt":{"type":"string","format":"date-time","title":"createdAt"},"key":{"type":"string","title":"key"},"payloadTxID":{"type":"string","title":"payloadTxID"},"landingTxID":{"type":"string","title":"landingTxID"}},"required":["createdAt","id","landingTxID","name","payloadTxID","provider","size","type"]}'); + +/***/ }), + +/***/ 75961: +/***/ ((module) => { + +"use strict"; +module.exports = JSON.parse('{"snackbar_done":"Done","import":"Import","balance":"Balance","select_token":"Select a Token","erc20_token_list_placeholder":"Token name or contract address","erc20_token_list_loading":"Loading token lists...","erc20_search_token_loading":"Loading token...","erc20_search_not_token_found":"No results or contract address does not meet the query criteria.","address_viewer_binding_rules_title":"The NFT gallery will show NFTs as below rules:","address_viewer_binding_rule1":"The nickname is ENS or RNS.","address_viewer_binding_rule2":"The bio contains ENS, RNS or a valid address.","address_viewer_binding_rule3":"The ID + suffix is ENS or RNS.","address_viewer_binding_rule4":"The address used to sign the PFP NFTs.","address_viewer_current_display_of":"Current display of {{type}}: ","address_viewer_loading":"Loading...","address_viewer_address_name_ens":"ENS","address_viewer_address_name_uns":"UNS","address_viewer_address_name_dns":"DNS","address_viewer_address_name_rns":"RNS","address_viewer_address_name_address":"address","address_viewer_address_name_twitter":"twitter blue","address_viewer_address_name_sol":"SOL","dialog_dismiss":"Dismiss","dialog_confirm":"Confirm","dialog_share":"Share","dialog_confirm_label":"Confirm","share_dialog_transaction":"Transaction","share_dialog_view_on_explorer":"View on Explorer","share_dialog_transaction_confirmed":"Your transaction was confirmed!","load_failed":"Load failed","load_retry":"Reload"}'); /***/ }), @@ -46840,7 +54100,7 @@ module.exports = JSON.parse('{"snackbar_done":"완료","import":"불러오기"," /***/ ((module) => { "use strict"; -module.exports = JSON.parse('{"snackbar_done":"crwdns1977:0crwdne1977:0","import":"crwdns8001:0crwdne8001:0","balance":"crwdns8023:0crwdne8023:0","select_token":"crwdns8025:0crwdne8025:0","erc20_token_list_placeholder":"crwdns9007:0crwdne9007:0","erc20_token_list_loading":"crwdns10623:0crwdne10623:0","erc20_search_token_loading":"crwdns10625:0crwdne10625:0","erc20_search_not_token_found":"crwdns10627:0crwdne10627:0","address_viewer_binding_rules_title":"crwdns10781:0crwdne10781:0","address_viewer_binding_rule1":"crwdns10783:0crwdne10783:0","address_viewer_binding_rule2":"crwdns10785:0crwdne10785:0","address_viewer_binding_rule3":"crwdns10787:0crwdne10787:0","address_viewer_binding_rule4":"crwdns10789:0crwdne10789:0","address_viewer_current_display_of":"crwdns10791:0{{type}}crwdne10791:0","address_viewer_loading":"crwdns10793:0crwdne10793:0","address_viewer_address_name_ens":"crwdns10795:0crwdne10795:0","address_viewer_address_name_uns":"crwdns10797:0crwdne10797:0","address_viewer_address_name_dns":"crwdns10799:0crwdne10799:0","address_viewer_address_name_rns":"crwdns10801:0crwdne10801:0","address_viewer_address_name_address":"crwdns10803:0crwdne10803:0","address_viewer_address_name_twitter":"crwdns14534:0crwdne14534:0","dialog_dismiss":"crwdns14952:0crwdne14952:0"}'); +module.exports = JSON.parse('{"snackbar_done":"crwdns1977:0crwdne1977:0","import":"crwdns8001:0crwdne8001:0","balance":"crwdns8023:0crwdne8023:0","select_token":"crwdns8025:0crwdne8025:0","erc20_token_list_placeholder":"crwdns9007:0crwdne9007:0","erc20_token_list_loading":"crwdns10623:0crwdne10623:0","erc20_search_token_loading":"crwdns10625:0crwdne10625:0","erc20_search_not_token_found":"crwdns10627:0crwdne10627:0","address_viewer_binding_rules_title":"crwdns10781:0crwdne10781:0","address_viewer_binding_rule1":"crwdns10783:0crwdne10783:0","address_viewer_binding_rule2":"crwdns10785:0crwdne10785:0","address_viewer_binding_rule3":"crwdns10787:0crwdne10787:0","address_viewer_binding_rule4":"crwdns10789:0crwdne10789:0","address_viewer_current_display_of":"crwdns10791:0{{type}}crwdne10791:0","address_viewer_loading":"crwdns10793:0crwdne10793:0","address_viewer_address_name_ens":"crwdns10795:0crwdne10795:0","address_viewer_address_name_uns":"crwdns10797:0crwdne10797:0","address_viewer_address_name_dns":"crwdns10799:0crwdne10799:0","address_viewer_address_name_rns":"crwdns10801:0crwdne10801:0","address_viewer_address_name_address":"crwdns10803:0crwdne10803:0","address_viewer_address_name_twitter":"crwdns14534:0crwdne14534:0","address_viewer_address_name_sol":"crwdns17210:0crwdne17210:0","dialog_dismiss":"crwdns14952:0crwdne14952:0","dialog_confirm":"crwdns16694:0crwdne16694:0","dialog_share":"crwdns16696:0crwdne16696:0","dialog_confirm_label":"crwdns16698:0crwdne16698:0","share_dialog_transaction":"crwdns16700:0crwdne16700:0","share_dialog_view_on_explorer":"crwdns16702:0crwdne16702:0","share_dialog_transaction_confirmed":"crwdns16704:0crwdne16704:0","load_failed":"crwdns17242:0crwdne17242:0","load_retry":"crwdns17244:0crwdne17244:0"}'); /***/ }), @@ -46860,27 +54120,139 @@ module.exports = JSON.parse('{"snackbar_done":"完成","import":"導入","balanc /***/ }), +/***/ 36621: +/***/ ((module) => { + +"use strict"; +module.exports = JSON.parse('{"AAVE_SUBGRAPHS":{"Mainnet":"https://api.thegraph.com/subgraphs/name/aave/protocol-v2","Ropsten":"","Rinkeby":"","Kovan":"https://api.thegraph.com/subgraphs/name/aave/protocol-v2-kovan","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"AAVE_LENDING_POOL_ADDRESSES_PROVIDER_CONTRACT_ADDRESS":{"Mainnet":"0xb53c1a33016b2dc2ff3653530bff1848a515c8c5","Ropsten":"","Rinkeby":"","Kovan":"0x88757f2f99175387ab4c6a4b3067c77a695b0349","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"AAVE_PROTOCOL_DATA_PROVIDER_CONTRACT_ADDRESS":{"Mainnet":"0x057835Ad21a177dbdd3090bB1CAE03EaCF78Fc6d","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""}}'); + +/***/ }), + +/***/ 65757: +/***/ ((module) => { + +"use strict"; +module.exports = JSON.parse('{"AIRDROP_CONTRACT_ADDRESS":{"Mainnet":"0x7adcfcafb69aae283f4268e59209ba64a5db4d91","Ropsten":"0xf1276B659FF28EDf92accFb013B1E6c9F782bFfF","Rinkeby":"0x2189D088927bfc1563d0b3E447F6472402FED6DD","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""}}'); + +/***/ }), + +/***/ 70901: +/***/ ((module) => { + +"use strict"; +module.exports = JSON.parse('{"GEN_ART_721_MINTER":{"Mainnet":"0x1DEC9E52f1320F7Deb29cBCd7B7d67f3dF785142","Ropsten":"0xfd50294f1ddeccdf6ea55bc57a15916328177653","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""}}'); + +/***/ }), + +/***/ 35934: +/***/ ((module) => { + +"use strict"; +module.exports = JSON.parse('{"KNOWN_ORIGIN_DIGITAL_ASSET_V2":{"Mainnet":"0x3AD503084f1bD8d15A7F5EbE7A038C064e1E3Fa1","Ropsten":"","Rinkeby":"","Kovan":"0x54395e6c737734d3de29fc62c10a3ed51efa2e8a","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"ARTIST_ACCEPTING_BIDS_V2":{"Mainnet":"0x78C889749f29D2965a76Ede3BBb232A9729Ccf0b","Ropsten":"","Rinkeby":"","Kovan":"0x7bd41f5c8cb6225e7415f1406e117701a40626e0","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"CANFT_MARKET":{"Mainnet":"0x72d081953957723e540780a0C6bA31725469238E","Ropsten":"","Rinkeby":"","Kovan":"0xf690444aae2371da6f83af442f52535530702ab4","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""}}'); + +/***/ }), + /***/ 60816: /***/ ((module) => { "use strict"; -module.exports = JSON.parse('{"CHAIN_ID":{"Mainnet":"eth","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"bsc","BSCT":"","Matic":"matic","Mumbai":"","Arbitrum":"arb","Arbitrum_Rinkeby":"","xDai":"xdai","Avalanche":"avax","Avalanche_Fuji":"","Celo":"celo","Fantom":"ftm","Aurora":"aurora","Aurora_Testnet":"","Conflux":""}}'); +module.exports = JSON.parse('{"CHAIN_ID":{"Mainnet":"eth","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"bsc","BSCT":"","Matic":"matic","Mumbai":"","Arbitrum":"arb","Arbitrum_Rinkeby":"","xDai":"xdai","Avalanche":"avax","Avalanche_Fuji":"","Celo":"celo","Fantom":"ftm","Aurora":"aurora","Aurora_Testnet":"","Conflux":"","Harmony":"hmy","Harmony_Test":""}}'); /***/ }), -/***/ 73003: +/***/ 56417: /***/ ((module) => { "use strict"; -module.exports = JSON.parse('[{"stateMutability":"payable","type":"fallback"},{"inputs":[{"internalType":"address[]","name":"users","type":"address[]"},{"internalType":"address[]","name":"tokens","type":"address[]"}],"name":"balances","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"user","type":"address"},{"internalType":"address","name":"token","type":"address"}],"name":"tokenBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]'); +module.exports = JSON.parse('{"GITCOIN_MAINTAINER_ADDRESS":{"Mainnet":"0x00De4B13153673BCAE2616b67bf822500d325Fc3","Ropsten":"","Rinkeby":"0x00De4B13153673BCAE2616b67bf822500d325Fc3","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"0x00De4B13153673BCAE2616b67bf822500d325Fc3","Mumbai":"0x00De4B13153673BCAE2616b67bf822500d325Fc3","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"BULK_CHECKOUT_ADDRESS":{"Mainnet":"0x7d655c57f71464B6f83811C55D84009Cd9f5221C","Ropsten":"","Rinkeby":"0x7d655c57f71464B6f83811C55D84009Cd9f5221C","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"0xb99080b9407436eBb2b8Fe56D45fFA47E9bb8877","Mumbai":"0x3E2849E2A489C8fE47F52847c42aF2E8A82B9973","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"GITCOIN_ETH_ADDRESS":{"Mainnet":"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE","Ropsten":"","Rinkeby":"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE","Mumbai":"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"GITCOIN_TIP_PERCENTAGE":{"Mainnet":5,"Ropsten":5,"Rinkeby":5,"Kovan":5,"Gorli":5,"BSC":5,"BSCT":5,"Matic":5,"Mumbai":5,"Arbitrum":5,"Arbitrum_Rinkeby":5,"xDai":5,"Avalanche":5,"Avalanche_Fuji":0,"Celo":0,"Fantom":0,"Aurora":0,"Aurora_Testnet":0,"Conflux":0,"Harmony":0,"Harmony_Test":0}}'); /***/ }), -/***/ 28053: +/***/ 42953: /***/ ((module) => { "use strict"; -module.exports = JSON.parse('[{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"punkIndexToAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]'); +module.exports = JSON.parse('{"GOOD_GHOSTING_CONTRACT_ADDRESS_FILE":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"https://raw.githubusercontent.com/Good-Ghosting/mask-plugin-integration/master/games.json","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"GOOD_GHOSTING_INCENTIVES_CONTRACT_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"0x357D51124f59836DeD84c8a1730D72B749d8BC23","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""}}'); + +/***/ }), + +/***/ 25664: +/***/ ((module) => { + +"use strict"; +module.exports = JSON.parse('{"ITO_CONTRACT_ADDRESS":{"Mainnet":"0xf110fec3075d7531141b6bf16b11604cb028a17b","Ropsten":"","Rinkeby":"0x7751b8c715d1Df74D181C86aE01801330211f370","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"MASK_ITO_CONTRACT_ADDRESS":{"Mainnet":"0x86812da3A623ab9606976078588b80C315E55FA3","Ropsten":"","Rinkeby":"0x0aC41A27bA9F132D5687CAC986f5302Da6f5F9f6","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"ITO2_CONTRACT_ADDRESS":{"Mainnet":"0xc2CFbF22d6Dc87D0eE18d38d73733524c109Ff46","Ropsten":"0xBD4c3Cf084B6F4d25430Ee5d44436e860Cc58Ee4","Rinkeby":"","Kovan":"","Gorli":"","BSC":"0x96c7D011cdFD467f551605f0f5Fce279F86F4186","BSCT":"","Matic":"0xF9F7C1496c21bC0180f4B64daBE0754ebFc8A8c0","Mumbai":"","Arbitrum":"0x71834a3FDeA3E70F14a93ED85c6be70925D0CAd9","Arbitrum_Rinkeby":"0x9b3649eC8C9f68484acC76D437B145a4e58Bf2A2","xDai":"0x913975af2Bb8a6Be4100D7dc5e9765B77F6A5d6c","Avalanche":"0x02Ea0720254F7fa4eca7d09A1b9C783F1020EbEF","Avalanche_Fuji":"0xf5056B96ab242C566002852d0b98ce0BcDf1af51","Celo":"0xaA5bfd7355637eA7405CB194a55303e821c4c569","Fantom":"0x981be454a930479d92C91a0092D204b64845A5D6","Aurora":"0x2cf91AD8C175305EBe6970Bd8f81231585EFbd77","Aurora_Testnet":"0xdcA6F476EebCDE8FE8b072e3fC80dBC28dC209b3","Conflux":"0x066804d9123bf2609ed4a4a40b1177a9c5a9ed51","Harmony":"0x5b966f3a32db9c180843bcb40267a66b73e4f022","Harmony_Test":"0x578a7fee5f0d8cec7d00578bf37374c5b95c4b98"},"ITO2_CONTRACT_CREATION_BLOCK_HEIGHT":{"Mainnet":12766513,"Ropsten":10572050,"Rinkeby":0,"Kovan":0,"Gorli":0,"BSC":8885927,"BSCT":0,"Matic":16516643,"Mumbai":0,"Arbitrum":102022,"Arbitrum_Rinkeby":708696,"xDai":17865755,"Avalanche":8289892,"Avalanche_Fuji":4751103,"Celo":10278776,"Fantom":25071597,"Aurora":57350598,"Aurora_Testnet":77919102,"Conflux":37722805,"Harmony":24133305,"Harmony_Test":22744597},"DEFAULT_QUALIFICATION_ADDRESS":{"Mainnet":"0x81b6ae377e360dcad63611846a2516f4ba8c88ac","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"0x5B966f3a32Db9C180843bCb40267A66b73E4f022","BSCT":"","Matic":"0x02Ea0720254F7fa4eca7d09A1b9C783F1020EbEF","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"0x02Ea0720254F7fa4eca7d09A1b9C783F1020EbEF","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"DEFAULT_QUALIFICATION2_ADDRESS":{"Mainnet":"0x4dC5f343Fe57E4fbDA1B454d125D396A3181272c","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"0xAb7B1bE4233A04e5C43a810E75657ECED8E5463B","BSCT":"","Matic":"0x2cf91AD8C175305EBe6970Bd8f81231585EFbd77","Mumbai":"","Arbitrum":"0x913975af2Bb8a6Be4100D7dc5e9765B77F6A5d6c","Arbitrum_Rinkeby":"0xEbd753E66649C824241E63894301BA8Db5DBF5Bb","xDai":"0x71834a3FDeA3E70F14a93ED85c6be70925D0CAd9","Avalanche":"0x54a0A221C25Fc0a347EC929cFC5db0be17fA2a2B","Avalanche_Fuji":"","Celo":"0x2cB220F925E603A04BEE05F210252120deBA29d7","Fantom":"0x83D6b366f21e413f214EB077D5378478e71a5eD2","Aurora":"0x578a7Fee5f0D8CEc7d00578Bf37374C5b95C4b98","Aurora_Testnet":"","Conflux":"0x05ee315e407c21a594f807d61d6cc11306d1f149","Harmony":"0x02Ea0720254F7fa4eca7d09A1b9C783F1020EbEF","Harmony_Test":"0x812463356F58fc8194645A1838ee6C52D8ca2D26"},"SUBGRAPH_URL":{"Mainnet":"https://api.thegraph.com/subgraphs/name/dimensiondev/mask-ito-mainnet","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"https://api.thegraph.com/subgraphs/name/dimensiondev/mask-ito-bsc-mainnet","BSCT":"","Matic":"https://api.thegraph.com/subgraphs/name/dimensiondev/mask-ito-polygon","Mumbai":"","Arbitrum":"https://api.thegraph.com/subgraphs/name/dimensiondev/mask-ito-arbitrum-one","Arbitrum_Rinkeby":"","xDai":"https://api.thegraph.com/subgraphs/name/dimensiondev/mask-ito-xdai","Avalanche":"https://api.thegraph.com/subgraphs/name/dimensiondev/mask-ito-avalanche","Avalanche_Fuji":"","Celo":"https://api.thegraph.com/subgraphs/name/dimensiondev/mask-ito-celo","Fantom":"https://api.thegraph.com/subgraphs/name/dimensiondev/mask-ito-fantom","Aurora":"https://api.thegraph.com/subgraphs/name/dimensiondev/mask-ito-aurora","Aurora_Testnet":"","Conflux":"","Harmony":"https://api.thegraph.com/subgraphs/name/dimensiondev/mask-ito-harmony","Harmony_Test":""}}'); + +/***/ }), + +/***/ 34476: +/***/ ((module) => { + +"use strict"; +module.exports = JSON.parse('{"LIDO_stETH_ADDRESS":{"Mainnet":"0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"0x1643E812aE58766192Cf7D2Cf9567dF2C37e9B7F","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"LIDO_REFERRAL_ADDRESS":{"Mainnet":"0x934b510d4c9103e6a87aef13b816fb080286d649","Ropsten":"0x934b510d4c9103e6a87aef13b816fb080286d649","Rinkeby":"0x934b510d4c9103e6a87aef13b816fb080286d649","Kovan":"0x934b510d4c9103e6a87aef13b816fb080286d649","Gorli":"0x934b510d4c9103e6a87aef13b816fb080286d649","BSC":"0x934b510d4c9103e6a87aef13b816fb080286d649","BSCT":"0x934b510d4c9103e6a87aef13b816fb080286d649","Matic":"0x934b510d4c9103e6a87aef13b816fb080286d649","Mumbai":"0x934b510d4c9103e6a87aef13b816fb080286d649","Arbitrum":"0x934b510d4c9103e6a87aef13b816fb080286d649","Arbitrum_Rinkeby":"0x934b510d4c9103e6a87aef13b816fb080286d649","xDai":"0x934b510d4c9103e6a87aef13b816fb080286d649","Avalanche":"0x934b510d4c9103e6a87aef13b816fb080286d649","Avalanche_Fuji":"0x934b510d4c9103e6a87aef13b816fb080286d649","Celo":"0x934b510d4c9103e6a87aef13b816fb080286d649","Fantom":"0x934b510d4c9103e6a87aef13b816fb080286d649","Aurora":"0x934b510d4c9103e6a87aef13b816fb080286d649","Aurora_Testnet":"0x934b510d4c9103e6a87aef13b816fb080286d649","Conflux":"","Harmony":"","Harmony_Test":""}}'); + +/***/ }), + +/***/ 96054: +/***/ ((module) => { + +"use strict"; +module.exports = JSON.parse('{"MASK_BOX_CONTRACT_ADDRESS":{"Mainnet":"0x294428f04b0F9EbC49B7Ad61E2736ebD6808c145","Ropsten":"","Rinkeby":"0xF8ED169BC0cdA735A88d32AC10b88AA5B69181ac","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"0x02F98667b3A1202a320F67a669a5e4e451fD0cc1","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"0x05ee315E407C21a594f807D61d6CC11306D1F149","Avalanche_Fuji":"0xae5c53294003f72b27cef476680979453193673d","Celo":"","Fantom":"","Aurora":"0xf5056B96ab242C566002852d0b98ce0BcDf1af51","Aurora_Testnet":"0xB4D669bc117735FdA44e90e52795132187705B21","Conflux":"","Harmony":"0xDc0905F2Dac875E29A36f22F1Ea046e063875D3e","Harmony_Test":"0x4Fda6d9Bb68Af18E5d686555b18cCeA7C82E0A3F"},"MASK_BOX_CONTRACT_FROM_BLOCK":{"Mainnet":13687866,"Ropsten":0,"Rinkeby":9369286,"Kovan":0,"Gorli":0,"BSC":0,"BSCT":0,"Matic":21774098,"Mumbai":0,"Arbitrum":0,"Arbitrum_Rinkeby":0,"xDai":0,"Avalanche":8351767,"Avalanche_Fuji":4752026,"Celo":0,"Fantom":0,"Aurora":57259004,"Aurora_Testnet":77919118,"Conflux":0,"Harmony":24172689,"Harmony_Test":22787067}}'); + +/***/ }), + +/***/ 11847: +/***/ ((module) => { + +"use strict"; +module.exports = JSON.parse('{"RED_PACKET_NFT_ADDRESS":{"Mainnet":"0x8d285739523FC2Ac8eC9c9C229ee863C8C9bF8C8","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"0xf8968e1Fcf1440Be5Cec7Bb495bcee79753d5E06","BSCT":"","Matic":"0xf6Dc042717EF4C097348bE00f4BaE688dcaDD4eA","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"0x96c7D011cdFD467f551605f0f5Fce279F86F4186","Avalanche_Fuji":"0x5de932BD252DD79231C9eDB5F2e30D488B785109","Celo":"","Fantom":"","Aurora":"0x05ee315E407C21a594f807D61d6CC11306D1F149","Aurora_Testnet":"0x97369fEE7db34E0BfE47861f2ec44b4378d13eB4","Conflux":"0x5b966f3a32db9c180843bcb40267a66b73e4f022","Harmony":"0x83d6b366f21e413f214eb077d5378478e71a5ed2","Harmony_Test":"0x981be454a930479d92c91a0092d204b64845a5d6"},"SUBGRAPH_URL":{"Mainnet":"https://api.thegraph.com/subgraphs/name/dimensiondev/mask-nft-red-packet-mainnet","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"https://api.thegraph.com/subgraphs/name/dimensiondev/mask-nft-red-packet-bsc-mainnet","BSCT":"","Matic":"https://api.thegraph.com/subgraphs/name/dimensiondev/mask-nft-red-packet-polygon","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"https://api.thegraph.com/subgraphs/name/dimensiondev/mask-nft-red-packet-avalanche","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"https://api.thegraph.com/subgraphs/name/dimensiondev/mask-nft-red-packet-aurora","Aurora_Testnet":"","Conflux":"","Harmony":"https://api.thegraph.com/subgraphs/name/dimensiondev/mask-nft-red-packet-harmony","Harmony_Test":""}}'); + +/***/ }), + +/***/ 29690: +/***/ ((module) => { + +"use strict"; +module.exports = JSON.parse('{"MASK_POOL_SUBGRAPH":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"https://api.thegraph.com/subgraphs/name/pooltogether/polygon-v3_3_8","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"MASK_POOL_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"0x345dc966180d5cf6b57a476362e9c859b725991e","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""}}'); + +/***/ }), + +/***/ 76260: +/***/ ((module) => { + +"use strict"; +module.exports = JSON.parse('{"HAPPY_RED_PACKET_ADDRESS_V1":{"Mainnet":"0x26760783c12181efa3c435aee4ae686c53bdddbb","Ropsten":"0x6d84e4863c0530bc0bb4291ef0ff454a40660ca3","Rinkeby":"0x575f906db24154977c7361c2319e2b25e897e3b6","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"HAPPY_RED_PACKET_ADDRESS_V2":{"Mainnet":"0x8D8912E1237F9FF3EF661F32743CFB276E052F98","Ropsten":"0x2E37676de88aD97f2BdBAa24d1421b4E3f3a63c8","Rinkeby":"0x575f906db24154977c7361c2319e2b25e897e3b6","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"HAPPY_RED_PACKET_ADDRESS_V3":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"0x71834a3FDeA3E70F14a93ED85c6be70925D0CAd9","BSCT":"","Matic":"0x913975af2bb8a6be4100d7dc5e9765b77f6a5d6c","Mumbai":"0x0061E06c9f640a03C4981f43762d2AE5e03873c5","Arbitrum":"0x02Ea0720254F7fa4eca7d09A1b9C783F1020EbEF","Arbitrum_Rinkeby":"0x6B70EC653c4331bdD0D0DCC7C941eb594e69a91d","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"HAPPY_RED_PACKET_ADDRESS_V4":{"Mainnet":"0xaBBe1101FD8fa5847c452A6D70C8655532B03C33","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"0x0ca42C178e14c618c81B8438043F27d9D38145f6","BSCT":"","Matic":"0x93e0b87A0aD0C991dc1B5176ddCD850c9a78aabb","Mumbai":"","Arbitrum":"0x83D6b366f21e413f214EB077D5378478e71a5eD2","Arbitrum_Rinkeby":"0x4A77E797031257db72F7D2C3Ec08a4FAc5c8CfE9","xDai":"0x54a0A221C25Fc0a347EC929cFC5db0be17fA2a2B","Avalanche":"0xF9F7C1496c21bC0180f4B64daBE0754ebFc8A8c0","Avalanche_Fuji":"0x3f64DFB6009d138DfD7b62916f3322A438d8b00D","Celo":"0xAb7B1bE4233A04e5C43a810E75657ECED8E5463B","Fantom":"0x578a7Fee5f0D8CEc7d00578Bf37374C5b95C4b98","Aurora":"0x19f179D7e0D7d9F9d5386afFF64271D98A91615B","Aurora_Testnet":"0xdB93cCd481012bB5D1E2c8d0aF7C5f2940c00fdC","Conflux":"0x96c7d011cdfd467f551605f0f5fce279f86f4186","Harmony":"0xab7b1be4233a04e5c43a810e75657eced8e5463b","Harmony_Test":"0x96c7d011cdfd467f551605f0f5fce279f86f4186"},"HAPPY_RED_PACKET_ADDRESS_V4_BLOCK_HEIGHT":{"Mainnet":12939427,"Ropsten":0,"Rinkeby":0,"Kovan":0,"Gorli":0,"BSC":9657240,"BSCT":0,"Matic":17494774,"Mumbai":0,"Arbitrum":909051,"Arbitrum_Rinkeby":0,"xDai":18101937,"Avalanche":8306507,"Avalanche_Fuji":4751550,"Celo":10413552,"Fantom":25112473,"Aurora":57552338,"Aurora_Testnet":77918765,"Conflux":37670572,"Harmony":24134162,"Harmony_Test":22701101},"SUBGRAPH_URL":{"Mainnet":"https://api.thegraph.com/subgraphs/name/dimensiondev/mask-red-packet-mainnet","Ropsten":"https://api.thegraph.com/subgraphs/name/dimensiondev/mask-red-packet-ropsten","Rinkeby":"","Kovan":"","Gorli":"","BSC":"https://api.thegraph.com/subgraphs/name/dimensiondev/mask-red-packet-bsc-mainnet","BSCT":"","Matic":"https://api.thegraph.com/subgraphs/name/dimensiondev/mask-red-packet-polygon","Mumbai":"https://api.thegraph.com/subgraphs/name/dimensiondev/mask-red-packet-mumbai","Arbitrum":"https://api.thegraph.com/subgraphs/name/dimensiondev/mask-red-packet-arbitrum-one","Arbitrum_Rinkeby":"","xDai":"https://api.thegraph.com/subgraphs/name/dimensiondev/mask-red-packet-xdai","Avalanche":"https://api.thegraph.com/subgraphs/name/dimensiondev/mask-red-packet-avalanche","Avalanche_Fuji":"","Celo":"https://api.thegraph.com/subgraphs/name/dimensiondev/mask-red-packet-celo","Fantom":"https://api.thegraph.com/subgraphs/name/dimensiondev/mask-red-packet-fantom","Aurora":"https://api.thegraph.com/subgraphs/name/dimensiondev/mask-red-packet-aurora","Aurora_Testnet":"","Conflux":"","Harmony":"https://api.thegraph.com/subgraphs/name/dimensiondev/mask-red-packet-harmony","Harmony_Test":""}}'); + +/***/ }), + +/***/ 25704: +/***/ ((module) => { + +"use strict"; +module.exports = JSON.parse('{"WNATIVE_ADDRESS":{"Mainnet":"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2","Ropsten":"0xc778417E063141139Fce010982780140Aa0cD5Ab","Rinkeby":"0xc778417E063141139Fce010982780140Aa0cD5Ab","Kovan":"0xd0A1E359811322d97991E03f863a0C30C2cF029C","Gorli":"0xb4fbf271143f4fbf7b91a5ded31805e42b2208d6","BSC":"0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c","BSCT":"0xaE8E19eFB41e7b96815649A6a60785e1fbA84C1e","Matic":"0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270","Mumbai":"0x9c3C9283D3e44854697Cd22D3Faa240Cfb032889","Arbitrum":"0x82aF49447D8a07e3bd95BD0d56f35241523fBab1","Arbitrum_Rinkeby":"0xB47e6A5f8b33b3F17603C83a0535A9dcD7E32681","xDai":"0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d","Avalanche":"0xb31f66aa3c1e785363f0875a1b74e27b85fd66c7","Avalanche_Fuji":"","Celo":"0x471EcE3750Da237f93B8E339c536989b8978a438","Fantom":"0x21be370d5312f44cb42ce377bc9b8a0cef1a4c83","Aurora":"0xC9BdeEd33CD01541e1eeD10f90519d2C06Fe3feB","Aurora_Testnet":"","Conflux":"","Harmony":"0xcF664087a5bB0237a0BAd6742852ec6c8d69A27a","Harmony_Test":""},"LDO_stETH_ADDRESS":{"Mainnet":"0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"0x1643E812aE58766192Cf7D2Cf9567dF2C37e9B7F","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"USDC_ADDRESS":{"Mainnet":"0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48","Ropsten":"0x0D9C8723B343A8368BebE0B5E89273fF8D712e3C","Rinkeby":"0x4DBCdF9B62e891a7cec5A2568C3F4FAF9E8Abe2b","Kovan":"0x2F375e94FC336Cdec2Dc0cCB5277FE59CBf1cAe5","Gorli":"","BSC":"0x8AC76a51cc950d9822D68b83fE1Ad97B32Cd580d","BSCT":"","Matic":"0x2791Bca1f2de4661ED88A30C99A7a9449Aa84174","Mumbai":"","Arbitrum":"0xe865dF68133fcEd7c2285ff3896B406CAfAa2dB8","Arbitrum_Rinkeby":"","xDai":"0xDDAfbb505ad214D7b80b1f830fcCc89B60fb7A83","Avalanche":"0xA7D7079b0FEaD91F3e65f86E8915Cb59c1a4C664","Avalanche_Fuji":"","Celo":"0x2A3684e9Dc20B857375EA04235F2F7edBe818FA7","Fantom":"0x04068da6c83afcfa0e13ba15a6696662335d5b75","Aurora":"0xb12bfca5a55806aaf64e99521918a4bf0fc40802","Aurora_Testnet":"","Conflux":"","Harmony":"0x985458E523dB3d53125813eD68c274899e9DfAb4","Harmony_Test":""},"USDT_ADDRESS":{"Mainnet":"0xdAC17F958D2ee523a2206206994597C13D831ec7","Ropsten":"0x516de3a7A567d81737e3a46ec4FF9cFD1fcb0136","Rinkeby":"0xD9BA894E0097f8cC2BBc9D24D308b98e36dc6D02","Kovan":"","Gorli":"","BSC":"0x55d398326f99059fF775485246999027B3197955","BSCT":"","Matic":"0xc2132D05D31c914a87C6611C10748AEb04B58e8F","Mumbai":"","Arbitrum":"0xFd086bC7CD5C481DCC9C85ebE478A1C0b69FCbb9","Arbitrum_Rinkeby":"","xDai":"0x4ECaBa5870353805a9F068101A40E0f32ed605C6","Avalanche":"0xc7198437980c041c805A1EDcbA50c1Ce5db95118","Avalanche_Fuji":"","Celo":"0xb020d981420744f6b0fedd22bb67cd37ce18a1d5","Fantom":"","Aurora":"0x4988a896b1227218e4a686fde5eabdcabd91571f","Aurora_Testnet":"","Conflux":"","Harmony":"0x3c2b8be99c50593081eaa2a724f0b8285f5aba8f","Harmony_Test":""},"aUSDT_ADDRESS":{"Mainnet":"0x71fc860F7D3A592A4a98740e39dB31d25db65ae8","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"0x1643E812aE58766192Cf7D2Cf9567dF2C37e9B7F","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"0x3C2B8Be99c50593081EAA2A724F0B8285F5aba8f","Harmony_Test":""},"HUSD_ADDRESS":{"Mainnet":"0xdf574c24545e5ffecb9a659c229253d4111d87e1","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"0x1e37E5b504F7773460d6eB0e24D2e7C223B66EC7","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"BUSD_ADDRESS":{"Mainnet":"0x4fabb145d64652a948d72533023f6e7a623c7c53","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"0xe9e7CEA3DedcA5984780Bafc599bD69ADd087D56","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"0xdd96B45877d0E8361a4DDb732da741e97f3191Ff","Avalanche":"0x19860ccb0a68fd4213ab9d8266f7bbf05a8dde98","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"0xE176EBE47d621b984a73036B9DA5d834411ef734","Harmony_Test":""},"COMP_ADDRESS":{"Mainnet":"0xc00e94Cb662C3520282E6f5717214004A7f26888","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"0x8505b9d2254A7Ae468c0E9dd10Ccea3A837aef5c","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"0xc3048e19e76cb9a3aa9d77d8c03c29fc906e2437","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"EASY_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"0xDb3b3b147A030F032633f6C4BEBf9a2fB5a882B5","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"MKR_ADDRESS":{"Mainnet":"0x9f8F72aA9304c8B593d555F12eF6589cC3A579A2","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"MASK_ADDRESS":{"Mainnet":"0x69af81e73A73B40adF4f3d4223Cd9b1ECE623074","Ropsten":"0x5B966f3a32Db9C180843bCb40267A66b73E4f022","Rinkeby":"0xFD9Eb54f6aC885079e7bB3E207922Bb7256E3fcb","Kovan":"","Gorli":"","BSC":"0x2eD9a5C8C13b93955103B9a7C167B67Ef4d568a3","BSCT":"","Matic":"0x2B9E7ccDF0F4e5B24757c1E1a80e311E34Cb10c7","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"MSKA_ADDRESS":{"Mainnet":"","Ropsten":"0xe54bf69054da160c597f8b5177924b9e4b81e930","Rinkeby":"0x960B816d6dD03eD514c03F56788279154348Ea37","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"MSKB_ADDRESS":{"Mainnet":"","Ropsten":"0xe379c7a6ba07575a5a49d8f8ebfd04921b86917d","Rinkeby":"0xFa4Bddbc85c0aC7a543c4b59dCfb5deB17F67D8E","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"MSKC_ADDRESS":{"Mainnet":"","Ropsten":"0xb1465b954f893d921566d8bb4092b6f03fc8c313","Rinkeby":"0xbE88c0E7029929f50c81690275395Da1d05745B0","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"MSKD_ADDRESS":{"Mainnet":"","Ropsten":"0x49A6D6FE38405e21C4402CcEacd23636AbE301bf","Rinkeby":"0x57b9bD626507421d82C7542e2877D72fE7815aFd","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"MSKE_ADDRESS":{"Mainnet":"","Ropsten":"0xE8f4dDB8c8b655B4e161d3480522d1d576561A4D","Rinkeby":"0xB46e44E06B89798Af11b8fE456b4796dc9026cE0","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"DAI_ADDRESS":{"Mainnet":"0x6B175474E89094C44Da98b954EedeAC495271d0F","Ropsten":"0x31f42841c2db5173425b5223809cf3a38fede360","Rinkeby":"0x5592ec0cfb4dbc12d3ab100b257153436a1f0fea","Kovan":"0x1528F3FCc26d13F7079325Fb78D9442607781c8C","Gorli":"","BSC":"0x1AF3F329e8BE154074D8769D1FFa4eE058B1DBc3","BSCT":"","Matic":"0x8f3Cf7ad23Cd3CaDbD9735AFf958023239c6A063","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"0xd586E7F844cEa2F87f50152665BCbc2C279D8d70","Avalanche_Fuji":"","Celo":"","Fantom":"0x8D11eC38a3EB5E956B052f67Da8Bdc9bef8Abf3E","Aurora":"0xe3520349f477a5f6eb06107066048508498a291b","Aurora_Testnet":"","Conflux":"","Harmony":"0xEf977d2f931C1978Db5F6747666fa1eACB0d0339","Harmony_Test":""},"AMPL_ADDRESS":{"Mainnet":"0xD46bA6D942050d489DBd938a2C909A5d5039A161","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"OKB_ADDRESS":{"Mainnet":"0x75231F58b43240C9718Dd58B4967c5114342a86c","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"UST_ADDRESS":{"Mainnet":"0xa47c8bf37f92aBed4A126BDA807A7b7498661acD","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"0x23396cF899Ca06c4472205fC903bDB4de249D6fC","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"0x224e64ec1BDce3870a6a6c777eDd450454068FEC","Harmony_Test":""},"eUSDC_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"0x4eBdE54ba404bE158262EDe801744b92b9878c61","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"eUSDT_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"0xfc39742Fe9420a7Af23757Fc7E78D1c3AE4A9474","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"fUSDT_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"0x049d68029688eAbF473097a2fC38ef61633A3C7A","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"eDAI_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"0xa1C09C8F4f5D03fcC27b456475d53d988e98D7C5","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"UNITOKEN_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"0xb33EaAd8d922B1083446DC23f610c2567fB5180f","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"TT01_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"0x1DBb7f76CDC5413eE211ff4100723791B2d98c05","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"TT02_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"0xd07B432B565AE10C6Dc0739989Ee3CF36A8dFf29","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"QUICK_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"0x831753DD7087CaC61aB5644b308642cc1c33Dc13","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"WANNA_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"0x7faA64Faf54750a2E3eE621166635fEAF406Ab22","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"WBTC_ADDRESS":{"Mainnet":"0x2260FAC5E5542a773Aa44fBCfeDf7C193bc2C599","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"0x1BFD67037B42Cf73acF2047067bd4F2C47D9BfD6","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"0x8e5bBbb09Ed1ebdE8674Cda39A0c169401db4252","Avalanche":"0x50b7545627a5162F82A992c33b87aDc75187B218","Avalanche_Fuji":"","Celo":"0xBe50a3013A1c94768A1ABb78c3cB79AB28fc1aCE","Fantom":"0x321162Cd933E2Be498Cd2267a90534A804051b11","Aurora":"0xf4eb217ba2454613b15dbdea6e5f22276410e89e","Aurora_Testnet":"","Conflux":"","Harmony":"0x3095c7557bCb296ccc6e363DE01b760bA031F2d9","Harmony_Test":""},"IGG_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"0xe6FC6C7CB6d2c31b359A49A33eF08aB87F4dE7CE","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"OM_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"0x9f5755D47fB80100E7ee65Bf7e136FCA85Dd9334","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"SUSHI_ADDRESS":{"Mainnet":"0x6B3595068778DD592e39A122f4f5a5cF09C90fE2","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"0xBEC775Cb42AbFa4288dE81F387a9b1A3c4Bc552A","Harmony_Test":""},"YAM_ADDRESS":{"Mainnet":"0x0e2298E3B3390e3b945a5456fBf59eCc3f55DA16","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"RUNE_ADDRESS":{"Mainnet":"0x3155BA85D5F96b2d030a4966AF206230e46849cb","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"YFI_ADDRESS":{"Mainnet":"0x0bc529c00C6401aEF6D220BE8C6Ea1667F6Ad93e","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"sUSD_ADDRESS":{"Mainnet":"0x57ab1ec28d129707052df4df418d58a2d46d5f51","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"0xF81b4Bec6Ca8f9fe7bE01CA734F55B2b6e03A7a0","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"BTCB_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"0x7130d2A12B9BCbFAe4f2634d864A1Ee1Ce3Ead9c","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"CAKE_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"0x0E09FaBB73Bd3Ade0a17ECC321fD13a19e81cE82","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"maUSDC_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"0x9719d867A500Ef117cC201206B8ab51e794d3F82","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"stETH_ADDRESS":{"Mainnet":"0xDFe66B14D37C77F4E9b180cEb433d1b164f0281D","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"NFTX_ADDRESS":{"Mainnet":"0x87d73E916D7057945c9BcD8cdd94e42A6F47f776","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"cUSD_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"0x765de816845861e75a25fca122bb6898b8b1282a","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"cEUR_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"0x765de816845861e75a25fca122bb6898b8b1282a","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"xTRI_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"0x802119e4e253D5C19aA06A5d567C5a41596D6803","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"JOE_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"0xce347E069B68C53A9ED5e7DA5952529cAF8ACCd4","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"PNG_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"0x60781C2586D68229fde47564546784ab3fACA982","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"VIPER_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"0xEa589E93Ff18b1a1F1e9BaC7EF3E86Ab62addc79","Harmony_Test":"0x69A655c56087D927eb05247FB56495a0f19B9f70"},"JEWEL_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"0x72Cb10C6bfA5624dD07Ef608027E366bd690048F","Harmony_Test":""},"CRYSTAL_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"0x72Cb10C6bfA5624dD07Ef608027E366bd690048F","Harmony_Test":""},"OPENX_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"0x01A4b054110d57069c1658AFBC46730529A3E326","Harmony_Test":""},"ETHER_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"0x2170Ed0880ac9A755fd29B2688956BD959F933F8","BSCT":"","Matic":"0x7ceB23fD6bC0adD59E62ac25578270cFf1b9f619","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"0x49D5c2BdFfac6CE2BFdB6640F4F80f226bc10bAB","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"NATIVE_TOKEN_ADDRESS":{"Mainnet":"0x0000000000000000000000000000000000000000","Ropsten":"0x0000000000000000000000000000000000000000","Rinkeby":"0x0000000000000000000000000000000000000000","Kovan":"0x0000000000000000000000000000000000000000","Gorli":"0x0000000000000000000000000000000000000000","BSC":"0x0000000000000000000000000000000000000000","BSCT":"0x0000000000000000000000000000000000000000","Matic":"0x0000000000000000000000000000000000000000","Mumbai":"0x0000000000000000000000000000000000000000","Arbitrum":"0x0000000000000000000000000000000000000000","Arbitrum_Rinkeby":"0x0000000000000000000000000000000000000000","xDai":"0x0000000000000000000000000000000000000000","Avalanche":"0x0000000000000000000000000000000000000000","Avalanche_Fuji":"0x0000000000000000000000000000000000000000","Celo":"0x471ece3750da237f93b8e339c536989b8978a438","Fantom":"0x0000000000000000000000000000000000000000","Aurora":"0x0000000000000000000000000000000000000000","Aurora_Testnet":"","Conflux":"0x0000000000000000000000000000000000000000","Harmony":"0x0000000000000000000000000000000000000000","Harmony_Test":"0x0000000000000000000000000000000000000000"},"WETH_ADDRESS":{"Mainnet":"0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"aWETH_ADDRESS":{"Mainnet":"0x030bA81f1c18d280636F32af80b9AAd02Cf0854e","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"0xe50fA9b3c56FfB159cB0FCA61F5c9D750e8128c8","Harmony_Test":""},"ZRX_ADDRESS":{"Mainnet":"0xE41d2489571d322189246DaFA5ebDe1F4699F498","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"aZRX_ADDRESS":{"Mainnet":"0xDf7FF54aAcAcbFf42dfe29DD6144A69b629f8C9e","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"UNI_ADDRESS":{"Mainnet":"0x1f9840a85d5aF5bf1D1762F925BDADdC4201F984","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"aUNI_ADDRESS":{"Mainnet":"0xB9D7CB55f463405CDfBe4E90a6D2Df01C2B92BF1","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"LIDO_ADDRESS":{"Mainnet":"0x5A98FcBEA516Cf06857215779Fd812CA3beF1B32","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"0x56340274fB5a72af1A3C6609061c451De7961Bd4","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"AAVE_ADDRESS":{"Mainnet":"0x7Fc66500c84A76Ad7e9c93437bFc5Ac33E2DDaE9","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"0xcF323Aad9E522B93F11c352CaA519Ad0E14eB40F","Harmony_Test":""},"aAAVE_ADDRESS":{"Mainnet":"0xFFC97d72E13E01096502Cb8Eb52dEe56f74DAD7B","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"0xf329e36C7bF6E5E86ce2150875a84Ce77f477375","Harmony_Test":""},"BAT_ADDRESS":{"Mainnet":"0x0D8775F648430679A709E98d2b0Cb6250d2887EF","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"aBAT_ADDRESS":{"Mainnet":"0x05Ec93c0365baAeAbF7AefFb0972ea7ECdD39CF1","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"ENJ_ADDRESS":{"Mainnet":"0xF629cBd94d3791C9250152BD8dfBDF380E2a3B9c","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"aENJ_ADDRESS":{"Mainnet":"0xaC6Df26a590F08dcC95D5a4705ae8abbc88509Ef","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"KNC_ADDRESS":{"Mainnet":"0xdd974D5C2e2928deA5F71b9825b8b646686BD200","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"aKNC_ADDRESS":{"Mainnet":"0x39C6b3e42d6A679d7D776778Fe880BC9487C2EDA","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"LINK_ADDRESS":{"Mainnet":"0x514910771AF9Ca656af840dff83E8264EcF986CA","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"0x218532a12a389a4a92fC0C5Fb22901D1c19198aA","Harmony_Test":""},"aLINK_ADDRESS":{"Mainnet":"0xa06bC25B5805d5F8d82847D191Cb4Af5A3e873E0","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"MANA_ADDRESS":{"Mainnet":"0x0F5D2fB29fb7d3CFeE444a200298f468908cC942","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"aMANA_ADDRESS":{"Mainnet":"0xa685a61171bb30d4072B338c80Cb7b2c865c873E","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"REN_ADDRESS":{"Mainnet":"0x408e41876cCCDC0F92210600ef50372656052a38","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"aREN_ADDRESS":{"Mainnet":"0xCC12AbE4ff81c9378D670De1b57F8e0Dd228D77a","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"SNX_ADDRESS":{"Mainnet":"0xC011a73ee8576Fb46F5E1c5751cA3B9Fe0af2a6F","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"aSNX_ADDRESS":{"Mainnet":"0x35f6B052C598d933D69A4EEC4D04c73A191fE6c2","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"TUSD_ADDRESS":{"Mainnet":"0x0000000000085d4780B73119b644AE5ecd22b376","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"aTUSD_ADDRESS":{"Mainnet":"0x101cc05f4A51C0319f570d5E146a8C625198e636","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"CRV_ADDRESS":{"Mainnet":"0xD533a949740bb3306d119CC777fa900bA034cd52","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"aCRV_ADDRESS":{"Mainnet":"0x8dAE6Cb04688C62d939ed9B68d32Bc62e49970b1","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"GUSD_ADDRESS":{"Mainnet":"0x056Fd409E1d7A124BD7017459dFEa2F387b6d5Cd","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"aGUSD_ADDRESS":{"Mainnet":"0xD37EE7e4f452C6638c96536e68090De8cBcdb583","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"BAL_ADDRESS":{"Mainnet":"0xba100000625a3754423978a60c9317c58a424e3D","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"aBAL_ADDRESS":{"Mainnet":"0x272F97b7a56a387aE942350bBC7Df5700f8a4576","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"xSUSHI_ADDRESS":{"Mainnet":"0x8798249c2E607446EfB7Ad49eC89dD1865Ff4272","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"aXSUSHI_ADDRESS":{"Mainnet":"0xF256CC7847E919FAc9B808cC216cAc87CCF2f47a","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"renFIL_ADDRESS":{"Mainnet":"0xD5147bc8e386d91Cc5DBE72099DAC6C9b99276F5","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"aRENFIL_ADDRESS":{"Mainnet":"0x514cd6756CCBe28772d4Cb81bC3156BA9d1744aa","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"RAI_ADDRESS":{"Mainnet":"0x03ab458634910AaD20eF5f1C8ee96F1D6ac54919","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"aRAI_ADDRESS":{"Mainnet":"0xc9BC48c72154ef3e5425641a3c747242112a46AF","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"USDP_ADDRESS":{"Mainnet":"0x8E870D67F660D95d5be530380D0eC0bd388289E1","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"aUSDP_ADDRESS":{"Mainnet":"0x2e8F4bdbE3d47d7d7DE490437AeA9915D930F1A3","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"DPI_ADDRESS":{"Mainnet":"0x1494CA1F11D487c2bBe4543E90080AeBa4BA3C2b","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"aDPI_ADDRESS":{"Mainnet":"0x6F634c6135D2EBD550000ac92F494F9CB8183dAe","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"FRAX_ADDRESS":{"Mainnet":"0x853d955aCEf822Db058eb8505911ED77F175b99e","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"0xFa7191D292d5633f702B0bd7E3E3BcCC0e633200","Harmony_Test":""},"aFRAX_ADDRESS":{"Mainnet":"0xd4937682df3C8aEF4FE912A96A74121C0829E664","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"FEI_ADDRESS":{"Mainnet":"0x956F47F50A910163D8BF957Cf5846D573E7f87CA","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"aFEI_ADDRESS":{"Mainnet":"0x683923dB55Fead99A79Fa01A27EeC3cB19679cC3","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"aWBTC_ADDRESS":{"Mainnet":"0x9ff58f4fFB29fA2266Ab25e75e2A8b3503311656","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"0x078f358208685046a11C85e8ad32895DED33A249","Harmony_Test":""},"aYFI_ADDRESS":{"Mainnet":"0x5165d24277cD063F5ac44Efd447B27025e888f37","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"aBUSD_ADDRESS":{"Mainnet":"0xA361718326c15715591c299427c62086F69923D9","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"aDAI_ADDRESS":{"Mainnet":"0x028171bCA77440897B824Ca71D1c56caC55b68A3","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"aMKR_ADDRESS":{"Mainnet":"0xc713e5E149D5D0715DcD1c156a020976e7E56B88","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"aSUSD_ADDRESS":{"Mainnet":"0x6C5024Cd4F8A59110119C56f8933403A539555EB","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"aUSDC_ADDRESS":{"Mainnet":"0xBcca60bB61934080951369a648Fb03DF4F96263C","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"aAMPL_ADDRESS":{"Mainnet":"0x1E6bb68Acec8fefBD87D192bE09bb274170a0548","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"0x0000000000000000000000000000000000000000","Harmony":"","Harmony_Test":""}}'); + +/***/ }), + +/***/ 24699: +/***/ ((module) => { + +"use strict"; +module.exports = JSON.parse('{"UNISWAP_V2_ROUTER_ADDRESS":{"Mainnet":"0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D","Ropsten":"0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D","Rinkeby":"0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D","Kovan":"0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D","Gorli":"0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D","Avalanche_Fuji":"0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"UNISWAP_V2_FACTORY_ADDRESS":{"Mainnet":"0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f","Ropsten":"0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f","Rinkeby":"0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f","Kovan":"0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f","Gorli":"0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f","Avalanche_Fuji":"0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"UNISWAP_V2_THEGRAPH":{"Mainnet":"https://api.thegraph.com/subgraphs/name/uniswap/uniswap-v2","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"UNISWAP_V2_INIT_CODE_HASH":{"Mainnet":"0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f","Ropsten":"0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f","Rinkeby":"0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f","Kovan":"0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f","Gorli":"0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f","Avalanche_Fuji":"0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"UNISWAP_SWAP_ROUTER_ADDRESS":{"Mainnet":"0xe592427a0aece92de3edee1f18e0157c05861564","Ropsten":"0xe592427a0aece92de3edee1f18e0157c05861564","Rinkeby":"0xe592427a0aece92de3edee1f18e0157c05861564","Kovan":"0xe592427a0aece92de3edee1f18e0157c05861564","Gorli":"0xe592427a0aece92de3edee1f18e0157c05861564","BSC":"","BSCT":"","Matic":"0xe592427a0aece92de3edee1f18e0157c05861564","Mumbai":"0xe592427a0aece92de3edee1f18e0157c05861564","Arbitrum":"0xE592427A0AEce92De3Edee1F18E0157C05861564","Arbitrum_Rinkeby":"0xE592427A0AEce92De3Edee1F18E0157C05861564","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"UNISWAP_V3_FACTORY_ADDRESS":{"Mainnet":"0x1F98431c8aD98523631AE4a59f267346ea31F984","Ropsten":"0x1F98431c8aD98523631AE4a59f267346ea31F984","Rinkeby":"0x1F98431c8aD98523631AE4a59f267346ea31F984","Kovan":"0x1F98431c8aD98523631AE4a59f267346ea31F984","Gorli":"0x1F98431c8aD98523631AE4a59f267346ea31F984","BSC":"","BSCT":"","Matic":"0x1F98431c8aD98523631AE4a59f267346ea31F984","Mumbai":"0x1F98431c8aD98523631AE4a59f267346ea31F984","Arbitrum":"0x1F98431c8aD98523631AE4a59f267346ea31F984","Arbitrum_Rinkeby":"0x1F98431c8aD98523631AE4a59f267346ea31F984","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"UNISWAP_V3_QUOTER_ADDRESS":{"Mainnet":"0xb27308f9F90D607463bb33eA1BeBb41C27CE5AB6","Ropsten":"0xb27308f9F90D607463bb33eA1BeBb41C27CE5AB6","Rinkeby":"0xb27308f9F90D607463bb33eA1BeBb41C27CE5AB6","Kovan":"0xb27308f9F90D607463bb33eA1BeBb41C27CE5AB6","Gorli":"0xb27308f9F90D607463bb33eA1BeBb41C27CE5AB6","BSC":"","BSCT":"","Matic":"0xb27308f9F90D607463bb33eA1BeBb41C27CE5AB6","Mumbai":"0xb27308f9F90D607463bb33eA1BeBb41C27CE5AB6","Arbitrum":"0xb27308f9F90D607463bb33eA1BeBb41C27CE5AB6","Arbitrum_Rinkeby":"0xb27308f9F90D607463bb33eA1BeBb41C27CE5AB6","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"UNISWAP_V3_THEGRAPH":{"Mainnet":"https://api.thegraph.com/subgraphs/name/uniswap/uniswap-v3","Ropsten":"https://api.thegraph.com/subgraphs/name/uniswap/uniswap-v3","Rinkeby":"https://api.thegraph.com/subgraphs/name/uniswap/uniswap-v3","Kovan":"https://api.thegraph.com/subgraphs/name/uniswap/uniswap-v3","Gorli":"https://api.thegraph.com/subgraphs/name/uniswap/uniswap-v3","BSC":"","BSCT":"","Matic":"https://api.thegraph.com/subgraphs/name/uniswap/uniswap-v3","Mumbai":"https://api.thegraph.com/subgraphs/name/uniswap/uniswap-v3","Arbitrum":"https://api.thegraph.com/subgraphs/name/uniswap/uniswap-v3","Arbitrum_Rinkeby":"https://api.thegraph.com/subgraphs/name/uniswap/uniswap-v3","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"UNISWAP_V3_INIT_CODE_HASH":{"Mainnet":"0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54","Ropsten":"0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54","Rinkeby":"0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54","Kovan":"0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54","Gorli":"0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54","BSC":"","BSCT":"","Matic":"0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54","Mumbai":"0xe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"SUSHISWAP_ROUTER_ADDRESS":{"Mainnet":"0xd9e1cE17f2641f24aE83637ab66a2cca9C378B9F","Ropsten":"0xd9e1cE17f2641f24aE83637ab66a2cca9C378B9F","Rinkeby":"0xd9e1cE17f2641f24aE83637ab66a2cca9C378B9F","Kovan":"0xd9e1cE17f2641f24aE83637ab66a2cca9C378B9F","Gorli":"0xd9e1cE17f2641f24aE83637ab66a2cca9C378B9F","BSC":"0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506","BSCT":"0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506","Matic":"0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506","Mumbai":"0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506","Arbitrum":"0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506","Arbitrum_Rinkeby":"0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506","xDai":"0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506","Avalanche":"0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506","Avalanche_Fuji":"0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506","Celo":"0x1421bDe4B10e8dd459b3BCb598810B1337D56842","Fantom":"0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506","Aurora":"0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506","Aurora_Testnet":"","Conflux":"","Harmony":"0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506","Harmony_Test":"0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506"},"SUSHISWAP_FACTORY_ADDRESS":{"Mainnet":"0xC0AEe478e3658e2610c5F7A4A2E1777cE9e4f2Ac","Ropsten":"0xC0AEe478e3658e2610c5F7A4A2E1777cE9e4f2Ac","Rinkeby":"0xC0AEe478e3658e2610c5F7A4A2E1777cE9e4f2Ac","Kovan":"0xC0AEe478e3658e2610c5F7A4A2E1777cE9e4f2Ac","Gorli":"0xC0AEe478e3658e2610c5F7A4A2E1777cE9e4f2Ac","BSC":"0xc35DADB65012eC5796536bD9864eD8773aBc74C4","BSCT":"0xc35DADB65012eC5796536bD9864eD8773aBc74C4","Matic":"0xc35DADB65012eC5796536bD9864eD8773aBc74C4","Mumbai":"0xc35DADB65012eC5796536bD9864eD8773aBc74C4","Arbitrum":"0xc35DADB65012eC5796536bD9864eD8773aBc74C4","Arbitrum_Rinkeby":"0xc35DADB65012eC5796536bD9864eD8773aBc74C4","xDai":"0xc35DADB65012eC5796536bD9864eD8773aBc74C4","Avalanche":"0xc35DADB65012eC5796536bD9864eD8773aBc74C4","Avalanche_Fuji":"0xc35DADB65012eC5796536bD9864eD8773aBc74C4","Celo":"0xc35DADB65012eC5796536bD9864eD8773aBc74C4","Fantom":"0xc35DADB65012eC5796536bD9864eD8773aBc74C4","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"0xc35DADB65012eC5796536bD9864eD8773aBc74C4","Harmony_Test":"0xc35DADB65012eC5796536bD9864eD8773aBc74C4"},"SUSHISWAP_THEGRAPH":{"Mainnet":"https://api.thegraph.com/subgraphs/name/zippoxer/sushiswap-subgraph-fork","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"SUSHISWAP_INIT_CODE_HASH":{"Mainnet":"0xe18a34eb0e04b04f7a0ac29a6e80748dca96319b42c54d679cb821dca90c6303","Ropsten":"0xe18a34eb0e04b04f7a0ac29a6e80748dca96319b42c54d679cb821dca90c6303","Rinkeby":"0xe18a34eb0e04b04f7a0ac29a6e80748dca96319b42c54d679cb821dca90c6303","Kovan":"0xe18a34eb0e04b04f7a0ac29a6e80748dca96319b42c54d679cb821dca90c6303","Gorli":"0xe18a34eb0e04b04f7a0ac29a6e80748dca96319b42c54d679cb821dca90c6303","BSC":"0xe18a34eb0e04b04f7a0ac29a6e80748dca96319b42c54d679cb821dca90c6303","BSCT":"0xe18a34eb0e04b04f7a0ac29a6e80748dca96319b42c54d679cb821dca90c6303","Matic":"0xe18a34eb0e04b04f7a0ac29a6e80748dca96319b42c54d679cb821dca90c6303","Mumbai":"0xe18a34eb0e04b04f7a0ac29a6e80748dca96319b42c54d679cb821dca90c6303","Arbitrum":"0xe18a34eb0e04b04f7a0ac29a6e80748dca96319b42c54d679cb821dca90c6303","Arbitrum_Rinkeby":"0xe18a34eb0e04b04f7a0ac29a6e80748dca96319b42c54d679cb821dca90c6303","xDai":"0xe18a34eb0e04b04f7a0ac29a6e80748dca96319b42c54d679cb821dca90c6303","Avalanche":"0xe18a34eb0e04b04f7a0ac29a6e80748dca96319b42c54d679cb821dca90c6303","Avalanche_Fuji":"0xe18a34eb0e04b04f7a0ac29a6e80748dca96319b42c54d679cb821dca90c6303","Celo":"0xe18a34eb0e04b04f7a0ac29a6e80748dca96319b42c54d679cb821dca90c6303","Fantom":"0xe18a34eb0e04b04f7a0ac29a6e80748dca96319b42c54d679cb821dca90c6303","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"0xe18a34eb0e04b04f7a0ac29a6e80748dca96319b42c54d679cb821dca90c6303","Harmony_Test":"0xe18a34eb0e04b04f7a0ac29a6e80748dca96319b42c54d679cb821dca90c6303"},"SASHIMISWAP_ROUTER_ADDRESS":{"Mainnet":"0xe4fe6a45f354e845f954cddee6084603cedb9410","Ropsten":"0xe4fe6a45f354e845f954cddee6084603cedb9410","Rinkeby":"0xe4fe6a45f354e845f954cddee6084603cedb9410","Kovan":"0xe4fe6a45f354e845f954cddee6084603cedb9410","Gorli":"0xe4fe6a45f354e845f954cddee6084603cedb9410","BSC":"0x24cefa86fc1826fd31b4cb911034907735f8085a","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"SASHIMISWAP_FACTORY_ADDRESS":{"Mainnet":"0xF028F723ED1D0fE01cC59973C49298AA95c57472","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"0x1daed74ed1dd7c9dabbe51361ac90a69d851234d","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"SASHIMISWAP_THEGRAPH":{"Mainnet":"https://api.thegraph.com/subgraphs/name/sashimiproject/sashimi","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"SASHIMISWAP_INIT_CODE_HASH":{"Mainnet":"0xb465bbe4edb8c9b0da8ff0b2b36ce0065de9fcd5a33f32c6856ea821779c8b72","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"0xb7b88947a6a423e784cb5512eccdfee6426797f5f681f521bc1687e844ef15be","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"QUICKSWAP_ROUTER_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"0xa5E0829CaCEd8fFDD4De3c43696c57F7D7A678ff","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"QUICKSWAP_FACTORY_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"0x5757371414417b8C6CAad45bAeF941aBc7d3Ab32","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"QUICKSWAP_THEGRAPH":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"https://api.thegraph.com/subgraphs/name/sameepsi/quickswap","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"QUICKSWAP_INIT_CODE_HASH":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"0x96e8ac4277198ff8b6f785478aa9a39f403cb768dd02cbee326c3e7da348845f","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"PANCAKESWAP_ROUTER_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"0x10ED43C718714eb63d5aA57B78B54704E256024E","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"PANCAKESWAP_FACTORY_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"0xcA143Ce32Fe78f1f7019d7d551a6402fC5350c73","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"PANCAKESWAP_THEGRAPH":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"https://thegraph.com/explorer/subgraph/pancakeswap/exchange","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"PANCAKESWAP_INIT_CODE_HASH":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"0x00fb7f630766e6a796048ea87d01acd3068e8ff67d078148a3fa3f4a84f69bd5","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"BALANCER_ETH_ADDRESS":{"Mainnet":"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE","Ropsten":"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE","Rinkeby":"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE","Kovan":"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE","Gorli":"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"BALANCER_EXCHANGE_PROXY_ADDRESS":{"Mainnet":"0x3E66B66Fd1d0b02fDa6C811Da9E0547970DB2f21","Ropsten":"","Rinkeby":"","Kovan":"0x4e67bf5bD28Dd4b570FBAFe11D0633eCbA2754Ec","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"BALANCER_POOLS_URL":{"Mainnet":"https://ipfs.fleek.co/ipns/balancer-bucket.storage.fleek.co/balancer-exchange/pools","Ropsten":"","Rinkeby":"","Kovan":"https://ipfs.fleek.co/ipns/balancer-team-bucket.storage.fleek.co/balancer-exchange-kovan/pools","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"DODO_ETH_ADDRESS":{"Mainnet":"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE","Ropsten":"","Rinkeby":"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE","Kovan":"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE","Gorli":"","BSC":"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE","BSCT":"","Matic":"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"DODO_EXCHANGE_PROXY_ADDRESS":{"Mainnet":"0xCB859eA579b28e02B87A1FDE08d087ab9dbE5149","Ropsten":"","Rinkeby":"0xcC8d87A7C747eeE4242045C47Ef25e0A81D56ae3","Kovan":"0xa375b128e139ae54EF7F189BC8fEb4624f1c2Afa","Gorli":"","BSC":"0xa128Ba44B2738A558A1fdC06d6303d52D3Cef8c1","BSCT":"","Matic":"0x6D310348d5c12009854DFCf72e0DF9027e8cb4f4","Mumbai":"","Arbitrum":"0xA867241cDC8d3b0C07C85cC06F25a0cD3b5474d8","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"0x335aC99bb3E51BDbF22025f092Ebc1Cf2c5cC619","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"BANCOR_ETH_ADDRESS":{"Mainnet":"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE","Ropsten":"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"BANCOR_EXCHANGE_PROXY_ADDRESS":{"Mainnet":"0x2F9EC37d6CcFFf1caB21733BdaDEdE11c823cCB0","Ropsten":"0xA6DB4B0963C37Bc959CbC0a874B5bDDf2250f26F","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"TRADERJOE_ROUTER_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"0x7E2528476b14507f003aE9D123334977F5Ad7B14","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"0x1b02dA8Cb0d097eB8D57A175b88c7D8b47997506","Avalanche":"0x60aE616a2155Ee3d9A68541Ba4544862310933d4","Avalanche_Fuji":"0x5db0735cf88F85E78ed742215090c465979B5006","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"TRADERJOE_FACTORY_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"0x86f83be9770894d8e46301b12E88e14AdC6cdb5F","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"0x9Ad6C38BE94206cA50bb0d90783181662f0Cfa10","Avalanche_Fuji":"0x7eeccb3028870540EEc3D88C2259506f2d34fEE0","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"TRADERJOE_THEGRAPH":{"Mainnet":"https://api.thegraph.com/subgraphs/name/traderjoe-xyz/exchange","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"TRADERJOE_INIT_CODE_HASH":{"Mainnet":"","Ropsten":"","Rinkeby":"0x0bbca9af0511ad1a1da383135cf3a8d2ac620e549ef9f6ae3a4c33c2fed0af91","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"0x0bbca9af0511ad1a1da383135cf3a8d2ac620e549ef9f6ae3a4c33c2fed0af91","Avalanche_Fuji":"0x0bbca9af0511ad1a1da383135cf3a8d2ac620e549ef9f6ae3a4c33c2fed0af91","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"OPENOCEAN_ETH_ADDRESS":{"Mainnet":"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE","BSCT":"","Matic":"0x0000000000000000000000000000000000001010","Mumbai":"","Arbitrum":"0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE","Arbitrum_Rinkeby":"","xDai":"0x0000000000000000000000000000000000000000","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"OPENOCEAN_EXCHANGE_PROXY_ADDRESS":{"Mainnet":"0x6352a56caadC4F1E25CD6c75970Fa768A3304e64","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"0x6352a56caadC4F1E25CD6c75970Fa768A3304e64","BSCT":"","Matic":"0x6352a56caadc4f1e25cd6c75970fa768a3304e64","Mumbai":"","Arbitrum":"0x6352a56caadc4f1e25cd6c75970fa768a3304e64","Arbitrum_Rinkeby":"","xDai":"0x6352a56caadC4F1E25CD6c75970Fa768A3304e64","Avalanche":"0x6352a56caadC4F1E25CD6c75970Fa768A3304e64","Avalanche_Fuji":"0x6352a56caadC4F1E25CD6c75970Fa768A3304e64","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"PANGOLIN_ROUTER_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"0x7E2528476b14507f003aE9D123334977F5Ad7B14","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"0xE54Ca86531e17Ef3616d22Ca28b0D458b6C89106","Avalanche_Fuji":"0xE54Ca86531e17Ef3616d22Ca28b0D458b6C89106","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"PANGOLIN_FACTORY_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"0xefa94DE7a4656D787667C749f7E1223D71E9FD88","Avalanche_Fuji":"0xE4A575550C2b460d2307b82dCd7aFe84AD1484dd","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"PANGOLIN_THEGRAPH":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"https://api.thegraph.com/subgraphs/name/dasconnor/pangolin-dex\'","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"PANGOLIN_INIT_CODE_HASH":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"0x40231f6b438bce0797c9ada29b718a87ea0a5cea3fe9a771abdd76bd41a3e545","Avalanche_Fuji":"0x40231f6b438bce0797c9ada29b718a87ea0a5cea3fe9a771abdd76bd41a3e545","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"WANNASWAP_ROUTER_V2_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"0xa3a1eF5Ae6561572023363862e238aFA84C72ef5","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"WANNASWAP_ROUTER_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"0x8f1E0Cf0f9f269Bc977C38635E560aa5b0E63323","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"WANNASWAP_FACTORY_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"0x7928D4FeA7b2c90C732c10aFF59cf403f0C38246","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"WANNASWAP_THEGRAPH":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"https://thegraph.com/explorer/subgraph/pancakeswap/exchange","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"WANNASWAP_INIT_CODE_HASH":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"0xa06b8b0642cf6a9298322d0c8ac3c68c291ca24dc66245cf23aa2abc33b57e21","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"TRISOLARIS_ROUTER_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"0x60913758635b54e6C9685f92201A5704eEe74748","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"0x2CB45Edb4517d5947aFdE3BEAbF95A582506858B","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"TRISOLARIS_FACTORY_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"0x10475e37cF1D006b56A4E4739Bcb478361564D22","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"0xc66F594268041dB60507F00703b152492fb176E7","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"TRISOLARIS_THEGRAPH":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"https://thegraph.com/explorer/subgraph/pancakeswap/exchange","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"TRISOLARIS_INIT_CODE_HASH":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"0x4a697f690d1f46e0f1a897a8662acae31ced3039b00c052392ed0bc179f9f28c","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"0x754e1d90e536e4c1df81b7f030f47b4ca80c87120e145c294f098c83a6cb5ace","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"MDEX_ROUTER_ADDRESS":{"Mainnet":"0x74119c3bca85bEA0538A62319a79b4a372590B47","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"0x0384E9ad329396C3A6A401243Ca71633B2bC4333","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"MDEX_FACTORY_ADDRESS":{"Mainnet":"0x7DAe51BD3E3376B8c7c4900E9107f12Be3AF1bA8","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"0x3CD1C46068dAEa5Ebb0d3f55F6915B10648062B8","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"MDEX_THEGRAPH":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"MDEX_INIT_CODE_HASH":{"Mainnet":"0x8ecc069c645df696f2ca5116ab459c5c2889f299e73c1b208aaa3cdd7d110b16","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"0x0d994d996174b05cfc7bed897dc1b20b4c458fc8d64fe98bc78b3c64a6b4d093","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"VENOMSWAP_ROUTER_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"0xf012702a5f0e54015362cbca26a26fc90aa832a3","Harmony_Test":"0x8e9A3cE409B13ef459fE4448aE97a79d6Ecd8b4b"},"VENOMSWAP_FACTORY_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"0x7D02c116b98d0965ba7B642ace0183ad8b8D2196","Harmony_Test":"0x066bafafC84607a956967F6f050bD14A8347952F"},"VENOMSWAP_THEGRAPH":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"VENOMSWAP_INIT_CODE_HASH":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"0x162f79e638367cd45a118c778971dfd8d96c625d2798d3b71994b035cfe9b6dc","Harmony_Test":"0x162f79e638367cd45a118c778971dfd8d96c625d2798d3b71994b035cfe9b6dc"},"OPENSWAP_ROUTER_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"0x2F99992024DCC51324BA4956bB1c510F36FA54F5","Harmony_Test":""},"OPENSWAP_FACTORY_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"0x5d2F9817303b940C9bB4F47C8C566c5C034d9848","Harmony_Test":""},"OPENSWAP_THEGRAPH":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"OPENSWAP_INIT_CODE_HASH":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"0x613b6eaa34b43dcb7eb8881dd4b5af85805be104d5f2f385304ffa8bda5e219c","Harmony_Test":""},"DEFIKINGDOMS_ROUTER_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"0x24ad62502d1C652Cc7684081169D04896aC20f30","Harmony_Test":""},"DEFIKINGDOMS_FACTORY_ADDRESS":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"0x9014B937069918bd319f80e8B3BB4A2cf6FAA5F7","Harmony_Test":""},"DEFIKINGDOMS_THEGRAPH":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"","Harmony_Test":""},"DEFIKINGDOMS_INIT_CODE_HASH":{"Mainnet":"","Ropsten":"","Rinkeby":"","Kovan":"","Gorli":"","BSC":"","BSCT":"","Matic":"","Mumbai":"","Arbitrum":"","Arbitrum_Rinkeby":"","xDai":"","Avalanche":"","Avalanche_Fuji":"","Celo":"","Fantom":"","Aurora":"","Aurora_Testnet":"","Conflux":"","Harmony":"0xf1c21a825f13eff153022ddea53156462dd79972b6f88adf06f79ca8b042c3c1","Harmony_Test":""}}'); + +/***/ }), + +/***/ 29389: +/***/ ((module) => { + +"use strict"; +module.exports = JSON.parse('[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":true,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"address","name":"dest","type":"address"},{"indexed":true,"internalType":"address","name":"donor","type":"address"}],"name":"DonationSent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"token","type":"address"},{"indexed":true,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":true,"internalType":"address","name":"dest","type":"address"}],"name":"TokenWithdrawn","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"inputs":[{"components":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address payable","name":"dest","type":"address"}],"internalType":"struct BulkCheckout.Donation[]","name":"_donations","type":"tuple[]"}],"name":"donate","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_dest","type":"address"}],"name":"withdrawEther","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_tokenAddress","type":"address"},{"internalType":"address","name":"_dest","type":"address"}],"name":"withdrawToken","outputs":[],"stateMutability":"nonpayable","type":"function"}]'); + +/***/ }), + +/***/ 6521: +/***/ ((module) => { + +"use strict"; +module.exports = JSON.parse('[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"indexed":false,"internalType":"uint256[]","name":"values","type":"uint256[]"}],"name":"TransferBatch","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"TransferSingle","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"string","name":"value","type":"string"},{"indexed":true,"internalType":"uint256","name":"id","type":"uint256"}],"name":"URI","type":"event"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"accounts","type":"address[]"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"}],"name":"balanceOfBatch","outputs":[{"internalType":"uint256[]","name":"","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256[]","name":"ids","type":"uint256[]"},{"internalType":"uint256[]","name":"amounts","type":"uint256[]"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeBatchTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"id","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"uri","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"}]'); /***/ }), @@ -46888,7 +54260,7 @@ module.exports = JSON.parse('[{"inputs":[{"internalType":"uint256","name":"token /***/ ((module) => { "use strict"; -module.exports = JSON.parse('[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"}]'); +module.exports = JSON.parse('[{"constant":true,"inputs":[],"name":"name","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"spender","type":"address"},{"name":"value","type":"uint256"}],"name":"approve","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"totalSupply","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"from","type":"address"},{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[],"name":"decimals","outputs":[{"name":"","type":"uint8"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"}],"name":"balanceOf","outputs":[{"name":"balance","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":true,"inputs":[],"name":"symbol","outputs":[{"name":"","type":"string"}],"payable":false,"stateMutability":"view","type":"function"},{"constant":false,"inputs":[{"name":"to","type":"address"},{"name":"value","type":"uint256"}],"name":"transfer","outputs":[{"name":"","type":"bool"}],"payable":false,"stateMutability":"nonpayable","type":"function"},{"constant":true,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":false,"stateMutability":"view","type":"function"},{"payable":true,"stateMutability":"payable","type":"fallback"},{"anonymous":false,"inputs":[{"indexed":true,"name":"owner","type":"address"},{"indexed":true,"name":"spender","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"name":"from","type":"address"},{"indexed":true,"name":"to","type":"address"},{"indexed":false,"name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"name":"increaseAllowance","inputs":[{"type":"address","name":"spender","internalType":"address"},{"name":"addedValue","type":"uint256","internalType":"uint256"}],"outputs":[{"type":"bool","internalType":"bool","name":""}],"stateMutability":"nonpayable","type":"function"}]'); /***/ }), @@ -46900,11 +54272,43 @@ module.exports = JSON.parse('[{"inputs":[{"internalType":"string","name":"name", /***/ }), -/***/ 2545: +/***/ 5261: +/***/ ((module) => { + +"use strict"; +module.exports = JSON.parse('[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"id","type":"bytes32"},{"indexed":false,"internalType":"address","name":"claimer","type":"address"},{"indexed":false,"internalType":"uint256","name":"claimed_value","type":"uint256"},{"indexed":false,"internalType":"address","name":"token_address","type":"address"}],"name":"ClaimSuccess","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"total","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"id","type":"bytes32"},{"indexed":false,"internalType":"string","name":"name","type":"string"},{"indexed":false,"internalType":"string","name":"message","type":"string"},{"indexed":false,"internalType":"address","name":"creator","type":"address"},{"indexed":false,"internalType":"uint256","name":"creation_time","type":"uint256"},{"indexed":false,"internalType":"address","name":"token_address","type":"address"},{"indexed":false,"internalType":"uint256","name":"number","type":"uint256"},{"indexed":false,"internalType":"bool","name":"ifrandom","type":"bool"},{"indexed":false,"internalType":"uint256","name":"duration","type":"uint256"}],"name":"CreationSuccess","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"id","type":"bytes32"},{"indexed":false,"internalType":"address","name":"token_address","type":"address"},{"indexed":false,"internalType":"uint256","name":"remaining_balance","type":"uint256"}],"name":"RefundSuccess","type":"event"},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"check_availability","outputs":[{"internalType":"address","name":"token_address","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"total","type":"uint256"},{"internalType":"uint256","name":"claimed","type":"uint256"},{"internalType":"bool","name":"expired","type":"bool"},{"internalType":"uint256","name":"claimed_amount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"bytes","name":"signedMsg","type":"bytes"},{"internalType":"address payable","name":"recipient","type":"address"}],"name":"claim","outputs":[{"internalType":"uint256","name":"claimed","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_public_key","type":"address"},{"internalType":"uint256","name":"_number","type":"uint256"},{"internalType":"bool","name":"_ifrandom","type":"bool"},{"internalType":"uint256","name":"_duration","type":"uint256"},{"internalType":"bytes32","name":"_seed","type":"bytes32"},{"internalType":"string","name":"_message","type":"string"},{"internalType":"string","name":"_name","type":"string"},{"internalType":"uint256","name":"_token_type","type":"uint256"},{"internalType":"address","name":"_token_addr","type":"address"},{"internalType":"uint256","name":"_total_tokens","type":"uint256"}],"name":"create_red_packet","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"refund","outputs":[],"stateMutability":"nonpayable","type":"function"}]'); + +/***/ }), + +/***/ 47744: +/***/ ((module) => { + +"use strict"; +module.exports = JSON.parse('[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"id","type":"bytes32"},{"indexed":true,"internalType":"address","name":"claimer","type":"address"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"to_value","type":"uint256"},{"indexed":false,"internalType":"address","name":"token_address","type":"address"}],"name":"ClaimSuccess","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"id","type":"bytes32"},{"indexed":true,"internalType":"address","name":"token_address","type":"address"},{"indexed":false,"internalType":"uint256","name":"remaining_balance","type":"uint256"},{"indexed":false,"internalType":"uint128[]","name":"exchanged_values","type":"uint128[]"}],"name":"DestructSuccess","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"creator","type":"address"},{"indexed":true,"internalType":"bytes32","name":"id","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"total","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"creation_time","type":"uint256"},{"indexed":false,"internalType":"address","name":"token_address","type":"address"},{"indexed":false,"internalType":"string","name":"message","type":"string"},{"indexed":false,"internalType":"uint256","name":"start","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"end","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"exchange_addrs","type":"address[]"},{"indexed":false,"internalType":"uint128[]","name":"ratios","type":"uint128[]"},{"indexed":false,"internalType":"address","name":"qualification","type":"address"},{"indexed":false,"internalType":"uint256","name":"limit","type":"uint256"}],"name":"FillSuccess","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"id","type":"bytes32"},{"indexed":true,"internalType":"address","name":"swapper","type":"address"},{"indexed":false,"internalType":"address","name":"from_address","type":"address"},{"indexed":false,"internalType":"address","name":"to_address","type":"address"},{"indexed":false,"internalType":"uint256","name":"from_value","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"to_value","type":"uint256"},{"indexed":false,"internalType":"uint128","name":"input_total","type":"uint128"},{"indexed":false,"internalType":"bool","name":"claimed","type":"bool"}],"name":"SwapSuccess","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"id","type":"bytes32"},{"indexed":true,"internalType":"address","name":"token_address","type":"address"},{"indexed":false,"internalType":"uint256","name":"withdraw_balance","type":"uint256"}],"name":"WithdrawSuccess","type":"event"},{"inputs":[],"name":"base_time","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"check_availability","outputs":[{"internalType":"address[]","name":"exchange_addrs","type":"address[]"},{"internalType":"uint256","name":"remaining","type":"uint256"},{"internalType":"bool","name":"started","type":"bool"},{"internalType":"bool","name":"expired","type":"bool"},{"internalType":"bool","name":"destructed","type":"bool"},{"internalType":"uint256","name":"unlock_time","type":"uint256"},{"internalType":"uint256","name":"swapped","type":"uint256"},{"internalType":"uint128[]","name":"exchanged_tokens","type":"uint128[]"},{"internalType":"bool","name":"claimed","type":"bool"},{"internalType":"uint256","name":"start_time","type":"uint256"},{"internalType":"uint256","name":"end_time","type":"uint256"},{"internalType":"address","name":"qualification_addr","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"ito_ids","type":"bytes32[]"}],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32"}],"name":"destruct","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_hash","type":"bytes32"},{"internalType":"uint256","name":"_start","type":"uint256"},{"internalType":"uint256","name":"_end","type":"uint256"},{"internalType":"string","name":"_message","type":"string"},{"internalType":"address[]","name":"_exchange_addrs","type":"address[]"},{"internalType":"uint128[]","name":"_ratios","type":"uint128[]"},{"internalType":"uint256","name":"_unlock_time","type":"uint256"},{"internalType":"address","name":"_token_addr","type":"address"},{"internalType":"uint256","name":"_total_tokens","type":"uint256"},{"internalType":"uint256","name":"_limit","type":"uint256"},{"internalType":"address","name":"_qualification","type":"address"}],"name":"fill_pool","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint64","name":"_base_time","type":"uint64"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"uint32","name":"_unlock_time","type":"uint32"}],"name":"setUnlockTime","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"bytes32","name":"verification","type":"bytes32"},{"internalType":"uint256","name":"exchange_addr_i","type":"uint256"},{"internalType":"uint128","name":"input_total","type":"uint128"},{"internalType":"bytes32[]","name":"data","type":"bytes32[]"}],"name":"swap","outputs":[{"internalType":"uint256","name":"swapped","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"internalType":"uint256","name":"addr_i","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]'); + +/***/ }), + +/***/ 7744: +/***/ ((module) => { + +"use strict"; +module.exports = JSON.parse('[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"box_id","type":"uint256"},{"indexed":true,"internalType":"address","name":"creator","type":"address"}],"name":"CancelSuccess","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"creator","type":"address"},{"indexed":true,"internalType":"uint256","name":"box_id","type":"uint256"},{"indexed":false,"internalType":"address","name":"token_address","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"timestamp","type":"uint256"}],"name":"ClaimPayment","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"creator","type":"address"},{"indexed":true,"internalType":"address","name":"nft_address","type":"address"},{"indexed":false,"internalType":"uint256","name":"box_id","type":"uint256"},{"indexed":false,"internalType":"string","name":"name","type":"string"},{"indexed":false,"internalType":"uint32","name":"start_time","type":"uint32"},{"indexed":false,"internalType":"uint32","name":"end_time","type":"uint32"},{"indexed":false,"internalType":"bool","name":"sell_all","type":"bool"}],"name":"CreationSuccess","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"box_id","type":"uint256"},{"indexed":true,"internalType":"address","name":"customer","type":"address"},{"indexed":true,"internalType":"address","name":"nft_address","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"OpenSuccess","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"inputs":[{"internalType":"address[]","name":"addrs","type":"address[]"}],"name":"addAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"box_id","type":"uint256"},{"internalType":"uint256[]","name":"nft_id_list","type":"uint256[]"}],"name":"addNftIntoBox","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addrs","type":"address[]"}],"name":"addWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"admin","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"box_id","type":"uint256"}],"name":"cancelBox","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"box_ids","type":"uint256[]"}],"name":"claimPayment","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"nft_address","type":"address"},{"internalType":"string","name":"name","type":"string"},{"components":[{"internalType":"address","name":"token_addr","type":"address"},{"internalType":"uint256","name":"price","type":"uint256"}],"internalType":"struct MysteryBox.PaymentOption[]","name":"payment","type":"tuple[]"},{"internalType":"uint32","name":"personal_limit","type":"uint32"},{"internalType":"uint32","name":"start_time","type":"uint32"},{"internalType":"uint32","name":"end_time","type":"uint32"},{"internalType":"bool","name":"sell_all","type":"bool"},{"internalType":"uint256[]","name":"nft_id_list","type":"uint256[]"},{"internalType":"address","name":"qualification","type":"address"},{"internalType":"address","name":"holder_token_addr","type":"address"},{"internalType":"uint256","name":"holder_min_token_amount","type":"uint256"},{"internalType":"bytes32","name":"qualification_data","type":"bytes32"}],"name":"createBox","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"box_id","type":"uint256"}],"name":"getBoxInfo","outputs":[{"internalType":"address","name":"creator","type":"address"},{"internalType":"address","name":"nft_address","type":"address"},{"internalType":"string","name":"name","type":"string"},{"internalType":"uint32","name":"personal_limit","type":"uint32"},{"internalType":"address","name":"qualification","type":"address"},{"internalType":"address","name":"holder_token_addr","type":"address"},{"internalType":"uint256","name":"holder_min_token_amount","type":"uint256"},{"internalType":"bytes32","name":"qualification_data","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"box_id","type":"uint256"}],"name":"getBoxStatus","outputs":[{"components":[{"internalType":"address","name":"token_addr","type":"address"},{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"uint256","name":"receivable_amount","type":"uint256"}],"internalType":"struct MysteryBox.PaymentInfo[]","name":"payment","type":"tuple[]"},{"internalType":"bool","name":"started","type":"bool"},{"internalType":"bool","name":"expired","type":"bool"},{"internalType":"bool","name":"canceled","type":"bool"},{"internalType":"uint256","name":"remaining","type":"uint256"},{"internalType":"uint256","name":"total","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"box_id","type":"uint256"},{"internalType":"uint256","name":"cursor","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"getNftListForSale","outputs":[{"internalType":"uint256[]","name":"nft_id_list","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"box_id","type":"uint256"},{"internalType":"address","name":"customer","type":"address"}],"name":"getPurchasedNft","outputs":[{"internalType":"uint256[]","name":"nft_id_list","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"box_id","type":"uint256"},{"internalType":"uint8","name":"amount","type":"uint8"},{"internalType":"uint8","name":"payment_token_index","type":"uint8"},{"internalType":"bytes","name":"proof","type":"bytes"}],"name":"openBox","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"addrs","type":"address[]"}],"name":"removeAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addrs","type":"address[]"}],"name":"removeWhitelist","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"box_id","type":"uint256"},{"internalType":"bytes32","name":"qualification_data","type":"bytes32"}],"name":"setQualificationData","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"whitelist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"}]'); + +/***/ }), + +/***/ 50092: +/***/ ((module) => { + +"use strict"; +module.exports = JSON.parse('[{"inputs":[{"internalType":"address","name":"_factory","type":"address"},{"internalType":"address","name":"_WETH","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"WETH","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"amountADesired","type":"uint256"},{"internalType":"uint256","name":"amountBDesired","type":"uint256"},{"internalType":"uint256","name":"amountAMin","type":"uint256"},{"internalType":"uint256","name":"amountBMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"addLiquidity","outputs":[{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"amountB","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amountTokenDesired","type":"uint256"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountETHMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"addLiquidityETH","outputs":[{"internalType":"uint256","name":"amountToken","type":"uint256"},{"internalType":"uint256","name":"amountETH","type":"uint256"},{"internalType":"uint256","name":"liquidity","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"reserveIn","type":"uint256"},{"internalType":"uint256","name":"reserveOut","type":"uint256"}],"name":"getAmountIn","outputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"reserveIn","type":"uint256"},{"internalType":"uint256","name":"reserveOut","type":"uint256"}],"name":"getAmountOut","outputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"}],"name":"getAmountsIn","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"}],"name":"getAmountsOut","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"reserveA","type":"uint256"},{"internalType":"uint256","name":"reserveB","type":"uint256"}],"name":"quote","outputs":[{"internalType":"uint256","name":"amountB","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountAMin","type":"uint256"},{"internalType":"uint256","name":"amountBMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"removeLiquidity","outputs":[{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"amountB","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountETHMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"removeLiquidityETH","outputs":[{"internalType":"uint256","name":"amountToken","type":"uint256"},{"internalType":"uint256","name":"amountETH","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountETHMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"removeLiquidityETHSupportingFeeOnTransferTokens","outputs":[{"internalType":"uint256","name":"amountETH","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountETHMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"bool","name":"approveMax","type":"bool"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"removeLiquidityETHWithPermit","outputs":[{"internalType":"uint256","name":"amountToken","type":"uint256"},{"internalType":"uint256","name":"amountETH","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountTokenMin","type":"uint256"},{"internalType":"uint256","name":"amountETHMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"bool","name":"approveMax","type":"bool"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"removeLiquidityETHWithPermitSupportingFeeOnTransferTokens","outputs":[{"internalType":"uint256","name":"amountETH","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenA","type":"address"},{"internalType":"address","name":"tokenB","type":"address"},{"internalType":"uint256","name":"liquidity","type":"uint256"},{"internalType":"uint256","name":"amountAMin","type":"uint256"},{"internalType":"uint256","name":"amountBMin","type":"uint256"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"bool","name":"approveMax","type":"bool"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"removeLiquidityWithPermit","outputs":[{"internalType":"uint256","name":"amountA","type":"uint256"},{"internalType":"uint256","name":"amountB","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapETHForExactTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactETHForTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactETHForTokensSupportingFeeOnTransferTokens","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactTokensForETH","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactTokensForETHSupportingFeeOnTransferTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactTokensForTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactTokensForTokensSupportingFeeOnTransferTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"amountInMax","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapTokensForExactETH","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"amountInMax","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapTokensForExactTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapAVAXForExactTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactAVAXForTokensSupportingFeeOnTransferTokens","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactTokensForAVAX","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactTokensForAVAXSupportingFeeOnTransferTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"amountInMax","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapTokensForExactAVAX","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountOutMin","type":"uint256"},{"internalType":"address[]","name":"path","type":"address[]"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"swapExactAVAXForTokens","outputs":[{"internalType":"uint256[]","name":"amounts","type":"uint256[]"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"WAVAX","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]'); + +/***/ }), + +/***/ 75517: /***/ ((module) => { "use strict"; -module.exports = JSON.parse('[{"name":"Ethereum Mainnet","chainId":1,"fullName":"Ethereum","shortName":"eth","chain":"ETH","network":"mainnet","networkId":1,"nativeCurrency":{"name":"Ether","symbol":"ETH","decimals":18,"logoURI":"https://static.debank.com/image/token/logo_url/eth/935ae4e4d1d12d59a99717a24f2540b5.png"},"faucets":[],"features":["EIP1559"],"explorers":[{"name":"etherscan","url":"https://etherscan.io","standard":"EIP3091"}],"infoURL":"https://ethereum.org"},{"name":"Ethereum Testnet Ropsten","chainId":3,"fullName":"Ethereum","shortName":"rop","chain":"ETH","network":"ropsten","networkId":3,"nativeCurrency":{"name":"Ropsten Ether","symbol":"ROP","decimals":18},"faucets":["https://faucet.ropsten.be?${ADDRESS}"],"features":["EIP1559"],"explorers":[{"name":"etherscan","url":"https://ropsten.etherscan.io","standard":"EIP3091"}],"infoURL":"https://github.com/ethereum/ropsten"},{"name":"Ethereum Testnet Rinkeby","chainId":4,"fullName":"Ethereum","shortName":"rin","chain":"ETH","network":"rinkeby","networkId":4,"nativeCurrency":{"name":"Rinkeby Ether","symbol":"RIN","decimals":18},"faucets":["https://faucet.rinkeby.io"],"features":[],"explorers":[{"name":"etherscan","url":"https://rinkeby.etherscan.io","standard":"EIP3091"}],"infoURL":"https://www.rinkeby.io"},{"name":"Ethereum Testnet Kovan","chainId":42,"fullName":"Ethereum","shortName":"kov","chain":"ETH","network":"kovan","networkId":42,"nativeCurrency":{"name":"Kovan Ether","symbol":"KOV","decimals":18},"faucets":["https://faucet.kovan.network","https://gitter.im/kovan-testnet/faucet"],"features":[],"explorers":[{"name":"etherscan","url":"https://kovan.etherscan.io","standard":"EIP3091"}],"infoURL":"https://kovan-testnet.github.io/website"},{"name":"Ethereum Testnet Görli","chainId":5,"fullName":"Ethereum","shortName":"gor","chain":"ETH","network":"goerli","networkId":5,"nativeCurrency":{"name":"Görli Ether","symbol":"GOR","decimals":18},"faucets":["https://goerli-faucet.slock.it/?address=${ADDRESS}","https://faucet.goerli.mudit.blog"],"features":[],"explorers":[{"name":"etherscan","url":"https://goerli.etherscan.io","standard":"EIP3091"}],"infoURL":"https://goerli.net/#about"},{"name":"BNB Chain Mainnet","chainId":56,"fullName":"Binance","shortName":"bnb","chain":"BNB Chain","network":"mainnet","networkId":56,"nativeCurrency":{"name":"Binance Chain Native Token","symbol":"BNB","decimals":18,"logoURI":"https://static.debank.com/image/bsc_token/logo_url/bsc/8bfdeaa46fe9be8f5cd43a53b8d1eea1.png"},"faucets":[],"features":[],"explorers":[{"name":"bscscan","url":"https://bscscan.com","standard":"EIP3091"}],"infoURL":"https://www.binance.org"},{"name":"Binance Smart Chain Testnet","chainId":97,"fullName":"Binance","shortName":"bnbt","chain":"BNB Chain","network":"chapel","networkId":97,"nativeCurrency":{"name":"Binance Chain Native Token","symbol":"tBNB","decimals":18},"faucets":["https://testnet.binance.org/faucet-smart"],"features":[],"explorers":[{"name":"bscscan-testnet","url":"https://testnet.bscscan.com","standard":"EIP3091"}],"infoURL":"https://testnet.binance.org/"},{"name":"Matic Mainnet","chainId":137,"fullName":"Polygon","shortName":"matic","chain":"Polygon","network":"mainnet","networkId":137,"nativeCurrency":{"name":"Matic","symbol":"MATIC","decimals":18,"logoURI":"https://static.debank.com/image/matic_token/logo_url/matic/e5a8a2860ba5cf740a474dcab796dc63.png"},"faucets":[],"features":["EIP1559"],"explorers":[{"name":"matic","url":"https://polygonscan.com","standard":"EIP3091"}],"infoURL":"https://matic.network/"},{"name":"Matic Testnet Mumbai","chainId":80001,"fullName":"Polygon","shortName":"maticmum","chain":"Matic","network":"testnet","networkId":80001,"nativeCurrency":{"name":"Matic","symbol":"tMATIC","decimals":18},"faucets":["https://faucet.matic.network/"],"features":["EIP1559"],"explorers":[{"name":"matic","url":"https://explorer-mumbai.maticvigil.com","standard":"EIP3091"}],"infoURL":"https://matic.network/"},{"name":"Arbitrum One","chainId":42161,"fullName":"Arbitrum","shortName":"arb","chain":"Arbitrum","network":"mainnet","networkId":42161,"nativeCurrency":{"name":"Arbitrum Ether","symbol":"ARETH","decimals":18,"logoURI":"https://static.debank.com/image/token/logo_url/eth/935ae4e4d1d12d59a99717a24f2540b5.png"},"faucets":[],"features":[],"explorers":[{"name":"arbitrum","url":"https://arbiscan.io","standard":"EIP3091"}],"infoURL":"https://arbitrum.io"},{"name":"Arbitrum Testnet Rinkeby","chainId":421611,"fullName":"Arbitrum","shortName":"arb-rinkeby","chain":"Arbitrum","network":"rinkeby","networkId":421611,"nativeCurrency":{"name":"Arbitrum Rinkeby Ether","symbol":"ARETH","decimals":18},"faucets":[],"features":[],"explorers":[{"name":"arbitrum-rinkeby","url":"https://rinkeby-explorer.arbitrum.io","standard":"EIP3091"}],"infoURL":"https://arbitrum.io"},{"name":"Expanse Network","chain":"EXP","network":"mainnet","rpc":["https://node.expanse.tech"],"faucets":[],"features":[],"nativeCurrency":{"name":"Expanse Network Ether","symbol":"EXP","decimals":18},"infoURL":"https://expanse.tech","shortName":"exp","chainId":2,"networkId":1,"slip44":40},{"name":"ThaiChain","chain":"TCH","network":"mainnet","rpc":["https://rpc.dome.cloud"],"faucets":[],"features":[],"nativeCurrency":{"name":"ThaiChain Ether","symbol":"TCH","decimals":18},"infoURL":"https://thaichain.io","shortName":"tch","chainId":7,"networkId":7},{"name":"Ubiq Network Mainnet","chain":"UBQ","network":"mainnet","rpc":["https://rpc.octano.dev","https://pyrus2.ubiqscan.io"],"faucets":[],"features":[],"nativeCurrency":{"name":"Ubiq Ether","symbol":"UBQ","decimals":18},"infoURL":"https://ubiqsmart.com","shortName":"ubq","chainId":8,"networkId":88,"slip44":108},{"name":"Ubiq Network Testnet","chain":"UBQ","network":"mainnet","rpc":[],"faucets":[],"features":[],"nativeCurrency":{"name":"Ubiq Testnet Ether","symbol":"TUBQ","decimals":18},"infoURL":"https://ethersocial.org","shortName":"tubq","chainId":9,"networkId":2},{"name":"Optimistic Ethereum","chain":"OPT","network":"mainnet","rpc":["https://mainnet.optimism.io/"],"faucets":[],"features":[],"nativeCurrency":{"name":"Ether","symbol":"OETH","decimals":18},"infoURL":"https://optimism.io","shortName":"oeth","chainId":10,"networkId":10},{"name":"Metadium Mainnet","chain":"META","network":"mainnet","rpc":["https://api.metadium.com/prod"],"faucets":[],"features":[],"nativeCurrency":{"name":"Metadium Mainnet Ether","symbol":"META","decimals":18},"infoURL":"https://metadium.com","shortName":"meta","chainId":11,"networkId":11,"slip44":916},{"name":"Metadium Testnet","chain":"META","network":"testnet","rpc":["https://api.metadium.com/dev"],"faucets":[],"features":[],"nativeCurrency":{"name":"Metadium Testnet Ether","symbol":"KAL","decimals":18},"infoURL":"https://metadium.com","shortName":"kal","chainId":12,"networkId":12},{"name":"Diode Testnet Staging","chain":"DIODE","network":"testnet","rpc":["https://staging.diode.io:8443/","wss://staging.diode.io:8443/ws"],"faucets":[],"features":[],"nativeCurrency":{"name":"Staging Diodes","symbol":"sDIODE","decimals":18},"infoURL":"https://diode.io/staging","shortName":"dstg","chainId":13,"networkId":13},{"name":"Flare Mainnet","chain":"FLR","network":"flare","rpc":[],"faucets":[],"features":[],"nativeCurrency":{"name":"Spark","symbol":"FLR","decimals":18},"infoURL":"https://flare.xyz","shortName":"flr","chainId":14,"networkId":14},{"name":"Diode Prenet","chain":"DIODE","network":"mainnet","rpc":["https://prenet.diode.io:8443/","wss://prenet.diode.io:8443/ws"],"faucets":[],"features":[],"nativeCurrency":{"name":"Diodes","symbol":"DIODE","decimals":18},"infoURL":"https://diode.io/prenet","shortName":"diode","chainId":15,"networkId":15},{"name":"Flare Testnet Coston","chain":"FLR","network":"coston","rpc":[],"faucets":["https://faucet.towolabs.com"],"features":[],"nativeCurrency":{"name":"Coston Spark","symbol":"CFLR","decimals":18},"infoURL":"https://github.com/flare-eng/coston","shortName":"cflr","chainId":16,"networkId":16},{"name":"ThaiChain 2.0 ThaiFi","chain":"TCH","network":"thaifi","rpc":["https://rpc.thaifi.com"],"faucets":[],"features":[],"nativeCurrency":{"name":"Thaifi Ether","symbol":"TFI","decimals":18},"infoURL":"https://exp.thaifi.com","shortName":"tfi","chainId":17,"networkId":17},{"name":"ThunderCore Testnet","chain":"TST","network":"testnet","rpc":["https://testnet-rpc.thundercore.com"],"faucets":["https://faucet-testnet.thundercore.com"],"features":[],"nativeCurrency":{"name":"ThunderCore Testnet Ether","symbol":"TST","decimals":18},"infoURL":"https://thundercore.com","shortName":"TST","chainId":18,"networkId":18},{"name":"ELA-ETH-Sidechain Mainnet","chain":"ELA-ETH","network":"mainnet","rpc":["https://mainrpc.elaeth.io"],"faucets":[],"features":[],"nativeCurrency":{"name":"Elastos","symbol":"ELA","decimals":18},"infoURL":"https://www.elastos.org/","shortName":"elaeth","chainId":20,"networkId":20},{"name":"ELA-ETH-Sidechain Testnet","chain":"ELA-ETH","network":"testnet","rpc":["https://rpc.elaeth.io"],"faucets":["https://faucet.elaeth.io/"],"features":[],"nativeCurrency":{"name":"Elastos","symbol":"tELA","decimals":18},"infoURL":"https://elaeth.io/","shortName":"elaetht","chainId":21,"networkId":21},{"name":"ELA-DID-Sidechain Mainnet","chain":"ELA-ETH","network":"mainnet","rpc":[],"faucets":[],"features":[],"nativeCurrency":{"name":"Elastos","symbol":"ELA","decimals":18},"infoURL":"https://www.elastos.org/","shortName":"eladid","chainId":22,"networkId":22},{"name":"ELA-DID-Sidechain Testnet","chain":"ELA-ETH","network":"testnet","rpc":[],"faucets":[],"features":[],"nativeCurrency":{"name":"Elastos","symbol":"tELA","decimals":18},"infoURL":"https://elaeth.io/","shortName":"eladidt","chainId":23,"networkId":23},{"name":"RSK Mainnet","chain":"RSK","network":"mainnet","rpc":["https://public-node.rsk.co","https://mycrypto.rsk.co"],"faucets":[],"features":[],"nativeCurrency":{"name":"RSK Mainnet Ether","symbol":"RBTC","decimals":18},"infoURL":"https://rsk.co","shortName":"rsk","chainId":30,"networkId":30,"slip44":137},{"name":"RSK Testnet","chain":"RSK","network":"testnet","rpc":["https://public-node.testnet.rsk.co","https://mycrypto.testnet.rsk.co"],"faucets":["https://faucet.testnet.rsk.co"],"features":[],"nativeCurrency":{"name":"RSK Testnet Ether","symbol":"tRBTC","decimals":18},"infoURL":"https://rsk.co","shortName":"trsk","chainId":31,"networkId":31},{"name":"GoodData Testnet","chain":"GooD","network":"testnet","rpc":["https://test2.goodata.io"],"faucets":[],"features":[],"nativeCurrency":{"name":"GoodData Testnet Ether","symbol":"GooD","decimals":18},"infoURL":"https://www.goodata.org","shortName":"GooDT","chainId":32,"networkId":32},{"name":"GoodData Mainnet","chain":"GooD","network":"mainnet","rpc":["https://rpc.goodata.io"],"faucets":[],"features":[],"nativeCurrency":{"name":"GoodData Mainnet Ether","symbol":"GooD","decimals":18},"infoURL":"https://www.goodata.org","shortName":"GooD","chainId":33,"networkId":33},{"name":"TBWG Chain","chain":"TBWG","network":"mainnet","rpc":["https://rpc.tbwg.io"],"faucets":[],"features":[],"nativeCurrency":{"name":"TBWG Ether","symbol":"TBG","decimals":18},"infoURL":"https://tbwg.io","shortName":"tbwg","chainId":35,"networkId":35},{"name":"Valorbit","chain":"VAL","network":"mainnet","rpc":["https://rpc.valorbit.com/v2"],"faucets":[],"features":[],"nativeCurrency":{"name":"Valorbit","symbol":"VAL","decimals":18},"infoURL":"https://valorbit.com","shortName":"val","chainId":38,"networkId":38,"slip44":538},{"name":"Telos EVM Mainnet","chain":"TLOS","network":"mainnet","rpc":["https://mainnet.telos.net/evm"],"faucets":[],"features":[],"nativeCurrency":{"name":"Telos","symbol":"TLOS","decimals":18},"infoURL":"https://telos.net","shortName":"Telos EVM","chainId":40,"networkId":40},{"name":"Telos EVM Testnet","chain":"TLOS","network":"testnet","rpc":["https://testnet.telos.net/evm"],"faucets":["https://app.telos.net/testnet/developers"],"features":[],"nativeCurrency":{"name":"Telos","symbol":"TLOS","decimals":18},"infoURL":"https://telos.net","shortName":"Telos EVM Testnet","chainId":41,"networkId":41},{"name":"Darwinia Pangolin Testnet","chain":"pangolin","network":"free testnet","rpc":[],"faucets":[],"features":[],"nativeCurrency":{"name":"Pangolin RING","symbol":"PRING","decimals":9},"infoURL":"https://darwinia.network/","shortName":"darwinia","chainId":43,"networkId":43},{"name":"Darwinia Crab Network","chain":"crab","network":"Crab network","rpc":[],"faucets":[],"features":[],"nativeCurrency":{"name":"Crab Token","symbol":"CRING","decimals":9},"infoURL":"https://crab.network/","shortName":"crab","chainId":44,"networkId":44},{"name":"XinFin Network Mainnet","chain":"XDC","network":"mainnet","rpc":["https://rpc.xinfin.network"],"faucets":[],"features":[],"nativeCurrency":{"name":"XinFin","symbol":"XDC","decimals":18},"infoURL":"https://xinfin.org","shortName":"xdc","chainId":50,"networkId":50},{"name":"XinFin Apothem Testnet","chain":"TXDC","network":"testnet","rpc":["https://rpc.apothem.network"],"faucets":[],"features":[],"nativeCurrency":{"name":"XinFinTest","symbol":"TXDC","decimals":18},"infoURL":"https://xinfin.org","shortName":"TXDC","chainId":51,"networkId":51},{"name":"CoinEx Smart Chain Mainnet","chain":"CSC","network":"mainnet","rpc":["https://rpc-mainnet.coinex.net"],"faucets":[],"features":[],"nativeCurrency":{"name":"CoinEx Chain Native Token","symbol":"cet","decimals":18},"infoURL":"http://www.coinex.org/","shortName":"cet","chainId":52,"networkId":52},{"name":"CoinEx Smart Chain Testnet","chain":"CSC","network":"testnet","rpc":["https://rpc-testnet.coinex.net"],"faucets":[],"features":[],"nativeCurrency":{"name":"CoinEx Chain Test Native Token","symbol":"cett","decimals":18},"infoURL":"http://www.coinex.org/","shortName":"tcet","chainId":53,"networkId":53},{"name":"Ontology Mainnet","chain":"Ontology","network":"mainnet","rpc":["https://dappnode1.ont.io:20339","https://dappnode2.ont.io:20339","https://dappnode3.ont.io:20339","https://dappnode4.ont.io:20339"],"faucets":[],"features":[],"nativeCurrency":{"name":"ONG","symbol":"ONG","decimals":9},"infoURL":"https://ont.io/","shortName":"Ontology Mainnet","chainId":58,"networkId":58,"explorers":[{"name":"explorer","url":"https://explorer.ont.io/","standard":"EIP3091"}]},{"name":"EOS Mainnet","chain":"EOS","network":"mainnet","rpc":["https://api.eosargentina.io"],"faucets":[],"features":[],"nativeCurrency":{"name":"EOS","symbol":"EOS","decimals":18},"infoURL":"https://eoscommunity.org/","shortName":"EOS Mainnet","chainId":59,"networkId":59,"explorers":[{"name":"bloks","url":"https://api.eosargentina.io","standard":"EIP3091"}]},{"name":"GoChain","chain":"GO","network":"mainnet","rpc":["https://rpc.gochain.io"],"faucets":[],"features":[],"nativeCurrency":{"name":"GoChain Ether","symbol":"GO","decimals":18},"infoURL":"https://gochain.io","shortName":"go","chainId":60,"networkId":60,"slip44":6060},{"name":"Ethereum Classic Mainnet","chain":"ETC","network":"mainnet","rpc":["https://ethereumclassic.network"],"faucets":[],"features":[],"nativeCurrency":{"name":"Ethereum Classic Ether","symbol":"ETC","decimals":18},"infoURL":"https://ethereumclassic.org","shortName":"etc","chainId":61,"networkId":1,"slip44":61},{"name":"Ethereum Classic Testnet Morden","chain":"ETC","network":"testnet","rpc":[],"faucets":[],"features":[],"nativeCurrency":{"name":"Ethereum Classic Testnet Ether","symbol":"TETC","decimals":18},"infoURL":"https://ethereumclassic.org","shortName":"tetc","chainId":62,"networkId":2},{"name":"Ethereum Classic Testnet Mordor","chain":"ETC","network":"testnet","rpc":[],"faucets":[],"features":[],"nativeCurrency":{"name":"Mordor Classic Testnet Ether","symbol":"METC","decimals":18},"infoURL":"https://github.com/eth-classic/mordor/","shortName":"metc","chainId":63,"networkId":7},{"name":"Ellaism","chain":"ELLA","network":"mainnet","rpc":["https://jsonrpc.ellaism.org"],"faucets":[],"features":[],"nativeCurrency":{"name":"Ellaism Ether","symbol":"ELLA","decimals":18},"infoURL":"https://ellaism.org","shortName":"ella","chainId":64,"networkId":64,"slip44":163},{"name":"OKExChain Testnet","chain":"okexchain","network":"testnet","rpc":["https://exchaintestrpc.okex.org"],"faucets":["https://www.okex.com/drawdex"],"features":[],"nativeCurrency":{"name":"OKExChain Global Utility Token in testnet","symbol":"OKT","decimals":18},"infoURL":"https://www.okex.com/okexchain","shortName":"tokt","chainId":65,"networkId":65,"explorers":[{"name":"OKLink","url":"https://www.oklink.com/okexchain-test","standard":"EIP3091"}]},{"name":"OKExChain Mainnet","chain":"okexchain","network":"mainnet","rpc":["https://exchainrpc.okex.org"],"faucets":[],"features":[],"nativeCurrency":{"name":"OKExChain Global Utility Token","symbol":"OKT","decimals":18},"infoURL":"https://www.okex.com/okexchain","shortName":"okt","chainId":66,"networkId":66,"explorers":[{"name":"OKLink","url":"https://www.oklink.com/okexchain","standard":"EIP3091"}]},{"name":"DBChain Testnet","chain":"DBM","network":"testnet","rpc":["http://test-rpc.dbmbp.com"],"faucets":[],"features":[],"nativeCurrency":{"name":"DBChain Testnet","symbol":"DBM","decimals":18},"infoURL":"http://test.dbmbp.com","shortName":"dbm","chainId":67,"networkId":67},{"name":"SoterOne Mainnet","chain":"SOTER","network":"mainnet","rpc":["https://rpc.soter.one"],"faucets":[],"features":[],"nativeCurrency":{"name":"SoterOne Mainnet Ether","symbol":"SOTER","decimals":18},"infoURL":"https://www.soterone.com","shortName":"SO1","chainId":68,"networkId":68},{"name":"Optimistic Ethereum Testnet Kovan","chain":"OPT","network":"kovan","rpc":["https://kovan.optimism.io/"],"faucets":[],"features":[],"nativeCurrency":{"name":"Kovan Ether","symbol":"KOR","decimals":18},"infoURL":"https://optimism.io","shortName":"okov","chainId":69,"networkId":69},{"name":"Mix","chain":"MIX","network":"mainnet","rpc":["https://rpc2.mix-blockchain.org:8647"],"faucets":[],"features":[],"nativeCurrency":{"name":"Mix Ether","symbol":"MIX","decimals":18},"infoURL":"https://mix-blockchain.org","shortName":"mix","chainId":76,"networkId":76,"slip44":76},{"name":"POA Network Sokol","chain":"POA","network":"sokol","rpc":["https://sokol.poa.network","wss://sokol.poa.network/wss","ws://sokol.poa.network:8546"],"faucets":["https://faucet-sokol.herokuapp.com"],"features":[],"nativeCurrency":{"name":"POA Sokol Ether","symbol":"POA","decimals":18},"infoURL":"https://poa.network","shortName":"poa","chainId":77,"networkId":77},{"name":"PrimusChain mainnet","chain":"PC","network":"mainnet","rpc":["https://ethnode.primusmoney.com/mainnet"],"faucets":[],"features":[],"nativeCurrency":{"name":"Primus Ether","symbol":"PETH","decimals":18},"infoURL":"https://primusmoney.com","shortName":"primuschain","chainId":78,"networkId":78},{"name":"GeneChain","chain":"GeneChain","network":"mainnet","rpc":["https://rpc.genechain.io"],"faucets":[],"features":[],"nativeCurrency":{"name":"RNA","symbol":"RNA","decimals":18},"infoURL":"https://scan.genechain.io/","shortName":"GeneChain","chainId":80,"networkId":80,"explorers":[{"name":"GeneChain Scan","url":"https://scan.genechain.io","standard":"EIP3091"}]},{"name":"Meter Mainnet","chain":"METER","network":"mainnet","rpc":["https://rpc.meter.io"],"faucets":[],"features":[],"nativeCurrency":{"name":"Meter","symbol":"MTR","decimals":18},"infoURL":"https://www.meter.io","shortName":"Meter","chainId":82,"networkId":82},{"name":"GateChain Testnet","chainId":85,"shortName":"gttest","chain":"GTTEST","network":"testnet","networkId":85,"nativeCurrency":{"name":"GateToken","symbol":"GT","decimals":18},"rpc":["https://testnet.gatenode.cc"],"faucets":["https://www.gatescan.org/testnet/faucet"],"features":[],"explorers":[{"name":"GateScan","url":"https://www.gatescan.org/testnet","standard":"EIP3091"}],"infoURL":"https://www.gatechain.io"},{"name":"GateChain Mainnet","chainId":86,"shortName":"gt","chain":"GT","network":"mainnet","networkId":86,"nativeCurrency":{"name":"GateToken","symbol":"GT","decimals":18},"rpc":["https://evm.gatenode.cc"],"faucets":["https://www.gatescan.org/faucet"],"features":[],"explorers":[{"name":"GateScan","url":"https://www.gatescan.org","standard":"EIP3091"}],"infoURL":"https://www.gatechain.io"},{"name":"TomoChain","chain":"TOMO","network":"mainnet","rpc":["https://rpc.tomochain.com"],"faucets":[],"features":[],"nativeCurrency":{"name":"TomoChain Ether","symbol":"TOMO","decimals":18},"infoURL":"https://tomocoin.io","shortName":"tomo","chainId":88,"networkId":88},{"name":"CryptoKylin Testnet","chain":"EOS","network":"testnet","rpc":["https://kylin.eosargentina.io"],"faucets":[],"features":[],"nativeCurrency":{"name":"EOS","symbol":"EOS","decimals":18},"infoURL":"https://www.cryptokylin.io/","shortName":"Kylin Testnet","chainId":95,"networkId":95,"explorers":[{"name":"eosq","url":"https://kylin.eosargentina.io","standard":"EIP3091"}]},{"name":"POA Network Core","chain":"POA","network":"core","rpc":["https://core.poanetwork.dev","http://core.poanetwork.dev:8545","https://core.poa.network","ws://core.poanetwork.dev:8546"],"faucets":[],"features":[],"nativeCurrency":{"name":"POA Network Core Ether","symbol":"SKL","decimals":18},"infoURL":"https://poa.network","shortName":"skl","chainId":99,"networkId":99},{"name":"Gnosis Chain","chain":"Gnosis","network":"mainnet","rpc":["https://rpc.xdaichain.com","https://xdai.poanetwork.dev","wss://rpc.xdaichain.com/wss","wss://xdai.poanetwork.dev/wss","http://xdai.poanetwork.dev","https://dai.poa.network","ws://xdai.poanetwork.dev:8546"],"faucets":[],"features":[],"nativeCurrency":{"name":"xDai","symbol":"xDai","decimals":18,"logoURI":"https://raw.githubusercontent.com/sushiswap/assets/master/blockchains/xdai/assets/0xe91D153E0b41518A2Ce8Dd3D7944Fa863463a97d/logo.png"},"infoURL":"https://blockscout.com/xdai/mainnet","shortName":"xDai","chainId":100,"networkId":100,"slip44":700},{"name":"EtherInc","chain":"ETI","network":"mainnet","rpc":["https://api.einc.io/jsonrpc/mainnet"],"faucets":[],"features":[],"nativeCurrency":{"name":"EtherInc Ether","symbol":"ETI","decimals":18},"infoURL":"https://einc.io","shortName":"eti","chainId":101,"networkId":1,"slip44":464},{"name":"Web3Games Testnet","chain":"Web3Games","network":"testnet","rpc":["https://substrate.org.cn"],"faucets":[],"features":[],"nativeCurrency":{"name":"Web3Games","symbol":"W3G","decimals":18},"infoURL":"https://web3games.org/","shortName":"w3g","chainId":102,"networkId":102},{"name":"ThunderCore Mainnet","chain":"TT","network":"mainnet","rpc":["https://mainnet-rpc.thundercore.com"],"faucets":["https://faucet.thundercore.com"],"features":[],"nativeCurrency":{"name":"ThunderCore Mainnet Ether","symbol":"TT","decimals":18},"infoURL":"https://thundercore.com","shortName":"TT","chainId":108,"networkId":108},{"name":"Proton Testnet","chain":"XPR","network":"testnet","rpc":["https://protontestnet.greymass.com/"],"faucets":[],"features":[],"nativeCurrency":{"name":"Proton","symbol":"XPR","decimals":4},"infoURL":"https://protonchain.com","shortName":"xpr","chainId":110,"networkId":110},{"name":"EtherLite Chain","chain":"ETL","network":"mainnet","rpc":["https://rpc.etherlite.org"],"faucets":["https://etherlite.org/faucets"],"features":[],"nativeCurrency":{"name":"EtherLite","symbol":"ETL","decimals":18},"infoURL":"https://etherlite.org","shortName":"ETL","chainId":111,"networkId":111,"icon":"etherlite"},{"name":"Fuse Mainnet","chain":"FUSE","network":"mainnet","rpc":["https://rpc.fuse.io"],"faucets":[],"features":[],"nativeCurrency":{"name":"Fuse","symbol":"FUSE","decimals":18},"infoURL":"https://fuse.io/","shortName":"fuse","chainId":122,"networkId":122},{"name":"Decentralized Web Mainnet","shortName":"dwu","chain":"DWU","network":"mainnet","chainId":124,"networkId":124,"rpc":["https://decentralized-web.tech/dw_rpc.php"],"faucets":[],"features":[],"infoURL":"https://decentralized-web.tech/dw_chain.php","nativeCurrency":{"name":"Decentralized Web Utility","symbol":"DWU","decimals":18}},{"name":"Factory 127 Mainnet","chain":"FETH","network":"factory127 mainnet","rpc":[],"faucets":[],"features":[],"nativeCurrency":{"name":"Factory 127 Token","symbol":"FETH","decimals":18},"infoURL":"https://www.factory127.com","shortName":"feth","chainId":127,"networkId":127,"slip44":127},{"name":"Huobi ECO Chain Mainnet","chain":"Heco","network":"mainnet","rpc":["https://http-mainnet.hecochain.com","wss://ws-mainnet.hecochain.com"],"faucets":[],"features":[],"nativeCurrency":{"name":"Huobi ECO Chain Native Token","symbol":"HT","decimals":18},"infoURL":"https://www.hecochain.com","shortName":"heco","chainId":128,"networkId":128,"explorers":[{"name":"hecoinfo","url":"https://hecoinfo.com","standard":"EIP3091"}]},{"name":"Lightstreams Testnet","chain":"PHT","network":"sirius","rpc":["https://node.sirius.lightstreams.io"],"faucets":["https://discuss.lightstreams.network/t/request-test-tokens"],"features":[],"nativeCurrency":{"name":"Lightstreams PHT","symbol":"PHT","decimals":18},"infoURL":"https://explorer.sirius.lightstreams.io","shortName":"tpht","chainId":162,"networkId":162},{"name":"Lightstreams Mainnet","chain":"PHT","network":"mainnet","rpc":["https://node.mainnet.lightstreams.io"],"faucets":[],"features":[],"nativeCurrency":{"name":"Lightstreams PHT","symbol":"PHT","decimals":18},"infoURL":"https://explorer.lightstreams.io","shortName":"pht","chainId":163,"networkId":163},{"name":"HOO Smart Chain Testnet","chain":"HOO","network":"testnet","rpc":["https://http-testnet.hoosmartchain.com"],"faucets":["https://faucet-testnet.hscscan.com/"],"features":[],"nativeCurrency":{"name":"HOO","symbol":"HOO","decimals":18},"infoURL":"https://www.hoosmartchain.com","shortName":"hoosmartchain","chainId":170,"networkId":170},{"name":"Freight Trust Network","chain":"EDI","network":"freight & trade network","rpc":["http://13.57.207.168:3435","https://app.freighttrust.net/ftn/${API_KEY}"],"faucets":["http://faucet.freight.sh"],"features":[],"nativeCurrency":{"name":"Freight Trust Native","symbol":"0xF","decimals":18},"infoURL":"https://freighttrust.com","shortName":"EDI","chainId":211,"networkId":0},{"name":"Energy Web Chain","chain":"Energy Web Chain","network":"mainnet","rpc":["https://rpc.energyweb.org","wss://rpc.energyweb.org/ws"],"faucets":["https://faucet.carbonswap.exchange"],"features":[],"nativeCurrency":{"name":"Energy Web Token","symbol":"EWT","decimals":18},"infoURL":"https://energyweb.org","shortName":"ewt","chainId":246,"networkId":246,"slip44":246},{"name":"Fantom Opera","chain":"FTM","network":"mainnet","rpc":["https://rpcapi.fantom.network"],"faucets":[],"features":[],"nativeCurrency":{"name":"Fantom","symbol":"FTM","decimals":18,"logoURI":"https://static.debank.com/image/ftm_token/logo_url/ftm/33fdb9c5067e94f3a1b9e78f6fa86984.png"},"infoURL":"https://fantom.foundation","shortName":"ftm","chainId":250,"networkId":250,"icon":"fantom","explorers":[{"name":"ftmscan","url":"https://ftmscan.com","icon":"ftmscan","standard":"EIP3091","logoURI":"https://static.debank.com/image/ftm_token/logo_url/ftm/33fdb9c5067e94f3a1b9e78f6fa86984.png"}]},{"name":"Huobi ECO Chain Testnet","chain":"Heco","network":"testnet","rpc":["https://http-testnet.hecochain.com","wss://ws-testnet.hecochain.com"],"faucets":["https://scan-testnet.hecochain.com/faucet"],"features":[],"nativeCurrency":{"name":"Huobi ECO Chain Test Native Token","symbol":"htt","decimals":18},"infoURL":"https://testnet.hecoinfo.com","shortName":"hecot","chainId":256,"networkId":256},{"name":"High Performance Blockchain","chain":"HPB","network":"mainnet","rpc":["https://hpb.app"],"faucets":[],"features":[],"nativeCurrency":{"name":"High Performance Blockchain Ether","symbol":"HPB","decimals":18},"infoURL":"https://hpbscan.org/","shortName":"hpb","chainId":269,"networkId":100,"slip44":269},{"name":"KuCoin Community Chain Mainnet","chain":"KCC","network":"mainnet","rpc":["https://rpc-mainnet.kcc.network","wss://rpc-ws-mainnet.kcc.network"],"faucets":[],"features":[],"nativeCurrency":{"name":"KuCoin Token","symbol":"KCS","decimals":18},"infoURL":"https://kcc.io","shortName":"kcs","chainId":321,"networkId":321,"explorers":[{"name":"KCC Explorer","url":"https://explorer.kcc.io/en","standard":"EIP3091"}]},{"name":"KuCoin Community Chain Testnet","chain":"KCC","network":"testnet","rpc":["https://rpc-testnet.kcc.network"],"faucets":["https://faucet-testnet.kcc.network"],"features":[],"nativeCurrency":{"name":"KuCoin Testnet Token","symbol":"tKCS","decimals":18},"infoURL":"https://scan-testnet.kcc.network","shortName":"kcst","chainId":322,"networkId":322,"explorers":[{"name":"kcc-scan","url":"https://scan-testnet.kcc.network","standard":"EIP3091"}]},{"name":"Lisinski","chain":"CRO","network":"mainnet","rpc":["https://rpc-bitfalls1.lisinski.online"],"faucets":["https://pipa.lisinski.online"],"features":[],"nativeCurrency":{"name":"Lisinski Ether","symbol":"LISINSKI","decimals":18},"infoURL":"https://lisinski.online","shortName":"lisinski","chainId":385,"networkId":385},{"name":"Optimistic Ethereum Testnet Goerli","chain":"OPT","network":"goerli","rpc":["https://goerli.optimism.io/"],"faucets":[],"features":[],"nativeCurrency":{"name":"Görli Ether","symbol":"GOR","decimals":18},"infoURL":"https://optimism.io","shortName":"ogor","chainId":420,"networkId":420},{"name":"Rupaya","chain":"RUPX","network":"mainnet","rpc":[],"faucets":[],"features":[],"nativeCurrency":{"name":"Rupaya","symbol":"RUPX","decimals":18},"infoURL":"https://www.rupx.io","shortName":"rupx","chainId":499,"networkId":499,"slip44":499},{"name":"Tao Network","chain":"TAO","network":"core","rpc":["https://rpc.testnet.tao.network","http://rpc.testnet.tao.network:8545","https://rpc.tao.network","wss://rpc.tao.network"],"faucets":[],"features":[],"nativeCurrency":{"name":"Tao","symbol":"TAO","decimals":18},"infoURL":"https://tao.network","shortName":"tao","chainId":558,"networkId":558},{"name":"Acala Mandala Testnet","chain":"mACA","network":"testnet","rpc":[],"faucets":[],"features":[],"nativeCurrency":{"name":"Acala Mandala Token","symbol":"mACA","decimals":18},"infoURL":"https://acala.network","shortName":"maca","chainId":595,"networkId":595},{"name":"Karura Network","chain":"KAR","network":"mainnet","rpc":[],"faucets":[],"features":[],"nativeCurrency":{"name":"Karura Token","symbol":"KAR","decimals":18},"infoURL":"https://karura.network","shortName":"kar","chainId":686,"networkId":686,"slip44":686},{"name":"Factory 127 Testnet","chain":"FETH","network":"factory127 testnet","rpc":[],"faucets":[],"features":[],"nativeCurrency":{"name":"Factory 127 Token","symbol":"FETH","decimals":18},"infoURL":"https://www.factory127.com","shortName":"tfeth","chainId":721,"networkId":721,"slip44":721},{"name":"Ethermint Testnet","chain":"ETHERMINT","network":"testnet","rpc":["http://54.210.246.165:8545"],"faucets":[],"features":[],"nativeCurrency":{"name":"Photon","symbol":"Photon","decimals":18},"infoURL":"https://docs.ethermint.zone","shortName":"emint","chainId":777,"networkId":777},{"name":"Acala Network","chain":"ACA","network":"mainnet","rpc":[],"faucets":[],"features":[],"nativeCurrency":{"name":"Acala Token","symbol":"ACA","decimals":18},"infoURL":"https://acala.network","shortName":"aca","chainId":787,"networkId":787,"slip44":787},{"name":"Haic","chain":"Haic","network":"mainnet","rpc":["https://orig.haichain.io/"],"faucets":[],"features":[],"nativeCurrency":{"name":"Haicoin","symbol":"HAIC","decimals":18},"infoURL":"https://www.haichain.io/","shortName":"haic","chainId":803,"networkId":803},{"name":"Callisto Mainnet","chain":"CLO","network":"mainnet","rpc":["https://clo-geth.0xinfra.com"],"faucets":[],"features":[],"nativeCurrency":{"name":"Callisto Mainnet Ether","symbol":"CLO","decimals":18},"infoURL":"https://callisto.network","shortName":"clo","chainId":820,"networkId":1,"slip44":820},{"name":"Callisto Testnet","chain":"CLO","network":"testnet","rpc":[],"faucets":[],"features":[],"nativeCurrency":{"name":"Callisto Testnet Ether","symbol":"TCLO","decimals":18},"infoURL":"https://callisto.network","shortName":"tclo","chainId":821,"networkId":2},{"name":"Wanchain","chain":"WAN","network":"mainnet","rpc":["https://gwan-ssl.wandevs.org:56891/"],"faucets":[],"features":[],"nativeCurrency":{"name":"Wancoin","symbol":"WAN","decimals":18},"infoURL":"https://www.wanscan.org","shortName":"wan","chainId":888,"networkId":888},{"name":"Nepal Blockchain Network","chain":"YETI","network":"mainnet","rpc":["https://api.nepalblockchain.dev","https://api.nepalblockchain.network"],"faucets":["https://faucet.nepalblockchain.network"],"features":[],"nativeCurrency":{"name":"Nepal Blockchain Network Ether","symbol":"YETI","decimals":18},"infoURL":"https://nepalblockchain.network","shortName":"yeti","chainId":977,"networkId":977},{"name":"Wanchain Testnet","chain":"WAN","network":"testnet","rpc":["https://gwan-ssl.wandevs.org:46891/"],"faucets":[],"features":[],"nativeCurrency":{"name":"Wancoin","symbol":"WAN","decimals":18},"infoURL":"https://testnet.wanscan.org","shortName":"twan","chainId":999,"networkId":999},{"name":"Klaytn Testnet Baobab","chain":"KLAY","network":"baobab","rpc":["https://node-api.klaytnapi.com/v1/klaytn"],"faucets":["https://baobab.wallet.klaytn.com/access?next=faucet"],"features":[],"nativeCurrency":{"name":"KLAY","symbol":"KLAY","decimals":18},"infoURL":"https://www.klaytn.com/","shortName":"Baobab","chainId":1001,"networkId":1001},{"name":"Newton Testnet","chain":"NEW","network":"testnet","rpc":["https://rpc1.newchain.newtonproject.org"],"faucets":[],"features":[],"nativeCurrency":{"name":"Newton","symbol":"NEW","decimals":18},"infoURL":"https://www.newtonproject.org/","shortName":"tnew","chainId":1007,"networkId":1007},{"name":"Evrice Network","chain":"EVC","network":"Evrice","rpc":["https://meta.evrice.com"],"faucets":[],"features":[],"nativeCurrency":{"name":"Evrice","symbol":"EVC","decimals":18},"infoURL":"https://evrice.com","shortName":"EVC","chainId":1010,"networkId":1010},{"name":"Newton","chain":"NEW","network":"mainnet","rpc":["https://global.rpc.mainnet.newtonproject.org"],"faucets":[],"features":[],"nativeCurrency":{"name":"Newton","symbol":"NEW","decimals":18},"infoURL":"https://www.newtonproject.org/","shortName":"new","chainId":1012,"networkId":1012},{"name":"Sakura","chain":"Sakura","network":"sakura","rpc":[],"faucets":[],"features":[],"nativeCurrency":{"name":"Sakura","symbol":"SKU","decimals":18},"infoURL":"https://clover.finance/sakura","shortName":"sku","chainId":1022,"networkId":1022},{"name":"Clover Testnet","chain":"Clover","network":"clover testnet","rpc":[],"faucets":[],"features":[],"nativeCurrency":{"name":"Clover","symbol":"CLV","decimals":18},"infoURL":"https://clover.finance","shortName":"tclv","chainId":1023,"networkId":1023},{"name":"Clover Mainnet","chain":"Clover","network":"clover mainnet","rpc":["https://rpc-ivy.clover.finance","https://rpc-ivy-2.clover.finance","https://rpc-ivy-3.clover.finance"],"faucets":[],"features":[],"nativeCurrency":{"name":"Clover","symbol":"CLV","decimals":18},"infoURL":"https://clover.finance","shortName":"clv","chainId":1024,"networkId":1024},{"name":"MathChain","chain":"MATH","network":"mainnet","rpc":[],"faucets":[],"features":[],"nativeCurrency":{"name":"MathChain","symbol":"MATH","decimals":18},"infoURL":"https://mathchain.org","shortName":"MATH","chainId":1139,"networkId":1139},{"name":"MathChain Testnet","chain":"MATH","network":"testnet","rpc":["https://galois-hk.maiziqianbao.net/rpc"],"faucets":["https://scan.boka.network/#/Galois/faucet"],"features":[],"nativeCurrency":{"name":"MathChain","symbol":"MATH","decimals":18},"infoURL":"https://mathchain.org","shortName":"tMATH","chainId":1140,"networkId":1140},{"name":"Moonbeam Polkadot","chain":"MOON","network":"moonbeam","rpc":[],"faucets":[],"features":[],"nativeCurrency":{"name":"Glimmer","symbol":"GLMR","decimals":18},"infoURL":"https://moonbeam.network/networks/moonbeam/","shortName":"mbeam","chainId":1284,"networkId":1284},{"name":"Moonriver Kusama","chain":"MOON","network":"moonriver","rpc":[],"faucets":[],"features":[],"nativeCurrency":{"name":"River","symbol":"RIVER","decimals":18},"infoURL":"https://moonbeam.network/networks/moonriver/","shortName":"mriver","chainId":1285,"networkId":1285},{"name":"Moonrock Rococo","chain":"MOON","network":"moonrock","rpc":[],"faucets":[],"features":[],"nativeCurrency":{"name":"Rocs","symbol":"ROC","decimals":18},"infoURL":"","shortName":"mrock","chainId":1286,"networkId":1286},{"name":"Moonbeam Testnet Moonbase Alpha","chain":"MOON","network":"moonbase","rpc":["https://rpc.testnet.moonbeam.network","wss://wss.testnet.moonbeam.network"],"faucets":[],"features":[],"nativeCurrency":{"name":"Dev","symbol":"DEV","decimals":18},"infoURL":"https://docs.moonbeam.network/networks/testnet/","shortName":"mbase","chainId":1287,"networkId":1287},{"name":"Catecoin Chain Mainnet","chain":"Catechain","network":"mainnet","rpc":["https://send.catechain.com"],"faucets":[],"features":[],"nativeCurrency":{"name":"Catecoin","symbol":"CATE","decimals":18},"infoURL":"https://catechain.com","shortName":"cate","chainId":1618,"networkId":1618},{"name":"Atheios","chain":"ATH","network":"mainnet","rpc":["https://wallet.atheios.com:8797"],"faucets":[],"features":[],"nativeCurrency":{"name":"Atheios Ether","symbol":"ATH","decimals":18},"infoURL":"https://atheios.com","shortName":"ath","chainId":1620,"networkId":11235813,"slip44":1620},{"name":"Teslafunds","chain":"TSF","network":"mainnet","rpc":["https://tsfapi.europool.me"],"faucets":[],"features":[],"nativeCurrency":{"name":"Teslafunds Ether","symbol":"TSF","decimals":18},"infoURL":"https://teslafunds.io","shortName":"tsf","chainId":1856,"networkId":1},{"name":"EtherGem","chain":"EGEM","network":"mainnet","rpc":["https://jsonrpc.egem.io/custom"],"faucets":[],"features":[],"nativeCurrency":{"name":"EtherGem Ether","symbol":"EGEM","decimals":18},"infoURL":"https://egem.io","shortName":"egem","chainId":1987,"networkId":1987,"slip44":1987},{"name":"420coin","chain":"420","network":"mainnet","rpc":[],"faucets":[],"features":[],"nativeCurrency":{"name":"Fourtwenty","symbol":"420","decimals":18},"infoURL":"https://420integrated.com","shortName":"420","chainId":2020,"networkId":2020},{"name":"Edgeware Mainnet","chain":"EDG","network":"mainnet","rpc":["https://mainnet1.edgewa.re"],"faucets":[],"features":[],"nativeCurrency":{"name":"Edge","symbol":"EDG","decimals":18},"infoURL":"http://edgewa.re","shortName":"edg","chainId":2021,"networkId":2021},{"name":"Beresheet Testnet","chain":"EDG","network":"beresheet","rpc":["https://beresheet1.edgewa.re"],"faucets":[],"features":[],"nativeCurrency":{"name":"Testnet Edge","symbol":"tEDG","decimals":18},"infoURL":"http://edgewa.re","shortName":"edgt","chainId":2022,"networkId":2022},{"name":"Kortho Mainnet","chain":"Kortho Chain","network":"mainnet","rpc":["https://www.kortho-chain.com"],"faucets":[],"features":[],"nativeCurrency":{"name":"KorthoChain","symbol":"KTO","decimals":11},"infoURL":"https://www.kortho.io/","shortName":"ktoc","chainId":2559,"networkId":2559},{"name":"IoTeX Network Mainnet","chain":"iotex.io","network":"mainnet","rpc":["https://babel-api.mainnet.iotex.io"],"faucets":[],"features":[],"nativeCurrency":{"name":"IoTeX","symbol":"IOTX","decimals":18},"infoURL":"https://iotex.io","shortName":"iotex-mainnet","chainId":4689,"networkId":4689},{"name":"IoTeX Network Testnet","chain":"iotex.io","network":"testnet","rpc":["https://babel-api.testnet.iotex.io"],"faucets":["https://faucet.iotex.io/"],"features":[],"nativeCurrency":{"name":"IoTeX","symbol":"IOTX","decimals":18},"infoURL":"https://iotex.io","shortName":"iotex-testnet","chainId":4690,"networkId":4690},{"name":"EraSwap Mainnet","chain":"ESN","network":"mainnet","icon":"eraswap","rpc":["https://mainnet.eraswap.network","https://rpc-mumbai.mainnet.eraswap.network"],"faucets":[],"features":[],"nativeCurrency":{"name":"EraSwap","symbol":"ES","decimals":18},"infoURL":"https://eraswap.info/","shortName":"es","chainId":5197,"networkId":5197},{"name":"Ontology Testnet","chain":"Ontology","network":"testnet","rpc":["https://polaris1.ont.io:20339","https://polaris2.ont.io:20339","https://polaris3.ont.io:20339","https://polaris4.ont.io:20339"],"faucets":["https://developer.ont.io/"],"features":[],"nativeCurrency":{"name":"ONG","symbol":"ONG","decimals":9},"infoURL":"https://ont.io/","shortName":"Ontology Testnet","chainId":5851,"networkId":5851,"explorers":[{"name":"explorer","url":"https://explorer.ont.io/testnet","standard":"EIP3091"}]},{"name":"Wegochain Rubidium Mainnet","chain":"RBD","network":"mainnet","rpc":["https://proxy.wegochain.io","http://wallet.wegochain.io:7764"],"faucets":[],"features":[],"nativeCurrency":{"name":"Rubid","symbol":"RBD","decimals":18},"infoURL":"http://wegochain.io","shortName":"rbd","chainId":5869,"networkId":5869},{"name":"MDGL Testnet","chain":"MDGL","network":"testnet","rpc":["https://testnet.mdgl.io"],"faucets":[],"features":[],"nativeCurrency":{"name":"MDGL Token","symbol":"MDGLT","decimals":18},"infoURL":"https://mdgl.io","shortName":"mdgl","chainId":8029,"networkId":8029},{"name":"GeneChain Adenine Testnet","chain":"GeneChain","network":"adenine","rpc":["https://rpc-testnet.genechain.io"],"faucets":["https://faucet.genechain.io"],"features":[],"nativeCurrency":{"name":"Testnet RNA","symbol":"tRNA","decimals":18},"infoURL":"https://scan-testnet.genechain.io/","shortName":"GeneChainAdn","chainId":8080,"networkId":8080,"explorers":[{"name":"GeneChain Adenine Testnet Scan","url":"https://scan-testnet.genechain.io","standard":"EIP3091"}]},{"name":"Klaytn Mainnet Cypress","chain":"KLAY","network":"cypress","rpc":["https://node-api.klaytnapi.com/v1/klaytn"],"faucets":[],"features":[],"nativeCurrency":{"name":"KLAY","symbol":"KLAY","decimals":18},"infoURL":"https://www.klaytn.com/","shortName":"Cypress","chainId":8217,"networkId":8217,"slip44":8217},{"name":"KorthoTest","chain":"Kortho","network":"Test","rpc":["https://www.krotho-test.net"],"faucets":[],"features":[],"nativeCurrency":{"name":"Kortho Test","symbol":"KTO","decimals":11},"infoURL":"https://www.kortho.io/","shortName":"Kortho","chainId":8285,"networkId":8285},{"name":"TOOL Global Testnet","chain":"OLO","network":"testnet","rpc":["https://testnet-web3.wolot.io"],"faucets":["https://testnet-explorer.wolot.io"],"features":[],"nativeCurrency":{"name":"TOOL Global","symbol":"OLO","decimals":18},"infoURL":"https://testnet-explorer.wolot.io","shortName":"olo","chainId":8724,"networkId":8724,"slip44":479},{"name":"bloxberg","chain":"bloxberg","network":"mainnet","rpc":["https://core.bloxberg.org"],"faucets":["https://faucet.bloxberg.org/"],"features":[],"nativeCurrency":{"name":"BERG","symbol":"U+25B3","decimals":18},"infoURL":"https://bloxberg.org","shortName":"berg","chainId":8995,"networkId":8995},{"name":"Smart Bitcoin Cash","chain":"smartBCH","network":"mainnet","rpc":["https://rpc-mainnet.smartbch.org"],"faucets":[],"features":[],"nativeCurrency":{"name":"Bitcoin Cash","symbol":"BCH","decimals":18},"infoURL":"http://smartbch.org/","shortName":"smartbch","chainId":10000,"networkId":10000},{"name":"Smart Bitcoin Cash Testnet","chain":"smartBCHTest","network":"testnet","rpc":["https://rpc-testnet.smartbch.org"],"faucets":[],"features":[],"nativeCurrency":{"name":"Bitcoin Cash Test Token","symbol":"BCHT","decimals":18},"infoURL":"http://smartbch.org/","shortName":"smartbchtest","chainId":10001,"networkId":10001},{"name":"Blockchain Genesis Mainnet","chain":"GEN","network":"mainnet","rpc":["https://eu.mainnet.xixoio.com","https://us.mainnet.xixoio.com","https://asia.mainnet.xixoio.com"],"faucets":[],"features":[],"nativeCurrency":{"name":"GEN","symbol":"GEN","decimals":18},"infoURL":"https://www.xixoio.com/","shortName":"GEN","chainId":10101,"networkId":10101},{"name":"Webchain","chain":"WEB","network":"mainnet","rpc":["https://node1.webchain.network"],"faucets":[],"features":[],"nativeCurrency":{"name":"Webchain Ether","symbol":"WEB","decimals":18},"infoURL":"https://webchain.network","shortName":"web","chainId":24484,"networkId":37129},{"name":"MintMe.com Coin","chain":"MINTME","network":"mainnet","rpc":["https://node1.mintme.com"],"faucets":[],"features":[],"nativeCurrency":{"name":"MintMe.com Coin","symbol":"MINTME","decimals":18},"infoURL":"https://www.mintme.com","shortName":"mintme","chainId":24734,"networkId":37480},{"name":"Ethersocial Network","chain":"ESN","network":"mainnet","rpc":["https://api.esn.gonspool.com"],"faucets":[],"features":[],"nativeCurrency":{"name":"Ethersocial Network Ether","symbol":"ESN","decimals":18},"infoURL":"https://ethersocial.org","shortName":"esn","chainId":31102,"networkId":1,"slip44":31102},{"name":"Fusion Mainnet","chain":"FSN","network":"mainnet","rpc":["https://mainnet.anyswap.exchange","https://fsn.dev/api"],"faucets":[],"features":[],"nativeCurrency":{"name":"Fusion","symbol":"FSN","decimals":18},"infoURL":"https://www.fusion.org/","shortName":"fsn","chainId":32659,"networkId":32659},{"name":"Energi Mainnet","chain":"NRG","network":"mainnet","rpc":["https://nodeapi.gen3.energi.network"],"faucets":[],"features":[],"nativeCurrency":{"name":"Energi","symbol":"NRG","decimals":18},"infoURL":"https://www.energi.world/","shortName":"nrg","chainId":39797,"networkId":39797,"slip44":39797},{"name":"pegglecoin","chain":"42069","network":"mainnet","rpc":[],"faucets":[],"features":[],"nativeCurrency":{"name":"pegglecoin","symbol":"peggle","decimals":18},"infoURL":"https://teampeggle.com","shortName":"PC","chainId":42069,"networkId":42069},{"name":"Celo Mainnet","chainId":42220,"shortName":"CELO","chain":"CELO","network":"mainnet","networkId":42220,"nativeCurrency":{"name":"CELO","symbol":"CELO","decimals":18,"logoURI":"https://assets.coingecko.com/coins/images/11090/small/icon-celo-CELO-color-500.png"},"rpc":["https://forno.celo.org","wss://forno.celo.org/ws"],"faucets":[],"features":[],"infoURL":"https://explorer.celo.org/"},{"name":"Athereum","chain":"ATH","network":"athereum","rpc":["https://ava.network:21015/ext/evm/rpc"],"faucets":["http://athfaucet.ava.network//?address=${ADDRESS}"],"features":[],"nativeCurrency":{"name":"Athereum Ether","symbol":"ATH","decimals":18},"infoURL":"https://athereum.ava.network","shortName":"avaeth","chainId":43110,"networkId":43110},{"name":"Avalanche Mainnet","chain":"AVAX","network":"mainnet","rpc":["https://api.avax.network/ext/bc/C/rpc"],"faucets":[],"features":[],"nativeCurrency":{"name":"Avalanche","symbol":"AVAX","decimals":18,"logoURI":"https://raw.githubusercontent.com/sushiswap/icons/master/network/avalanche.jpg"},"infoURL":"https://snowtrace.io/","shortName":"AVAX","chainId":43114,"networkId":43114,"icon":"avalanche","explorers":[{"name":"snowtrace","url":"https://snowtrace.io/","icon":"avalanche","standard":"EIP3091","logoURI":"https://snowtrace.io/images/svg/brands/main.svg?v=21.12.4.1"}]},{"name":"Avalanche Fuji Testnet","chain":"AVAX","network":"testnet","rpc":["https://api.avax-test.network/ext/bc/C/rpc"],"faucets":["https://faucet.avax-test.network/"],"features":[],"nativeCurrency":{"name":"Avalanche","symbol":"AVAX","decimals":18},"infoURL":"https://cchain.explorer.avax-test.network","shortName":"Fuji","chainId":43113,"networkId":43113},{"name":"Celo Alfajores Testnet","chainId":44787,"shortName":"ALFA","chain":"Celo","network":"Alfajores","networkId":44787,"nativeCurrency":{"name":"CELO","symbol":"CELO","decimals":18},"rpc":["https://alfajores-forno.celo-testnet.org","wss://alfajores-forno.celo-testnet.org/ws"],"faucets":["https://celo.org/developers/faucet","https://cauldron.pretoriaresearchlab.io/alfajores-faucet"],"features":[],"infoURL":"https://docs.celo.org/"},{"name":"Energi Testnet","chain":"NRG","network":"testnet","rpc":["https://nodeapi.test3.energi.network"],"faucets":[],"features":[],"nativeCurrency":{"name":"Energi","symbol":"tNRG","decimals":18},"infoURL":"https://www.energi.world/","shortName":"tnrg","chainId":49797,"networkId":49797,"slip44":49797},{"name":"Celo Baklava Testnet","chainId":62320,"shortName":"BKLV","chain":"Celo","network":"Baklava","networkId":62320,"nativeCurrency":{"name":"CELO","symbol":"CELO","decimals":18},"rpc":["https://baklava-forno.celo-testnet.org"],"faucets":["https://docs.google.com/forms/d/e/1FAIpQLSdfr1BwUTYepVmmvfVUDRCwALejZ-TUva2YujNpvrEmPAX2pg/viewform","https://cauldron.pretoriaresearchlab.io/baklava-faucet"],"features":[],"infoURL":"https://docs.celo.org/"},{"name":"Energy Web Volta Testnet","chain":"Volta","network":"testnet","rpc":["https://volta-rpc.energyweb.org","wss://volta-rpc.energyweb.org/ws"],"faucets":["https://voltafaucet.energyweb.org"],"features":[],"nativeCurrency":{"name":"Volta Token","symbol":"VT","decimals":18},"infoURL":"https://energyweb.org","shortName":"vt","chainId":73799,"networkId":73799},{"name":"Firenze test network","chain":"FIR","network":"testnet","rpc":["https://ethnode.primusmoney.com/firenze"],"faucets":[],"features":[],"nativeCurrency":{"name":"Firenze Ether","symbol":"FIN","decimals":18},"infoURL":"https://primusmoney.com","shortName":"firenze","chainId":78110,"networkId":78110},{"name":"QuarkChain Mainnet Root","chain":"QuarkChain","network":"mainnet","rpc":["http://jrpc.mainnet.quarkchain.io:38391/"],"faucets":[],"features":[],"nativeCurrency":{"name":"QKC","symbol":"QKC","decimals":18},"infoURL":"https://www.quarkchain.io/","shortName":"qkc-r","chainId":100000,"networkId":100000},{"name":"QuarkChain Mainnet Shard 0","chain":"QuarkChain","network":"mainnet","rpc":["http://jrpc.mainnet.quarkchain.io:39000/"],"faucets":[],"features":[],"nativeCurrency":{"name":"QKC","symbol":"QKC","decimals":18},"infoURL":"https://www.quarkchain.io/","shortName":"qkc-s0","chainId":100001,"networkId":100001,"parent":{"chain":"eip155-100000","type":"shard"}},{"name":"QuarkChain Mainnet Shard 1","chain":"QuarkChain","network":"mainnet","rpc":["http://jrpc.mainnet.quarkchain.io:39001/"],"faucets":[],"features":[],"nativeCurrency":{"name":"QKC","symbol":"QKC","decimals":18},"infoURL":"https://www.quarkchain.io/","shortName":"qkc-s1","chainId":100002,"networkId":100002,"parent":{"chain":"eip155-100000","type":"shard"}},{"name":"QuarkChain Mainnet Shard 2","chain":"QuarkChain","network":"mainnet","rpc":["http://jrpc.mainnet.quarkchain.io:39002/"],"faucets":[],"features":[],"nativeCurrency":{"name":"QKC","symbol":"QKC","decimals":18},"infoURL":"https://www.quarkchain.io/","shortName":"qkc-s2","chainId":100003,"networkId":100003,"parent":{"chain":"eip155-100000","type":"shard"}},{"name":"QuarkChain Mainnet Shard 3","chain":"QuarkChain","network":"mainnet","rpc":["http://jrpc.mainnet.quarkchain.io:39003/"],"faucets":[],"features":[],"nativeCurrency":{"name":"QKC","symbol":"QKC","decimals":18},"infoURL":"https://www.quarkchain.io/","shortName":"qkc-s3","chainId":100004,"networkId":100004,"parent":{"chain":"eip155-100000","type":"shard"}},{"name":"QuarkChain Mainnet Shard 4","chain":"QuarkChain","network":"mainnet","rpc":["http://jrpc.mainnet.quarkchain.io:39004/"],"faucets":[],"features":[],"nativeCurrency":{"name":"QKC","symbol":"QKC","decimals":18},"infoURL":"https://www.quarkchain.io/","shortName":"qkc-s4","chainId":100005,"networkId":100005,"parent":{"chain":"eip155-100000","type":"shard"}},{"name":"QuarkChain Mainnet Shard 5","chain":"QuarkChain","network":"mainnet","rpc":["http://jrpc.mainnet.quarkchain.io:39005/"],"faucets":[],"features":[],"nativeCurrency":{"name":"QKC","symbol":"QKC","decimals":18},"infoURL":"https://www.quarkchain.io/","shortName":"qkc-s5","chainId":100006,"networkId":100006,"parent":{"chain":"eip155-100000","type":"shard"}},{"name":"QuarkChain Mainnet Shard 6","chain":"QuarkChain","network":"mainnet","rpc":["http://jrpc.mainnet.quarkchain.io:39006/"],"faucets":[],"features":[],"nativeCurrency":{"name":"QKC","symbol":"QKC","decimals":18},"infoURL":"https://www.quarkchain.io/","shortName":"qkc-s6","chainId":100007,"networkId":100007,"parent":{"chain":"eip155-100000","type":"shard"}},{"name":"QuarkChain Mainnet Shard 7","chain":"QuarkChain","network":"mainnet","rpc":["http://jrpc.mainnet.quarkchain.io:39007/"],"faucets":[],"features":[],"nativeCurrency":{"name":"QKC","symbol":"QKC","decimals":18},"infoURL":"https://www.quarkchain.io/","shortName":"qkc-s7","chainId":100008,"networkId":100008,"parent":{"chain":"eip155-100000","type":"shard"}},{"name":"QuarkChain Devnet Root","chain":"QuarkChain","network":"devnet","rpc":["http://jrpc.devnet.quarkchain.io:38391/"],"faucets":[],"features":[],"nativeCurrency":{"name":"QKC","symbol":"QKC","decimals":18},"infoURL":"https://www.quarkchain.io/","shortName":"qkc-d-r","chainId":110000,"networkId":110000},{"name":"QuarkChain Devnet Shard 0","chain":"QuarkChain","network":"devnet","rpc":["http://jrpc.devnet.quarkchain.io:39000/"],"faucets":[],"features":[],"nativeCurrency":{"name":"QKC","symbol":"QKC","decimals":18},"infoURL":"https://www.quarkchain.io/","shortName":"qkc-d-s0","chainId":110001,"networkId":110001,"parent":{"chain":"eip155-110000","type":"shard"}},{"name":"QuarkChain Devnet Shard 1","chain":"QuarkChain","network":"devnet","rpc":["http://jrpc.devnet.quarkchain.io:39001/"],"faucets":[],"features":[],"nativeCurrency":{"name":"QKC","symbol":"QKC","decimals":18},"infoURL":"https://www.quarkchain.io/","shortName":"qkc-d-s1","chainId":110002,"networkId":110002,"parent":{"chain":"eip155-110000","type":"shard"}},{"name":"QuarkChain Devnet Shard 2","chain":"QuarkChain","network":"devnet","rpc":["http://jrpc.devnet.quarkchain.io:39002/"],"faucets":[],"features":[],"nativeCurrency":{"name":"QKC","symbol":"QKC","decimals":18},"infoURL":"https://www.quarkchain.io/","shortName":"qkc-d-s2","chainId":110003,"networkId":110003,"parent":{"chain":"eip155-110000","type":"shard"}},{"name":"QuarkChain Devnet Shard 3","chain":"QuarkChain","network":"devnet","rpc":["http://jrpc.devnet.quarkchain.io:39003/"],"faucets":[],"features":[],"nativeCurrency":{"name":"QKC","symbol":"QKC","decimals":18},"infoURL":"https://www.quarkchain.io/","shortName":"qkc-d-s3","chainId":110004,"networkId":110004,"parent":{"chain":"eip155-110000","type":"shard"}},{"name":"QuarkChain Devnet Shard 4","chain":"QuarkChain","network":"devnet","rpc":["http://jrpc.devnet.quarkchain.io:39004/"],"faucets":[],"features":[],"nativeCurrency":{"name":"QKC","symbol":"QKC","decimals":18},"infoURL":"https://www.quarkchain.io/","shortName":"qkc-d-s4","chainId":110005,"networkId":110005,"parent":{"chain":"eip155-110000","type":"shard"}},{"name":"QuarkChain Devnet Shard 5","chain":"QuarkChain","network":"devnet","rpc":["http://jrpc.devnet.quarkchain.io:39005/"],"faucets":[],"features":[],"nativeCurrency":{"name":"QKC","symbol":"QKC","decimals":18},"infoURL":"https://www.quarkchain.io/","shortName":"qkc-d-s5","chainId":110006,"networkId":110006,"parent":{"chain":"eip155-110000","type":"shard"}},{"name":"QuarkChain Devnet Shard 6","chain":"QuarkChain","network":"devnet","rpc":["http://jrpc.devnet.quarkchain.io:39006/"],"faucets":[],"features":[],"nativeCurrency":{"name":"QKC","symbol":"QKC","decimals":18},"infoURL":"https://www.quarkchain.io/","shortName":"qkc-d-s6","chainId":110007,"networkId":110007,"parent":{"chain":"eip155-110000","type":"shard"}},{"name":"QuarkChain Devnet Shard 7","chain":"QuarkChain","network":"devnet","rpc":["http://jrpc.devnet.quarkchain.io:39007/"],"faucets":[],"features":[],"nativeCurrency":{"name":"QKC","symbol":"QKC","decimals":18},"infoURL":"https://www.quarkchain.io/","shortName":"qkc-d-s7","chainId":110008,"networkId":110008,"parent":{"chain":"eip155-110000","type":"shard"}},{"name":"Akroma","chain":"AKA","network":"mainnet","rpc":["https://remote.akroma.io"],"faucets":[],"features":[],"nativeCurrency":{"name":"Akroma Ether","symbol":"AKA","decimals":18},"infoURL":"https://akroma.io","shortName":"aka","chainId":200625,"networkId":200625,"slip44":200625},{"name":"ARTIS sigma1","chain":"ARTIS","network":"sigma1","rpc":["https://rpc.sigma1.artis.network"],"faucets":[],"features":[],"nativeCurrency":{"name":"ARTIS sigma1 Ether","symbol":"ATS","decimals":18},"infoURL":"https://artis.eco","shortName":"ats","chainId":246529,"networkId":246529,"slip44":246529},{"name":"ARTIS Testnet tau1","chain":"ARTIS","network":"tau1","rpc":["https://rpc.tau1.artis.network"],"faucets":[],"features":[],"nativeCurrency":{"name":"ARTIS tau1 Ether","symbol":"tATS","decimals":18},"infoURL":"https://artis.network","shortName":"atstau","chainId":246785,"networkId":246785},{"name":"Ether-1","chain":"ETHO","network":"mainnet","rpc":["https://rpc.ether1.org"],"faucets":[],"features":[],"nativeCurrency":{"name":"Ether-1 Ether","symbol":"ETHO","decimals":18},"infoURL":"https://ether1.org","shortName":"etho","chainId":1313114,"networkId":1313114,"slip44":1313114},{"name":"Xerom","chain":"XERO","network":"mainnet","rpc":["https://rpc.xerom.org"],"faucets":[],"features":[],"nativeCurrency":{"name":"Xerom Ether","symbol":"XERO","decimals":18},"infoURL":"https://xerom.org","shortName":"xero","chainId":1313500,"networkId":1313500},{"name":"Musicoin","chain":"MUSIC","network":"mainnet","rpc":["https://mewapi.musicoin.tw"],"faucets":[],"features":[],"nativeCurrency":{"name":"Musicoin","symbol":"MUSIC","decimals":18},"infoURL":"https://musicoin.tw","shortName":"music","chainId":7762959,"networkId":7762959,"slip44":184},{"name":"PepChain Churchill","chain":"PEP","network":"testnet","rpc":["https://churchill-rpc.pepchain.io"],"faucets":[],"features":[],"nativeCurrency":{"name":"PepChain Churchill Ether","symbol":"TPEP","decimals":18},"infoURL":"https://pepchain.io","shortName":"tpep","chainId":13371337,"networkId":13371337},{"name":"IOLite","chain":"ILT","network":"mainnet","rpc":["https://net.iolite.io"],"faucets":[],"features":[],"nativeCurrency":{"name":"IOLite Ether","symbol":"ILT","decimals":18},"infoURL":"https://iolite.io","shortName":"ilt","chainId":18289463,"networkId":18289463},{"name":"quarkblockchain","chain":"QKI","network":"mainnet","rpc":["https://hz.rpc.qkiscan.cn","https://jp.rpc.qkiscan.io"],"faucets":[],"features":[],"nativeCurrency":{"name":"quarkblockchain Native Token","symbol":"QKI","decimals":18},"infoURL":"https://quarkblockchain.org/","shortName":"qki","chainId":20181205,"networkId":20181205},{"name":"Auxilium Network Mainnet","chain":"AUX","network":"mainnet","rpc":["https://rpc.auxilium.global"],"faucets":[],"features":[],"nativeCurrency":{"name":"Auxilium coin","symbol":"AUX","decimals":18},"infoURL":"https://auxilium.global","shortName":"auxi","chainId":28945486,"networkId":28945486,"slip44":344},{"name":"Joys Digital Mainnet","chain":"JOYS","network":"mainnet","rpc":["https://node.joys.digital"],"faucets":[],"features":[],"nativeCurrency":{"name":"JOYS","symbol":"JOYS","decimals":18},"infoURL":"https://joys.digital","shortName":"JOYS","chainId":35855456,"networkId":35855456},{"name":"Aquachain","chain":"AQUA","network":"mainnet","rpc":["https://c.onical.org","https://tx.aquacha.in/api"],"faucets":["https://aquacha.in/faucet"],"features":[],"nativeCurrency":{"name":"Aquachain Ether","symbol":"AQUA","decimals":18},"infoURL":"https://aquachain.github.io","shortName":"aqua","chainId":61717561,"networkId":61717561,"slip44":61717561},{"name":"Joys Digital TestNet","chain":"TOYS","network":"testnet","rpc":["https://toys.joys.cash/"],"faucets":["https://faucet.joys.digital/"],"features":[],"nativeCurrency":{"name":"TOYS","symbol":"TOYS","decimals":18},"infoURL":"https://joys.digital","shortName":"TOYS","chainId":99415706,"networkId":99415706},{"name":"IPOS Network","chain":"IPOS","network":"mainnet","rpc":["https://rpc.iposlab.com","https://rpc2.iposlab.com"],"faucets":[],"features":[],"nativeCurrency":{"name":"IPOS Network Ether","symbol":"IPOS","decimals":18},"infoURL":"https://iposlab.com","shortName":"ipos","chainId":1122334455,"networkId":1122334455},{"name":"Aurora MainNet","chain":"Aurora","network":"mainnet","rpc":["https://rpc.mainnet.aurora.dev:8545"],"faucets":[],"features":[],"nativeCurrency":{"name":"Ether","symbol":"aETH","decimals":18,"logoURI":"https://static.debank.com/image/token/logo_url/eth/935ae4e4d1d12d59a99717a24f2540b5.png"},"infoURL":"https://aurora.dev","explorers":[{"name":"Blockscout","url":"https://explorer.mainnet.aurora.dev/","standard":"EIP3091"}],"shortName":"aurora","chainId":1313161554,"networkId":1313161554},{"name":"Aurora TestNet","chain":"Aurora","network":"testnet","rpc":["https://rpc.testnet.aurora.dev:8545"],"faucets":[],"features":[],"nativeCurrency":{"name":"Ether","symbol":"aETH","decimals":18,"logoURI":"https://static.debank.com/image/token/logo_url/eth/935ae4e4d1d12d59a99717a24f2540b5.png"},"infoURL":"https://aurora.dev","shortName":"aurora-testnet","chainId":1313161555,"networkId":1313161555},{"name":"Aurora BetaNet","chain":"Aurora","network":"betanet","rpc":["https://rpc.betanet.aurora.dev:8545"],"faucets":[],"features":[],"nativeCurrency":{"name":"Ether","symbol":"aETH","decimals":18},"infoURL":"https://aurora.dev","shortName":"aurora-betanet","chainId":1313161556,"networkId":1313161556},{"name":"Harmony Mainnet Shard 0","chain":"Harmony","network":"mainnet","rpc":["https://api.harmony.one"],"faucets":[],"features":[],"nativeCurrency":{"name":"ONE","symbol":"ONE","decimals":18},"infoURL":"https://www.harmony.one/","shortName":"hmy-s0","chainId":1666600000,"networkId":1666600000},{"name":"Harmony Mainnet Shard 1","chain":"Harmony","network":"mainnet","rpc":["https://s1.api.harmony.one"],"faucets":[],"features":[],"nativeCurrency":{"name":"ONE","symbol":"ONE","decimals":18},"infoURL":"https://www.harmony.one/","shortName":"hmy-s1","chainId":1666600001,"networkId":1666600001},{"name":"Harmony Mainnet Shard 2","chain":"Harmony","network":"mainnet","rpc":["https://s2.api.harmony.one"],"faucets":[],"features":[],"nativeCurrency":{"name":"ONE","symbol":"ONE","decimals":18},"infoURL":"https://www.harmony.one/","shortName":"hmy-s2","chainId":1666600002,"networkId":1666600002},{"name":"Harmony Mainnet Shard 3","chain":"Harmony","network":"mainnet","rpc":["https://s3.api.harmony.one"],"faucets":[],"features":[],"nativeCurrency":{"name":"ONE","symbol":"ONE","decimals":18},"infoURL":"https://www.harmony.one/","shortName":"hmy-s3","chainId":1666600003,"networkId":1666600003},{"name":"Harmony Testnet Shard 0","chain":"Harmony","network":"testnet","rpc":["https://api.s0.b.hmny.io"],"faucets":[],"features":[],"nativeCurrency":{"name":"ONE","symbol":"ONE","decimals":18},"infoURL":"https://www.harmony.one/","shortName":"hmy-b-s0","chainId":1666700000,"networkId":1666700000},{"name":"Harmony Testnet Shard 1","chain":"Harmony","network":"testnet","rpc":["https://api.s1.b.hmny.io"],"faucets":[],"features":[],"nativeCurrency":{"name":"ONE","symbol":"ONE","decimals":18},"infoURL":"https://www.harmony.one/","shortName":"hmy-b-s1","chainId":1666700001,"networkId":1666700001},{"name":"Harmony Testnet Shard 2","chain":"Harmony","network":"testnet","rpc":["https://api.s2.b.hmny.io"],"faucets":[],"features":[],"nativeCurrency":{"name":"ONE","symbol":"ONE","decimals":18},"infoURL":"https://www.harmony.one/","shortName":"hmy-b-s2","chainId":1666700002,"networkId":1666700002},{"name":"Harmony Testnet Shard 3","chain":"Harmony","network":"testnet","rpc":["https://api.s3.b.hmny.io"],"faucets":[],"features":[],"nativeCurrency":{"name":"ONE","symbol":"ONE","decimals":18},"infoURL":"https://www.harmony.one/","shortName":"hmy-b-s3","chainId":1666700003,"networkId":1666700003},{"name":"Pirl","chain":"PIRL","network":"mainnet","rpc":["https://wallrpc.pirl.io"],"faucets":[],"features":[],"nativeCurrency":{"name":"Pirl Ether","symbol":"PIRL","decimals":18},"infoURL":"https://pirl.io","shortName":"pirl","chainId":3125659152,"networkId":3125659152,"slip44":164},{"name":"Palm Testnet","chain":"Palm","network":"testnet","rpc":[],"faucets":[],"features":[],"nativeCurrency":{"name":"PALM","symbol":"PALM","decimals":18},"infoURL":"https://palm.io","shortName":"tpalm","chainId":11297108099,"networkId":11297108099},{"name":"Palm Mainnet","chain":"Palm","network":"mainnet","rpc":[],"faucets":[],"features":[],"nativeCurrency":{"name":"PALM","symbol":"PALM","decimals":18},"infoURL":"https://palm.io","shortName":"palm","chainId":11297108109,"networkId":11297108109},{"name":"Conflux eSpace Testnet","chain":"Conflux","network":"testnet","rpc":["https://evmtestnet.confluxrpc.com"],"faucets":[],"features":[],"nativeCurrency":{"name":"CFX","symbol":"CFX","decimals":18},"infoURL":"https://confluxnetwork.org","shortName":"Conflux","chainId":71,"networkId":71},{"name":"Conflux eSpace","chain":"Conflux","network":"mainnet","rpc":["https://evm.confluxrpc.com"],"faucets":[],"features":[],"nativeCurrency":{"name":"CFX","symbol":"CFX","decimals":18,"logoURI":"https://raw.githubusercontent.com/DimensionDev/Maskbook/e434014b17bd4622e28e21c9d4cd9ffec875889e/packages/mask/src/plugins/EVM/assets/conflux.png"},"infoURL":"https://evm.confluxscan.net","shortName":"Conflux","chainId":1030,"networkId":1030}]'); +module.exports = JSON.parse('[{"inputs":[{"internalType":"address","name":"_factory","type":"address"},{"internalType":"address","name":"_WETH9","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"WETH9","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"bytes","name":"path","type":"bytes"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMinimum","type":"uint256"}],"internalType":"struct ISwapRouter.ExactInputParams","name":"params","type":"tuple"}],"name":"exactInput","outputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"address","name":"tokenOut","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint256","name":"amountOutMinimum","type":"uint256"},{"internalType":"uint160","name":"sqrtPriceLimitX96","type":"uint160"}],"internalType":"struct ISwapRouter.ExactInputSingleParams","name":"params","type":"tuple"}],"name":"exactInputSingle","outputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"internalType":"bytes","name":"path","type":"bytes"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"amountInMaximum","type":"uint256"}],"internalType":"struct ISwapRouter.ExactOutputParams","name":"params","type":"tuple"}],"name":"exactOutput","outputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"tokenIn","type":"address"},{"internalType":"address","name":"tokenOut","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint256","name":"amountOut","type":"uint256"},{"internalType":"uint256","name":"amountInMaximum","type":"uint256"},{"internalType":"uint160","name":"sqrtPriceLimitX96","type":"uint160"}],"internalType":"struct ISwapRouter.ExactOutputSingleParams","name":"params","type":"tuple"}],"name":"exactOutputSingle","outputs":[{"internalType":"uint256","name":"amountIn","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"factory","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes[]","name":"data","type":"bytes[]"}],"name":"multicall","outputs":[{"internalType":"bytes[]","name":"results","type":"bytes[]"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"refundETH","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"selfPermit","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expiry","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"selfPermitAllowed","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expiry","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"selfPermitAllowedIfNecessary","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"selfPermitIfNecessary","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amountMinimum","type":"uint256"},{"internalType":"address","name":"recipient","type":"address"}],"name":"sweepToken","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amountMinimum","type":"uint256"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"feeBips","type":"uint256"},{"internalType":"address","name":"feeRecipient","type":"address"}],"name":"sweepTokenWithFee","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"int256","name":"amount0Delta","type":"int256"},{"internalType":"int256","name":"amount1Delta","type":"int256"},{"internalType":"bytes","name":"_data","type":"bytes"}],"name":"uniswapV3SwapCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountMinimum","type":"uint256"},{"internalType":"address","name":"recipient","type":"address"}],"name":"unwrapWETH9","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amountMinimum","type":"uint256"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"feeBips","type":"uint256"},{"internalType":"address","name":"feeRecipient","type":"address"}],"name":"unwrapWETH9WithFee","outputs":[],"stateMutability":"payable","type":"function"},{"stateMutability":"payable","type":"receive"}]'); /***/ }) diff --git a/DevelopmentPod/MaskbookPlugin/maskbook/js/6645.js b/DevelopmentPod/MaskbookPlugin/maskbook/js/6645.js deleted file mode 100644 index f03713e8..00000000 --- a/DevelopmentPod/MaskbookPlugin/maskbook/js/6645.js +++ /dev/null @@ -1,2085 +0,0 @@ -"use strict"; -(globalThis["webpackChunk_masknet_extension"] = globalThis["webpackChunk_masknet_extension"] || []).push([[6645],{ - -/***/ 86248: -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - - - -if (true) { - module.exports = __webpack_require__(36260); -} else {} - - -/***/ }), - -/***/ 14209: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "S_": () => (/* binding */ isAndroidApp), -/* harmony export */ "vU": () => (/* binding */ Flags) -/* harmony export */ }); -/* unused harmony export is_iOSApp */ -const is_iOSApp = true && "app" === 'app'; -const isAndroidApp = true && "safari" === 'firefox'; -const appOnly = "app" === 'app'; -const devOnly = "production" === 'development'; -const webOnly = false || devOnly; -const insiderOnly = false || devOnly; -const betaOrInsiderOnly = insiderOnly || "stable" === 'beta'; -// TODO: In future, we can turn this object into a Proxy to receive flags from remote -const Flags = { - isolated_dashboard_bridge_enabled: false, - mask_SDK_ready: betaOrInsiderOnly, - using_ShadowDOM_attach_mode: 'closed', - /** Don't inject injected script in this mode. Native side will do the job. */ support_declarative_user_script: is_iOSApp, - /** Don't show welcome page in this mode. Native side will do the job. */ has_native_welcome_ui: appOnly, - /** Firefox has a special API that can inject to the document with a higher permission. */ has_firefox_xray_vision: "safari" === 'firefox', - support_testnet_switch: betaOrInsiderOnly, - // #region Experimental features - image_payload_marked_as_beta: appOnly, - trader_all_api_cached_enabled: devOnly, - toolbox_enabled: webOnly, - /** Prohibit the use of test networks in production */ wallet_allow_testnet: betaOrInsiderOnly || "production" !== 'production', - LBP_whitelist_enabled: "production" === 'production', - // #endregion - EIP1559_enabled: true, - bsc_enabled: true, - polygon_enabled: true, - arbitrum_enabled: true, - xdai_enabled: true, - avalanche_enabled: true, - fantom_enabled: true, - celo_enabled: true, - aurora_enabled: true, - nft_airdrop_enabled: false, - post_actions_enabled: true, - next_id_tip_enabled: true, - // #region Functionality missing / broken - /** - * - iOS: WebExtension polyfill didn't implemented the dynamic permission API - */ no_web_extension_dynamic_permission_request: is_iOSApp, - has_no_WebRTC: true || 0, - // #endregion - using_emoji_flag: true -}; -if (false) {} - - -/***/ }), - -/***/ 94299: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "q": () => (/* binding */ MaskMessages) -/* harmony export */ }); -/* harmony import */ var _dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(85646); -/* harmony import */ var _dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_1__); -/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(78144); - - -const MaskMessages = new _dimensiondev_holoflows_kit__WEBPACK_IMPORTED_MODULE_1__.WebExtensionMessage({ - domain: 'mask' -}); -MaskMessages.serialization = _masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .serializer */ .GM; -Object.assign(globalThis, { - MaskMessages -}); - - -/***/ }), - -/***/ 81064: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "R": () => (/* binding */ createPluginHost) -/* harmony export */ }); -/* harmony import */ var _register__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(96484); -/* harmony import */ var _servie_events__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(69260); -/* harmony import */ var _shared_messages__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(94299); -/* harmony import */ var _extension_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(5027); -/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(78144); -// All plugin manager need to call createPluginHost so let's register plugins implicitly. - - - - - -function createPluginHost(signal, createContext) { - const minimalMode = { - isEnabled: _extension_service__WEBPACK_IMPORTED_MODULE_2__/* ["default"].Settings.getPluginMinimalModeEnabled */ .ZP.Settings.getPluginMinimalModeEnabled, - events: new _servie_events__WEBPACK_IMPORTED_MODULE_4__/* .Emitter */ .Q5() - }; - const removeListener = _shared_messages__WEBPACK_IMPORTED_MODULE_1__/* .MaskMessages.events.pluginMinimalModeChanged.on */ .q.events.pluginMinimalModeChanged.on(([id, val])=>minimalMode.events.emit(val ? 'enabled' : 'disabled', id) - ); - signal?.addEventListener('abort', removeListener); - return { - signal, - minimalMode, - addI18NResource (plugin, resource) { - (0,_masknet_shared_base__WEBPACK_IMPORTED_MODULE_3__/* .createI18NBundle */ .C9)(plugin, resource)(_masknet_shared_base__WEBPACK_IMPORTED_MODULE_3__/* .i18NextInstance */ .BV); - }, - createContext - }; -} - - -/***/ }), - -/***/ 11230: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "Bq": () => (/* binding */ SLIPPAGE_MIN), -/* harmony export */ "IS": () => (/* binding */ ONE_BIPS), -/* harmony export */ "Nd": () => (/* binding */ SLIPPAGE_DEFAULT), -/* harmony export */ "PM": () => (/* binding */ BIPS_BASE), -/* harmony export */ "Q9": () => (/* binding */ SLIPPAGE_MAX), -/* harmony export */ "ag": () => (/* binding */ DEFAULT_TRANSACTION_DEADLINE), -/* harmony export */ "rI": () => (/* binding */ MINIMUM_AMOUNT), -/* harmony export */ "rV": () => (/* binding */ L2_TRANSACTION_DEADLINE) -/* harmony export */ }); -/* unused harmony exports PRICE_IMPACT_LOW, PRICE_IMPACT_MEDIUM, PRICE_IMPACT_HIGH, PRICE_IMPACT_WITHOUT_FEE_CONFIRM_MIN, PRICE_IMPACT_NON_EXPERT_BLOCKED */ -/* harmony import */ var _masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(89260); -/* harmony import */ var bignumber_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(42263); -/* harmony import */ var bignumber_js__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(bignumber_js__WEBPACK_IMPORTED_MODULE_1__); - - -const BIPS_BASE = new (bignumber_js__WEBPACK_IMPORTED_MODULE_1___default())(10000); -const ONE_BIPS = _masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .ONE.dividedBy */ .ry.dividedBy(BIPS_BASE); -const SLIPPAGE_MIN = 10 // bips -; -const SLIPPAGE_DEFAULT = 50 // bips -; -const SLIPPAGE_MAX = 2000 // bips -; -const DEFAULT_TRANSACTION_DEADLINE = 30 /* minutes */ * 60 /* seconds */ ; -const L2_TRANSACTION_DEADLINE = 60 /* minutes */ * 5 /* seconds */ ; -const PRICE_IMPACT_LOW = 100 // 1% -; -const PRICE_IMPACT_MEDIUM = 300 // 3% -; -const PRICE_IMPACT_HIGH = 500 // 5% -; -// if the price slippage exceeds this number, force the user to type 'confirm' to execute -const PRICE_IMPACT_WITHOUT_FEE_CONFIRM_MIN = 1000 // 10% -; -// for non expert mode disable swaps above this -const PRICE_IMPACT_NON_EXPERT_BLOCKED = 1500 // 15% -; -const MINIMUM_AMOUNT = new (bignumber_js__WEBPACK_IMPORTED_MODULE_1___default())('1e-6'); - - -/***/ }), - -/***/ 59389: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* unused harmony export createNormalReactRoot */ -/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(71999); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(86248); -/* harmony import */ var react_dom_client__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(83230); -/* harmony import */ var _masknet_shared_base_ui__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(53242); -/* harmony import */ var _masknet_theme__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(30232); - - - - - -function createNormalReactRoot(jsx, container) { - if (!container) container = document.getElementById('root') ?? void 0; - if (!container) { - container = document.createElement('div'); - document.body.appendChild(container); - } - if (false) {} - return createRoot(container).render(/*#__PURE__*/ _jsx(StrictMode, { - children: /*#__PURE__*/ _jsx(DisableShadowRootContext.Provider, { - value: true, - children: /*#__PURE__*/ _jsx(ErrorBoundary, { - children: jsx - }) - }) - })); -} - - -/***/ }), - -/***/ 48668: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "D": () => (/* binding */ useControlledDialog) -/* harmony export */ }); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(86248); - -function useControlledDialog() { - const [open, setOpen] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false); - return { - open, - setOpen, - onClose: ()=>setOpen(false) - , - onOpen: ()=>setOpen(true) - }; -} - - -/***/ }), - -/***/ 93313: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "H": () => (/* binding */ useMenu) -/* harmony export */ }); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(86248); -/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(38090); -/* harmony import */ var _masknet_theme__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(30232); -/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(52648); - - - - -/** - * A util hooks for easier to use ``s. - * @param menus Material UI `` elements - */ function useMenu(elements, anchorSibling = false, props, useShadowRoot = true) { - const [open, setOpen] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(false); - const [anchorEl, setAnchorEl] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)(null); - const close = ()=>{ - setOpen(false); - setAnchorEl(null); - }; - const update = (0,react_use__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z)(); - return [ - /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.createElement)(useShadowRoot ? _masknet_theme__WEBPACK_IMPORTED_MODULE_1__/* .ShadowRootMenu */ .dy : _mui_material__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, { - PaperProps: props?.paperProps, - MenuListProps: props?.menuListProps, - open, - anchorEl, - onClose: close, - onClick: close, - anchorOrigin: props?.anchorOrigin, - transformOrigin: props?.transformOrigin - }, elements?.map((element, key)=>/*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.isValidElement)(element) ? /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_0__.cloneElement)(element, { - ...element.props, - key - }) : element - )), - (0,react__WEBPACK_IMPORTED_MODULE_0__.useCallback)((anchorElOrEvent)=>{ - let element; - if (anchorElOrEvent instanceof HTMLElement) { - element = anchorElOrEvent; - } else { - element = anchorElOrEvent.currentTarget; - } - // when the essential content of currentTarget would be closed over, - // we can set the anchorEl with currentTarget's bottom sibling to avoid it. - const finalAnchor = anchorSibling ? element.nextElementSibling ?? undefined : element; - setAnchorEl(finalAnchor); - setOpen(true); - // HACK: it seems like anchor doesn't work correctly - // but a force repaint can solve the problem. - window.requestAnimationFrame(update); - }, []), - ]; -} - - -/***/ }), - -/***/ 25089: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "E": () => (/* binding */ useSwitcher), -/* harmony export */ "M": () => (/* binding */ useSettingsSwitcher) -/* harmony export */ }); -/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(71999); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(86248); -/* harmony import */ var _masknet_shared_base_ui__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(53242); -/* harmony import */ var _extension_options_page_DashboardComponents_ActionButton__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(83463); - - - - -function useSettingsSwitcher(settings, options, resolver) { - const currentOption = (0,_masknet_shared_base_ui__WEBPACK_IMPORTED_MODULE_2__/* .useValueRef */ .E)(settings); - const nextOption = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>{ - if (options.length === 0) return; - if (typeof currentOption === 'undefined') return options[0]; - const indexOf = options.indexOf(currentOption); - if (indexOf === -1) return; - return indexOf === options.length - 1 ? options[0] : options[indexOf + 1]; - }, [ - currentOption, - options - ]); - const onSwitch = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)(()=>{ - if (typeof nextOption !== 'undefined') settings.value = nextOption; - }, [ - nextOption - ]); - if (options.length <= 1) return null; - if (typeof nextOption === 'undefined') return null; - return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_extension_options_page_DashboardComponents_ActionButton__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .ZP, { - sx: { - marginTop: 1 - }, - color: "primary", - variant: "contained", - onClick: onSwitch, - children: [ - "Switch to ", - resolver(nextOption) - ] - }); -} -function useSwitcher(currentOption, onSwitch, options, resolver) { - const nextOption = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>{ - if (options.length === 0) return; - if (typeof currentOption === 'undefined') return options[0]; - const indexOf = options.indexOf(currentOption); - if (indexOf === -1) return; - return indexOf === options.length - 1 ? options[0] : options[indexOf + 1]; - }, [ - currentOption, - options - ]); - if (options.length <= 1) return null; - if (typeof nextOption === 'undefined') return null; - return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_extension_options_page_DashboardComponents_ActionButton__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .ZP, { - sx: { - marginTop: 1 - }, - color: "primary", - variant: "contained", - onClick: ()=>onSwitch(nextOption) - , - children: [ - "Switch to ", - resolver(nextOption) - ] - }); -} - - -/***/ }), - -/***/ 64026: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - - -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - "$": () => (/* reexport */ getAssetAsBlobURL) -}); - -// EXTERNAL MODULE: ./src/extension/service.ts -var service = __webpack_require__(5027); -// EXTERNAL MODULE: ../shared-base/src/index.ts + 1 modules -var src = __webpack_require__(78144); -;// CONCATENATED MODULE: ./src/utils/suspends/getAssetAsBlobURL.ts - - -/** - * Fetch a file and turn it into blob URL. - * This function must run in React concurrent mode. - */ function getAssetAsBlobURL(url) { - return (0,src/* getAssetAsBlobURL */.$I)(url, service/* default.Helper.fetch */.ZP.Helper.fetch); -} - -;// CONCATENATED MODULE: ./src/utils/suspends/index.ts - - - -/***/ }), - -/***/ 13922: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "N": () => (/* binding */ useColorStyles) -/* harmony export */ }); -/* harmony import */ var _masknet_theme__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(30232); -/* harmony import */ var _mui_material_colors__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(66764); -/* harmony import */ var _mui_material_colors__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(67020); -/* harmony import */ var _mui_material_colors__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(96997); - - -const useColorStyles = (0,_masknet_theme__WEBPACK_IMPORTED_MODULE_0__/* .makeStyles */ .ZL)()((theme)=>{ - const dark = theme.palette.mode === 'dark'; - return { - error: { - color: dark ? _mui_material_colors__WEBPACK_IMPORTED_MODULE_1__/* ["default"][500] */ .Z[500] : _mui_material_colors__WEBPACK_IMPORTED_MODULE_1__/* ["default"][900] */ .Z[900] - }, - success: { - color: dark ? _mui_material_colors__WEBPACK_IMPORTED_MODULE_2__/* ["default"][500] */ .Z[500] : _mui_material_colors__WEBPACK_IMPORTED_MODULE_2__/* ["default"][800] */ .Z[800] - }, - info: { - color: dark ? _mui_material_colors__WEBPACK_IMPORTED_MODULE_3__/* ["default"][500] */ .Z[500] : _mui_material_colors__WEBPACK_IMPORTED_MODULE_3__/* ["default"][800] */ .Z[800] - } - }; -}); - - -/***/ }), - -/***/ 59282: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* unused harmony export useLookupAddress */ -/* harmony import */ var _web3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(28102); - - -function useLookupAddress(domain, pluginId) { - const { NameService , Utils } = useWeb3State(pluginId); - const chainId = useChainId(pluginId); - return useAsync(async ()=>{ - if (NameService?.lookup && Utils?.isValidDomain?.(domain)) { - return NameService.lookup(domain); - } - return ''; - }, [ - NameService, - Utils, - domain, - chainId - ]); -} - - -/***/ }), - -/***/ 37271: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "eE": () => (/* binding */ useActivatedPluginsDashboard), -/* harmony export */ "yf": () => (/* binding */ useActivatedPluginDashboard) -/* harmony export */ }); -/* unused harmony export startPluginDashboard */ -/* harmony import */ var _servie_events__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(69260); -/* harmony import */ var use_subscription__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(66040); -/* harmony import */ var _manage__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(71264); - - - -const { activated , startDaemon , events } = (0,_manage__WEBPACK_IMPORTED_MODULE_1__/* .createManager */ .m)((def)=>def.Dashboard -); -const subscription = { - getCurrentValue: ()=>[ - ...activated.plugins - ] - , - subscribe: (f)=>events.on(_servie_events__WEBPACK_IMPORTED_MODULE_2__/* .ALL_EVENTS */ .Ko, f) -}; -function useActivatedPluginsDashboard() { - return (0,use_subscription__WEBPACK_IMPORTED_MODULE_0__.useSubscription)(subscription); -} -function useActivatedPluginDashboard(pluginID) { - const plugins = (0,use_subscription__WEBPACK_IMPORTED_MODULE_0__.useSubscription)(subscription); - return plugins.find((x)=>x.ID === pluginID - ); -} -function startPluginDashboard(host) { - startDaemon(host); -} - - -/***/ }), - -/***/ 62559: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "j": () => (/* binding */ PluginId), -/* harmony export */ "m": () => (/* binding */ CurrentSNSNetwork) -/* harmony export */ }); -var CurrentSNSNetwork; -(function(CurrentSNSNetwork) { - CurrentSNSNetwork[CurrentSNSNetwork["Unknown"] = 0] = "Unknown"; - CurrentSNSNetwork[CurrentSNSNetwork["Facebook"] = 1] = "Facebook"; - CurrentSNSNetwork[CurrentSNSNetwork["Twitter"] = 2] = "Twitter"; - CurrentSNSNetwork[CurrentSNSNetwork["Instagram"] = 3] = "Instagram"; - CurrentSNSNetwork[CurrentSNSNetwork["Minds"] = 4] = "Minds"; -})(CurrentSNSNetwork || (CurrentSNSNetwork = {})); -var PluginId; -(function(PluginId) { - PluginId["Avatar"] = 'com.maskbook.avatar'; - PluginId["ArtBlocks"] = 'io.artblocks'; - PluginId["Collectible"] = 'com.maskbook.collectibles'; - PluginId["CryptoArtAI"] = 'com.maskbook.cryptoartai'; - PluginId["dHEDGE"] = 'org.dhedge'; - PluginId["EVM"] = 'com.mask.evm'; - PluginId["NextID"] = 'com.mask.next_id'; - PluginId["External"] = 'io.mask.external'; - PluginId["Furucombo"] = 'app.furucombo'; - PluginId["Gitcoin"] = 'co.gitcoin'; - PluginId["GoodGhosting"] = 'co.good_ghosting'; - PluginId["MaskBox"] = 'com.maskbook.box'; - PluginId["Poll"] = 'com.maskbook.poll'; - PluginId["Profile"] = 'com.mask.profile'; - PluginId["Trader"] = 'com.maskbook.trader'; - PluginId["Tip"] = 'com.maskbook.tip'; - PluginId["Transak"] = 'com.maskbook.transak'; - PluginId["Valuables"] = 'com.maskbook.tweet'; - PluginId["DAO"] = 'money.juicebox'; - PluginId["Debugger"] = 'io.mask.debugger'; - PluginId["Example"] = 'io.mask.example'; - PluginId["Flow"] = 'com.mask.flow'; - PluginId["RSS3"] = 'bio.rss3'; - PluginId["RedPacket"] = 'com.maskbook.red_packet'; - PluginId["RedPacketNFT"] = 'com.maskbook.red_packet_nft'; - PluginId["Pets"] = 'com.maskbook.pets'; - PluginId["Snapshot"] = 'org.snapshot'; - PluginId["ITO"] = 'com.maskbook.ito'; - PluginId["Wallet"] = 'com.maskbook.wallet'; - PluginId["PoolTogether"] = 'com.pooltogether'; - PluginId["UnlockProtocol"] = 'com.maskbook.unlockprotocol'; - PluginId["FileService"] = 'com.maskbook.fileservice'; - PluginId["CyberConnect"] = 'me.cyberconnect.app'; - PluginId["GoPlusSecurity"] = 'io.gopluslabs.security'; - PluginId["CrossChainBridge"] = 'io.mask.cross-chain-bridge'; -})(PluginId || (PluginId = {})); - - -/***/ }), - -/***/ 65043: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* unused harmony export useWallets */ -/* harmony import */ var _Context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15358); - -function useWallets(type, pluginID) { - return usePluginWeb3StateContext(pluginID).wallets; -} - - -/***/ }), - -/***/ 97096: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "FW": () => (/* reexport safe */ _web__WEBPACK_IMPORTED_MODULE_0__.FW), -/* harmony export */ "P7": () => (/* reexport safe */ _web__WEBPACK_IMPORTED_MODULE_0__.P7), -/* harmony export */ "iu": () => (/* reexport safe */ _web__WEBPACK_IMPORTED_MODULE_0__.iu), -/* harmony export */ "z4": () => (/* reexport safe */ _web__WEBPACK_IMPORTED_MODULE_0__.z4) -/* harmony export */ }); -/* harmony import */ var _web__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(75151); -/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(38047); -// Following is the API that can be called from the native side. - -// Following is the API that implemented by the native side. - - - - -/***/ }), - -/***/ 20871: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* unused harmony export createGlobalState */ -/* harmony import */ var use_subscription__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(66040); -/* harmony import */ var ts_results__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(48160); - - -/** - * Create a new global state. - * - * @param f The async function that return the data needed. - * @param subscribe - * The subscribe function that call the callback when the data changed. - * It will call the f again to revalidate the data. - * - * @returns - * It returns a tuple. - * - * The first item is the react hooks for this resource. - * The hooks receive a argument "checked". - * If checked is true, it will return a status object so you can handle the error by yourself. - * - * The second item is the revalidation function. It can be called anywhere and returns a Promise. - * It will resolves regardless the f itself fullfilled or rejected. - */ function createGlobalState(f1, subscribe) { - const listeners = new Set(); - let currentValue = None; - let pending; - const sub = { - getCurrentValue () { - if (currentValue.none) { - subscribe(revalidate); - throw pending ||= revalidate(); - } - if (currentValue.val.err) throw currentValue.val.val; - return currentValue.val.val; - }, - subscribe (f) { - listeners.add(f); - return ()=>listeners.delete(f) - ; - } - }; - function useData() { - return useSubscription(sub); - } - function revalidate() { - return f1().then((val)=>currentValue = Some(Ok(val)) - , (err)=>currentValue = Some(Err(err)) - ).then(()=>undefined - ).finally(()=>listeners.forEach((f)=>f() - ) - ); - } - return [ - useData, - revalidate - ]; -} - - -/***/ }), - -/***/ 53242: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "E": () => (/* reexport safe */ _hooks__WEBPACK_IMPORTED_MODULE_2__.E), -/* harmony export */ "F$": () => (/* reexport safe */ _hooks__WEBPACK_IMPORTED_MODULE_2__.F$), -/* harmony export */ "N3": () => (/* reexport safe */ _components__WEBPACK_IMPORTED_MODULE_1__.N3), -/* harmony export */ "S8": () => (/* reexport safe */ _hooks__WEBPACK_IMPORTED_MODULE_2__.S8), -/* harmony export */ "SV": () => (/* reexport safe */ _components__WEBPACK_IMPORTED_MODULE_1__.SV), -/* harmony export */ "pv": () => (/* reexport safe */ _hooks__WEBPACK_IMPORTED_MODULE_2__.pv), -/* harmony export */ "xw": () => (/* reexport safe */ _bom__WEBPACK_IMPORTED_MODULE_0__.x) -/* harmony export */ }); -/* harmony import */ var _bom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(66802); -/* harmony import */ var _components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(87557); -/* harmony import */ var _hooks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(21902); - - - - - -/***/ }), - -/***/ 1174: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "mZ": () => (/* reexport safe */ _PopupRoutes__WEBPACK_IMPORTED_MODULE_0__.m), -/* harmony export */ "vq": () => (/* reexport safe */ _DashboardRoutes__WEBPACK_IMPORTED_MODULE_1__.v) -/* harmony export */ }); -/* unused harmony export relativeRouteOf */ -/* harmony import */ var _PopupRoutes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(57602); -/* harmony import */ var _DashboardRoutes__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(19854); - - -function relativeRouteOf(parent) { - return (child)=>{ - if (!child.startsWith(parent)) throw new Error(); - return child.slice(parent.length).replace(/^\//, ''); - }; -} - - -/***/ }), - -/***/ 37820: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - - -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - "C9": () => (/* reexport */ register_ns/* createI18NBundle */.C), - "BV": () => (/* reexport */ i18NextInstance), - "BF": () => (/* reexport */ updateLanguage) -}); - -// EXTERNAL MODULE: ../shared-base/src/i18n/register-ns.ts -var register_ns = __webpack_require__(84926); -// EXTERNAL MODULE: ../public-api/src/index.ts -var src = __webpack_require__(97096); -// EXTERNAL MODULE: ../../node_modules/.pnpm/i18next@21.6.15/node_modules/i18next/dist/esm/i18next.js -var i18next = __webpack_require__(97344); -// EXTERNAL MODULE: ../../node_modules/.pnpm/i18next-browser-languagedetector@6.1.4/node_modules/i18next-browser-languagedetector/dist/esm/i18nextBrowserLanguageDetector.js + 2 modules -var i18nextBrowserLanguageDetector = __webpack_require__(52647); -;// CONCATENATED MODULE: ../shared-base/src/i18n/instance.ts - - - -const i18NextInstance = i18next/* default */.ZP; -i18next/* default.use */.ZP.use(i18nextBrowserLanguageDetector/* default */.Z).init({ - keySeparator: false, - interpolation: { - escapeValue: false - }, - fallbackLng: { - 'zh-CN': [ - 'zh-TW', - 'en' - ], - 'zh-TW': [ - 'zh-CN', - 'en' - ], - default: [ - 'en' - ] - }, - defaultNS: 'mask', - nonExplicitSupportedLngs: true, - detection: { - order: [ - 'navigator' - ] - } -}); -function updateLanguage(next) { - if (next === src/* LanguageOptions.__auto__ */.P7.__auto__) { - const result = i18next/* default.services.languageDetector.detect */.ZP.services.languageDetector.detect(); - i18next/* default.changeLanguage */.ZP.changeLanguage(result[0] || src/* LanguageOptions.enUS */.P7.enUS); - } else { - i18next/* default.changeLanguage */.ZP.changeLanguage(next); - } -} - -;// CONCATENATED MODULE: ../shared-base/src/i18n/index.ts - - - - -/***/ }), - -/***/ 66052: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - - -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - "q0": () => (/* reexport */ in_memory/* createInMemoryKVStorageBackend */.q), - "Ic": () => (/* reexport */ idb/* createIndexedDB_KVStorageBackend */.I), - "rc": () => (/* binding */ createKVStorageHost), - "X2": () => (/* reexport */ createProxyKVStorageBackend) -}); - -// UNUSED EXPORTS: removed - -// EXTERNAL MODULE: ../../node_modules/.pnpm/@dimensiondev+kit@0.0.0-20220228054820-f2378be/node_modules/@dimensiondev/kit/esm/index.js + 1 modules -var esm = __webpack_require__(28807); -// EXTERNAL MODULE: ../shared-base/src/kv-storage/in-memory.ts -var in_memory = __webpack_require__(3709); -// EXTERNAL MODULE: ../shared-base/src/kv-storage/idb.ts -var idb = __webpack_require__(59573); -;// CONCATENATED MODULE: ../shared-base/src/kv-storage/proxy.ts - -function createProxyKVStorageBackend() { - let target; - let [promise, resolve, reject] = (0,esm/* defer */.PQ)(); - return { - get beforeAutoSync () { - return promise; - }, - async getValue (...args) { - return target.getValue(...args); - }, - async setValue (...args) { - return target.setValue(...args); - }, - replaceBackend (backend) { - target = backend; - // resolve old one - backend.beforeAutoSync.then(resolve, reject); - [promise, resolve, reject] = (0,esm/* defer */.PQ)(); - backend.beforeAutoSync.then(resolve, reject); - } - }; -} - -;// CONCATENATED MODULE: ../shared-base/src/kv-storage/index.ts - - - - -const removed = Symbol.for('removed'); - -/** - * Create a root scope of simple K/V storage. - * @param backend The storage provider - * @param message The message channel to sync the latest value - * @param signal The abort signal - */ function createKVStorageHost(backend, message, signal = new AbortController().signal) { - return (name, defaultValues)=>{ - return createScope(signal, backend, message, null, name, defaultValues); - }; -} -const alwaysThrowHandler = ()=>{ - throw new TypeError('Invalid operation'); -}; -function createScope(signal, backend, message, parentScope, scope, defaultValues1) { - if (scope.includes('/')) throw new TypeError('scope name cannot contains "/"'); - if (scope.includes(':')) throw new TypeError('scope name cannot contains ":"'); - const currentScope = parentScope === null ? scope : `${parentScope}/${scope}`; - const storage = new Proxy({ - __proto__: null - }, { - defineProperty: alwaysThrowHandler, - deleteProperty: alwaysThrowHandler, - set: alwaysThrowHandler, - preventExtensions: alwaysThrowHandler, - setPrototypeOf: alwaysThrowHandler, - get (target, prop, receiver) { - if (typeof prop === 'symbol') return undefined; - if (target[prop]) return target[prop]; - target[prop] = createState(signal, backend, message, currentScope, prop, defaultValues1[prop]); - return target[prop]; - } - }); - backend.beforeAutoSync.then(()=>{ - for (const [key, value] of Object.entries(defaultValues1)){ - if (value === removed) continue; - // trigger the auto sync - storage[key].initialized; - } - }); - return { - createSubScope (subScope, defaultValues, scopeSignal) { - const aggregatedSignal = (0,esm/* combineAbortSignal */.dq)(scopeSignal, signal); - return createScope(aggregatedSignal, backend, message, currentScope, subScope, defaultValues); - }, - storage - }; -} -function createState(signal, backend, message, scope, prop, defaultValue) { - const propKey = `${scope}:${prop}`; - let initialized = false; - let usingDefaultValue = true; - const initializedPromise = backend.beforeAutoSync.then(()=>backend.getValue(propKey) - ).then((val)=>{ - if (val.some) usingDefaultValue = false; - return val.unwrapOr(defaultValue); - }).then((val)=>{ - state = val; - initialized = true; - }); - let state = defaultValue; - const listeners = new Set(); - function subscribe(f) { - listeners.add(f); - return ()=>listeners.delete(f) - ; - } - const subscription = { - getCurrentValue: ()=>{ - if (!initialized) throw initializedPromise; - return state; - }, - subscribe - }; - function setter(val) { - if (isEqual(state, val)) return; - usingDefaultValue = false; - state = val; - for (const f of listeners)f(); - } - message.on(([eventKey, newValue])=>eventKey === propKey && setter(newValue) - , { - signal - }); - return { - get initialized () { - return initialized; - }, - get initializedPromise () { - return initializedPromise; - }, - get value () { - if (!initialized) throw new Error('Try to access K/V state before initialization finished.'); - return state; - }, - async setValue (value) { - if (signal.aborted) throw new TypeError('Aborted storage.'); - // force trigger store when set state with default value to make it persistent. - if (usingDefaultValue || !isEqual(state, value)) await backend.setValue(propKey, value); - setter(value); - }, - subscription - }; -} -function isEqual(a, b) { - if (a === b) return true; - if (a === null || b === null) return false; - if (typeof a === 'object') { - // Note: JSON stringify is not stable. - return JSON.stringify(a) === JSON.stringify(b); - } - return false; -} - - -/***/ }), - -/***/ 68433: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "N": () => (/* binding */ formatPersonaFingerprint) -/* harmony export */ }); -/* unused harmony export MAX_PERSONA_LIMIT */ -function formatPersonaFingerprint(fingerprint, size = 0) { - if (size === 0) return fingerprint; - return `${fingerprint.substr(0, 2 + size)}...${fingerprint.substr(-size)}`; -} -const MAX_PERSONA_LIMIT = 10; - - -/***/ }), - -/***/ 67391: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* unused harmony export ChainIcon */ -/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(71999); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(86248); -/* harmony import */ var _masknet_theme__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(30232); - - - -const useStyles = (0,_masknet_theme__WEBPACK_IMPORTED_MODULE_2__/* .makeStyles */ .ZL)()((theme)=>({ - point: { - width: 12.5, - height: 12.5, - borderRadius: 6.25, - margin: 3.75 - }, - border: { - border: `1px solid ${theme.palette.background.paper}` - } - }) -); -const ChainIcon = /*#__PURE__*/ (/* unused pure expression or super */ null && (memo(({ color , size =12.5 })=>{ - const { classes } = useStyles(); - return /*#__PURE__*/ _jsx("div", { - className: classes.point, - style: { - width: size, - height: size, - backgroundColor: color - } - }); -}))); - - -/***/ }), - -/***/ 67406: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* unused harmony export MiniNetworkSelector */ -/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(71999); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(86248); -/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(32831); -/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(37731); -/* harmony import */ var _masknet_theme__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(30232); -/* harmony import */ var _ChainIcon__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(67391); -/* harmony import */ var _WalletIcon__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(86898); - - - - - - -const AllNetworkButton = (0,_mui_material__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .ZP)(_mui_material__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z)(({ theme })=>({ - display: 'inline-block', - marginRight: theme.spacing(1), - padding: 0, - borderRadius: '50%', - fontSize: 12, - '&:hover': { - boxShadow: 'none' - }, - opacity: 0.5 - }) -); -const useStyles = (0,_masknet_theme__WEBPACK_IMPORTED_MODULE_2__/* .makeStyles */ .ZL)()((theme, props)=>({ - networkSelected: { - opacity: 1, - '&:after': { - content: '""', - position: 'absolute', - bottom: -8, - right: (props.size - 4) / 2, - display: 'inline-block', - width: 4, - height: 4, - background: _masknet_theme__WEBPACK_IMPORTED_MODULE_2__/* .MaskColorVar.primary */ .ZN.primary, - borderRadius: '50%' - } - }, - networkDisabled: { - cursor: 'not-allowed', - '&:hover': { - opacity: 0.6 - } - } - }) -); -const MiniNetworkSelector = /*#__PURE__*/ (/* unused pure expression or super */ null && (memo(({ hideAllNetworkButton =false , onSelect , networks =[] , selectedNetwork , disabledNonCurrentNetwork =false , size =30 , })=>{ - const { classes } = useStyles({ - size: size - }); - return /*#__PURE__*/ _jsxs(Stack, { - direction: "row", - children: [ - !hideAllNetworkButton && /*#__PURE__*/ _jsx(AllNetworkButton, { - className: !selectedNetwork ? classes.networkSelected : '', - sx: { - width: size, - height: size, - minWidth: size, - lineHeight: `${size}px` - }, - onClick: ()=>onSelect(null) - , - children: "ALL" - }), - networks.filter((x)=>x.isMainnet - ).map((network)=>{ - return /*#__PURE__*/ _jsx(Box, { - position: "relative", - mr: 1, - height: size, - onClick: ()=>!disabledNonCurrentNetwork && onSelect(network) - , - sx: { - cursor: 'pointer', - opacity: '0.6', - ':hover': { - opacity: 1 - }, - userSelect: 'none', - lineHeight: `${size}px` - }, - className: selectedNetwork?.ID === network.ID ? classes.networkSelected : disabledNonCurrentNetwork ? classes.networkDisabled : '', - children: network.isMainnet ? /*#__PURE__*/ _jsx(WalletIcon, { - networkIcon: network.icon, - size: size - }) : /*#__PURE__*/ _jsx(ChainIcon, { - color: network.iconColor, - size: size - }) - }, network.ID); - }) - ] - }); -}))); - - -/***/ }), - -/***/ 16961: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - - -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - "u0": () => (/* reexport */ AddressViewer/* AddressViewer */.u), - "Tv": () => (/* reexport */ ApplicationEntry/* ApplicationEntry */.T), - "IR": () => (/* reexport */ AssetPlayer/* AssetPlayer */.I), - "T3": () => (/* reexport */ ERC20TokenList/* ERC20TokenList */.T), - "qy": () => (/* reexport */ I18NextProviderHMR/* I18NextProviderHMR */.q), - "XB": () => (/* reexport */ ImageIcon/* ImageIcon */.X), - "p6": () => (/* reexport */ LoadingAnimation/* LoadingAnimation */.p), - "yC": () => (/* reexport */ NFTCardStyledAssetPlayer/* NFTCardStyledAssetPlayer */.y), - "s_": () => (/* reexport */ QRCode/* QRCode */.s), - "il": () => (/* reexport */ ReversedAddress/* ReversedAddress */.i), - "xR": () => (/* reexport */ SelectTokenChip/* SelectTokenChip */.x), - "xl": () => (/* reexport */ TokenAmountPanel/* TokenAmountPanel */.x), - "T1": () => (/* reexport */ TokenIcon/* TokenIcon */.T), - "o": () => (/* reexport */ WalletIcon/* WalletIcon */.o) -}); - -// UNUSED EXPORTS: ChainIcon, MiniNetworkSelector, TokenIconUI, useImageFailOver - -// EXTERNAL MODULE: ../shared/src/UI/hooks/index.ts + 1 modules -var hooks = __webpack_require__(18245); -// EXTERNAL MODULE: ../shared/src/UI/components/TokenIcon/index.tsx + 2 modules -var TokenIcon = __webpack_require__(67632); -// EXTERNAL MODULE: ../shared/src/UI/components/ChainIcon/index.tsx -var ChainIcon = __webpack_require__(67391); -// EXTERNAL MODULE: ../shared/src/UI/components/ImageIcon/index.tsx -var ImageIcon = __webpack_require__(70552); -// EXTERNAL MODULE: ../shared/src/UI/components/WalletIcon/index.tsx -var WalletIcon = __webpack_require__(86898); -// EXTERNAL MODULE: ../shared/src/UI/components/ERC20TokenList/index.tsx + 5 modules -var ERC20TokenList = __webpack_require__(87525); -// EXTERNAL MODULE: ../shared/src/UI/components/QRCode/index.tsx -var QRCode = __webpack_require__(8524); -// EXTERNAL MODULE: ../shared/src/UI/components/SelectTokenChip/index.tsx -var SelectTokenChip = __webpack_require__(69379); -// EXTERNAL MODULE: ../shared/src/UI/components/TokenAmountPanel/index.tsx -var TokenAmountPanel = __webpack_require__(12188); -// EXTERNAL MODULE: ../shared/src/UI/components/LoadingAnimation/index.tsx -var LoadingAnimation = __webpack_require__(99769); -// EXTERNAL MODULE: ../shared/src/UI/components/MiniNetworkSelector/index.tsx -var MiniNetworkSelector = __webpack_require__(67406); -// EXTERNAL MODULE: ../shared/src/UI/components/AddressViewer/index.tsx -var AddressViewer = __webpack_require__(6288); -// EXTERNAL MODULE: ../shared/src/UI/components/I18NextProviderHMR.tsx -var I18NextProviderHMR = __webpack_require__(40547); -// EXTERNAL MODULE: ../shared/src/UI/components/AssetPlayer/index.tsx + 2 modules -var AssetPlayer = __webpack_require__(98598); -// EXTERNAL MODULE: ../shared/src/UI/components/NFTCardStyledAssetPlayer/index.tsx -var NFTCardStyledAssetPlayer = __webpack_require__(80759); -// EXTERNAL MODULE: ../shared/src/UI/components/ReversedAddress/index.tsx -var ReversedAddress = __webpack_require__(13111); -// EXTERNAL MODULE: ../shared/src/UI/components/ApplicationEntry/index.tsx -var ApplicationEntry = __webpack_require__(49016); -;// CONCATENATED MODULE: ../shared/src/UI/components/index.ts - - - - - - - - - - - - - - - - - -;// CONCATENATED MODULE: ../shared/src/UI/index.ts - - - - -/***/ }), - -/***/ 47745: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - - -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - "iD": () => (/* reexport */ useSnackbarCallback/* useSnackbarCallback */.i) -}); - -// UNUSED EXPORTS: useMenu, useMenuConfig, useMenuContext - -// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.0.0/node_modules/react/jsx-runtime.js -var jsx_runtime = __webpack_require__(71999); -// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.0.0/node_modules/react/index.js -var react = __webpack_require__(86248); -;// CONCATENATED MODULE: ../shared/src/hooks/useMenu.tsx - - - - -/** Provide ShadowRootMenu for useMenu in content script. */ const useMenuContext = /*#__PURE__*/ (/* unused pure expression or super */ null && (createContext(Menu))); -/** - * A util hooks for easier to use ``s. - * - * If you need configuration, please use useMenuConfig - */ // ! Do not change signature of this. Change useMenuConfig instead. -function useMenu(...elements) { - return useMenuConfig(elements, {}); -} -function useMenuConfig(elements, config) { - const [anchorEl, setAnchorEl] = useState(null); - const [status, setOpen] = useState(false); - const open = useCallback((anchorElOrEvent)=>{ - let element; - if (anchorElOrEvent instanceof HTMLElement) { - element = anchorElOrEvent; - } else { - element = anchorElOrEvent.currentTarget; - } - setAnchorEl(element); - setOpen(true); - // HACK: it seems like anchor doesn't work correctly - // but a force repaint can solve the problem. - window.requestAnimationFrame(update); - }, []); - const update = useUpdate(); - const close = useCallback(()=>setOpen(false) - , []); - const Menu1 = useContext(useMenuContext); - return [ - /*#__PURE__*/ _jsx(Menu1, { - open: status, - onClose: close, - onClick: close, - anchorEl: anchorEl, - ...config, - children: elements?.map((element, key)=>/*#__PURE__*/ isValidElement(element) ? /*#__PURE__*/ cloneElement(element, { - ...element.props, - key - }) : element - ) - }, "menu"), - open, - close, - ]; -} - -// EXTERNAL MODULE: ../shared/src/hooks/useSnackbarCallback.tsx -var useSnackbarCallback = __webpack_require__(26204); -;// CONCATENATED MODULE: ../shared/src/hooks/index.ts - - - - -/***/ }), - -/***/ 9555: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* unused harmony exports languages, addSharedI18N */ -/* harmony import */ var _en_US_json__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90667); -/* harmony import */ var _ja_JP_json__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(45558); -/* harmony import */ var _ko_KR_json__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(93495); -/* harmony import */ var _qya_AA_json__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(88807); -/* harmony import */ var _zh_CN_json__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(83055); -/* harmony import */ var _zh_TW_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(47359); -/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(78144); -// This file is auto generated. DO NOT EDIT -// Run `npx gulp sync-languages` to regenerate. -// Default fallback language in a family of languages are chosen by the alphabet order -// To overwrite this, please overwrite packages/scripts/src/locale-kit-next/index.ts - - - - - - -const languages = { - en: _en_US_json__WEBPACK_IMPORTED_MODULE_0__, - ja: _ja_JP_json__WEBPACK_IMPORTED_MODULE_1__, - ko: _ko_KR_json__WEBPACK_IMPORTED_MODULE_2__, - qy: _qya_AA_json__WEBPACK_IMPORTED_MODULE_3__, - 'zh-CN': _zh_CN_json__WEBPACK_IMPORTED_MODULE_4__, - zh: _zh_TW_json__WEBPACK_IMPORTED_MODULE_5__ -}; - -const addSharedI18N = (0,_masknet_shared_base__WEBPACK_IMPORTED_MODULE_6__/* .createI18NBundle */ .C9)('shared', languages); -// @ts-ignore -if (false) {} - - -/***/ }), - -/***/ 52558: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "P": () => (/* binding */ CSSVariableInjectorCSS) -/* harmony export */ }); -/* unused harmony export applyMaskColorVars */ -/* harmony import */ var lodash_unified__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(34936); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(94919); -/* harmony import */ var tinycolor2__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(32086); -/* harmony import */ var tinycolor2__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(tinycolor2__WEBPACK_IMPORTED_MODULE_1__); - - - -// Fragment are in the form of "1, 2, 3" -// which is used for rgba(var(--x), alpha) -function getRGBFragment(x, key) { - const { r , g , b } = tinycolor2__WEBPACK_IMPORTED_MODULE_1___default()(x[key]).toRgb(); - return [ - r, - g, - b - ].join(', '); -} -function CSSVariableInjectorCSS(scheme) { - const ns = scheme === 'light' ? _constants__WEBPACK_IMPORTED_MODULE_0__/* .LightColor */ .C : _constants__WEBPACK_IMPORTED_MODULE_0__/* .DarkColor */ .I; - const result = {}; - for(const key in ns){ - // --mask-name: val; - result[`--mask-${(0,lodash_unified__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z)(key)}`] = ns[key]; - result[`--mask-${(0,lodash_unified__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z)(key)}-fragment`] = getRGBFragment(ns, key); - } - return { - ':root, :host': result - }; -} -function applyMaskColorVars(node, scheme) { - const ns = scheme === 'light' ? LightColor : DarkColor; - if (node === document.body) { - const id = '#mask-style-var'; - if (!document.getElementById(id)) { - const style = document.createElement('style'); - style.id = id; - document.head.appendChild(style); - } - applyMaskColorVars(document.getElementById(id), scheme); - return; - } else if (node instanceof HTMLStyleElement) { - let rule = ':root, :host {\n'; - for(const key in ns){ - // --mask-name: val; - rule += ` --mask-${kebabCase(key)}: ${ns[key]};\n`; - rule += ` --mask-${kebabCase(key)}-fragment: ${getRGBFragment(ns, key)};\n`; - } - node.textContent = rule + '}'; - } else { - for(const key in ns){ - node.style.setProperty('--mask-' + kebabCase(key), ns[key]); - node.style.setProperty('--mask-' + kebabCase(key) + '-fragment', getRGBFragment(ns, key)); - } - } -} - - -/***/ }), - -/***/ 36972: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "Ci": () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_2__.C), -/* harmony export */ "I3": () => (/* reexport safe */ _constants__WEBPACK_IMPORTED_MODULE_2__.I), -/* harmony export */ "US": () => (/* reexport safe */ _Injector__WEBPACK_IMPORTED_MODULE_1__.U), -/* harmony export */ "ZN": () => (/* reexport safe */ _vars__WEBPACK_IMPORTED_MODULE_3__.Z), -/* harmony export */ "nb": () => (/* reexport safe */ _vars__WEBPACK_IMPORTED_MODULE_3__.n) -/* harmony export */ }); -/* harmony import */ var _applyToDOM__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(52558); -/* harmony import */ var _Injector__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(19937); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(94919); -/* harmony import */ var _vars__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(6009); - - - - - - -/***/ }), - -/***/ 9183: -/***/ ((__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) => { - - -// UNUSED EXPORTS: ButtonGroupTabList, ButtonTab - -// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.0.0/node_modules/react/jsx-runtime.js -var jsx_runtime = __webpack_require__(71999); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.6.1_1376d0c029fe63cac75d7e36fe4212f4/node_modules/@mui/material/styles/styled.js -var styled = __webpack_require__(32831); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.6.1_1376d0c029fe63cac75d7e36fe4212f4/node_modules/@mui/material/Button/Button.js -var Button = __webpack_require__(37731); -// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.0.0/node_modules/react/index.js -var react = __webpack_require__(86248); -;// CONCATENATED MODULE: ../theme/src/Components/ButtonGroupTab/ButtonGroupTab.tsx - - - -const TabButtonWrap = (0,styled/* default */.ZP)(Button/* default */.Z)(({ theme })=>({ - paddingLeft: theme.spacing(2), - paddingRight: theme.spacing(2), - flex: 1 - }) -); -/** - * This is an alternative implementation of Tab component, to use with . - */ const ButtonGroupTab_ButtonTab = /*#__PURE__*/ (/* unused pure expression or super */ null && (forwardRef((props, ref)=>{ - const activated = !!props.selected; - const { onChange , onClick , value } = props; - const handleClick = (event)=>{ - if (!activated && onChange) onChange(event, String(value)); - if (onClick) onClick(event); - }; - // TODO: replace secondary to correct theme color - return /*#__PURE__*/ _jsx(TabButtonWrap, { - ref: ref, - role: "tab", - ...props, - disableElevation: true, - variant: "contained", - color: activated ? 'primary' : 'secondary', - "aria-selected": activated, - onClick: handleClick, - onChange: undefined - }); -}))); - -;// CONCATENATED MODULE: ../theme/src/Components/ButtonGroupTab/ButtonGroupTabList.tsx - - - - - -/** - * This component is like TabList + Tabs in the @mui/material. - * It should be used with . - * - * Warning: Only a few "value" and "label" props on the @mui/material component will work. - * - * @example - * const [currentTab, onChange, tabs, setTab] = useTab('tab1', 'tab2', 'tab3') - * return ( - * - * - * - * - * - * - * Item One - * Item Two - * Item Three - * - * ) - */ const ButtonGroupTabList = /*#__PURE__*/ (/* unused pure expression or super */ null && (forwardRef((props, ref)=>{ - const context = useTabContext(); - if (context === null) throw new TypeError('No TabContext provided'); - const children = Children.map(props.children, (child)=>{ - if (!/*#__PURE__*/ isValidElement(child)) return child; - const extra = { - 'aria-controls': getPanelId(context, child.props.value), - id: getTabId(context, child.props.value), - selected: child.props.value === context.value, - onChange: props.onChange - }; - if (child.type === Tab) { - return /*#__PURE__*/ _jsx(ButtonTab, { - value: child.props.value, - ...extra, - children: child.props.label - }); - } - return /*#__PURE__*/ cloneElement(child, extra); - }); - const { onChange , ...rest } = props; - return /*#__PURE__*/ _jsx(ButtonGroup, { - ...rest, - ref: ref, - role: "tablist", - children: children - }); -}))); - -;// CONCATENATED MODULE: ../theme/src/Components/ButtonGroupTab/index.ts - - - - -/***/ }), - -/***/ 98408: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* unused harmony export CountdownButton */ -/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(71999); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(86248); - - - -const CountdownButton = /*#__PURE__*/ (/* unused pure expression or super */ null && (forwardRef((props, ref)=>{ - const { duration =60 , children , repeatContent ='Resend' , onClick , disabled , ...others } = props; - const [countdown, setCountdown] = useState(undefined); - const handleClick = (event)=>{ - setCountdown(duration); - onClick?.(event); - }; - const content = useMemo(()=>{ - if (countdown) { - return `${children} (${countdown})`; - } else if (countdown === 0) { - return repeatContent; - } else { - return children; - } - }, [ - countdown - ]); - useEffect(()=>{ - if (countdown) { - const timer = setTimeout(()=>{ - setCountdown(countdown - 1); - }, 1000); - return ()=>{ - clearTimeout(timer); - }; - } - return ()=>{}; - }, [ - countdown - ]); - return /*#__PURE__*/ _jsx(Button, { - ref: ref, - ...others, - onClick: handleClick, - disabled: !!countdown || disabled, - children: content - }); -}))); - - -/***/ }), - -/***/ 68381: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* unused harmony export PhoneNumberField */ -/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(71999); -/* harmony import */ var _UIHelper_makeStyles__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(21561); -/* harmony import */ var _TextField__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(27381); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(86248); - - - - - -const useStyles = (0,_UIHelper_makeStyles__WEBPACK_IMPORTED_MODULE_1__/* .makeStyles */ .Z)()({ - country: { - width: '120px', - marginRight: '10px' - }, - phone: { - width: '100%' - } -}); -const PhoneNumberField = ({ label , value , error , onBlur , countryPlaceholder ='+1' , onChange })=>{ - const { classes } = useStyles(); - const [phone, setPhone] = useState(value.phone); - const [countryCode, setCountryCode] = useState(value.country); - const handleCountryCodeChange = (event)=>{ - const inputValue = event.target.value; - const prefix = inputValue.startsWith('+') ? '' : '+'; - setCountryCode(prefix + inputValue); - onChange?.({ - country: inputValue, - phone: phone - }); - }; - const handlePhoneChange = (event)=>{ - const inputValue = event.target.value; - setPhone(inputValue); - onChange?.({ - country: countryCode, - phone: inputValue - }); - }; - return /*#__PURE__*/ _jsxs("div", { - children: [ - label, - /*#__PURE__*/ _jsxs(Box, { - sx: { - display: 'flex', - alignItems: 'flex-start' - }, - children: [ - /*#__PURE__*/ _jsx("div", { - className: classes.country, - children: /*#__PURE__*/ _jsx(MaskTextField, { - value: countryCode, - onChange: handleCountryCodeChange, - placeholder: countryPlaceholder - }) - }), - /*#__PURE__*/ _jsx("div", { - className: classes.phone, - children: /*#__PURE__*/ _jsx(MaskTextField, { - fullWidth: true, - value: phone, - onChange: handlePhoneChange, - onBlur: onBlur, - type: "text", - error: !!error, - helperText: error - }) - }) - ] - }) - ] - }); -}; - - -/***/ }), - -/***/ 68393: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* unused harmony export SendingCodeField */ -/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(71999); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(86248); -/* harmony import */ var _TextField__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(27381); -/* harmony import */ var _CountdownButton__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(98408); - - - - - -const SendingCodeField = ({ onSend , sendButtonText ='Send' , label , errorMessage , onBlur , disabled =false , autoSend =false , onChange })=>{ - const [code, setCode] = useState(''); - const sendButton = useRef(null); - useEffect(()=>{ - onChange?.(code); - }, [ - code - ]); - useEffect(()=>{ - if (autoSend) sendButton.current?.click(); - }, [ - autoSend - ]); - return /*#__PURE__*/ _jsxs(Box, { - children: [ - /*#__PURE__*/ _jsx(Box, { - children: label - }), - /*#__PURE__*/ _jsx(Box, { - children: /*#__PURE__*/ _jsxs(Stack, { - alignItems: "flex-start", - direction: "row", - spacing: 1, - children: [ - /*#__PURE__*/ _jsx(Box, { - flex: 1, - children: /*#__PURE__*/ _jsx(MaskTextField, { - size: "small", - value: code, - onChange: (event)=>setCode(event.target.value) - , - error: !!errorMessage, - helperText: errorMessage, - onBlur: ()=>onBlur?.(code) - , - disabled: disabled - }) - }), - /*#__PURE__*/ _jsx(CountdownButton, { - ref: sendButton, - size: "medium", - sx: { - height: '40px', - width: '100px' - }, - onClick: onSend, - disabled: disabled, - children: sendButtonText - }) - ] - }) - }) - ] - }); -}; - - -/***/ }), - -/***/ 3482: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* unused harmony exports MaskLightTheme, MaskDarkTheme */ -/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(90696); -/* harmony import */ var _changes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(89545); -/* harmony import */ var _component_changes__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(84865); -/* harmony import */ var lodash_unified__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(9084); -/* harmony import */ var _CSSVariables__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(36972); - - - - - -const color = (mode, color1)=>({ - mode, - primary: { - main: color1.primary, - contrastText: color1.primaryContrastText - }, - secondary: { - main: color1.primary, - contrastText: color1.primaryContrastText - }, - background: { - paper: color1.primaryBackground, - default: color1.secondaryBackground - }, - error: { - main: color1.redMain, - contrastText: color1.redContrastText - }, - success: { - main: color1.greenMain - }, - warning: { - main: color1.orangeMain - }, - divider: color1.divider, - text: { - primary: color1.textPrimary, - secondary: color1.textSecondary - } - }) -; -function MaskTheme(mode) { - const colors = mode === 'dark' ? _CSSVariables__WEBPACK_IMPORTED_MODULE_2__/* .DarkColor */ .I3 : _CSSVariables__WEBPACK_IMPORTED_MODULE_2__/* .LightColor */ .Ci; - const theme = (0,lodash_unified__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z)({ - palette: color(mode, colors) - }, ...Object.values(_changes__WEBPACK_IMPORTED_MODULE_0__).map(applyColors), ...Object.values(_component_changes__WEBPACK_IMPORTED_MODULE_1__).map(applyColors)); - return (0,_mui_material__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z)(theme); - function applyColors(x) { - if (typeof x === 'function') return x(mode, colors); - return x; - } -} -const MaskLightTheme = MaskTheme('light'); -const MaskDarkTheme = MaskTheme('dark'); - - -/***/ }), - -/***/ 89567: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "Bc": () => (/* reexport safe */ _custom_ui_helper__WEBPACK_IMPORTED_MODULE_1__.B), -/* harmony export */ "ZL": () => (/* reexport safe */ _makeStyles__WEBPACK_IMPORTED_MODULE_0__.Z), -/* harmony export */ "ze": () => (/* reexport safe */ _custom_ui_helper__WEBPACK_IMPORTED_MODULE_1__.z) -/* harmony export */ }); -/* harmony import */ var _makeStyles__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(21561); -/* harmony import */ var _custom_ui_helper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(22993); - - - - - -/***/ }), - -/***/ 21561: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "Z": () => (/* binding */ makeStyles) -/* harmony export */ }); -/* harmony import */ var tss_react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(13442); -/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(927); - - -const { makeStyles } = (0,tss_react__WEBPACK_IMPORTED_MODULE_0__/* .createMakeStyles */ .a0)({ - useTheme: _mui_material__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z -}); - - -/***/ }), - -/***/ 65506: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "Am": () => (/* binding */ FungibleAssetProvider), -/* harmony export */ "Dr": () => (/* binding */ EthereumTokenType), -/* harmony export */ "Lv": () => (/* binding */ AddressNameType), -/* harmony export */ "OO": () => (/* binding */ EthereumErrorType), -/* harmony export */ "Ow": () => (/* binding */ LockStatus), -/* harmony export */ "TP": () => (/* binding */ GasOption), -/* harmony export */ "V2": () => (/* binding */ CurrencyType), -/* harmony export */ "W8": () => (/* binding */ EthereumMethodType), -/* harmony export */ "Wv": () => (/* binding */ EthereumRpcType), -/* harmony export */ "a_": () => (/* binding */ ChainId), -/* harmony export */ "g8": () => (/* binding */ TransactionStatusType), -/* harmony export */ "iE": () => (/* binding */ TransactionEventType), -/* harmony export */ "lP": () => (/* binding */ ProviderType), -/* harmony export */ "n$": () => (/* binding */ TransactionStateType), -/* harmony export */ "pI": () => (/* binding */ NonFungibleAssetProvider), -/* harmony export */ "sl": () => (/* binding */ FilterTransactionType), -/* harmony export */ "td": () => (/* binding */ NetworkType) -/* harmony export */ }); -/* unused harmony exports DomainProvider, TransactionType, DebankTransactionDirection, ZerionTransactionDirection */ -var CurrencyType; -(function(CurrencyType) { - CurrencyType["USD"] = 'usd'; -})(CurrencyType || (CurrencyType = {})); -var ChainId; -(function(ChainId) { - ChainId[ChainId["Mainnet"] = 1] = "Mainnet"; - ChainId[ChainId["Ropsten"] = 3] = "Ropsten"; - ChainId[ChainId["Rinkeby"] = 4] = "Rinkeby"; - ChainId[ChainId["Gorli"] = 5] = "Gorli"; - ChainId[ChainId["Kovan"] = 42] = "Kovan"; - ChainId[ChainId[// BSC - "BSC"] = 56] = "BSC"; - ChainId[ChainId["BSCT"] = 97] = "BSCT"; - ChainId[ChainId[// Matic - "Matic"] = 137] = "Matic"; - ChainId[ChainId["Mumbai"] = 80001] = "Mumbai"; - ChainId[ChainId[// Arbitrum - "Arbitrum"] = 42161] = "Arbitrum"; - ChainId[ChainId["Arbitrum_Rinkeby"] = 421611] = "Arbitrum_Rinkeby"; - ChainId[ChainId[// xDai - "xDai"] = 100] = "xDai"; - ChainId[ChainId[// Avalanche - "Avalanche"] = 43114] = "Avalanche"; - ChainId[ChainId["Avalanche_Fuji"] = 43113] = "Avalanche_Fuji"; - ChainId[ChainId[// Celo - "Celo"] = 42220] = "Celo"; - ChainId[ChainId[// Fantom - "Fantom"] = 250] = "Fantom"; - ChainId[ChainId[// Aurora - "Aurora"] = 1313161554] = "Aurora"; - ChainId[ChainId["Aurora_Testnet"] = 1313161555] = "Aurora_Testnet"; - ChainId[ChainId[// Fuse - "Fuse"] = 122] = "Fuse"; - ChainId[ChainId[// Boba - "Boba"] = 288] = "Boba"; - ChainId[ChainId[// Metis - "Metis"] = 1088] = "Metis"; - ChainId[ChainId[// Optimistic - "Optimistic"] = 10] = "Optimistic"; - ChainId[ChainId[// Conflux - "Conflux"] = 1030] = "Conflux"; -})(ChainId || (ChainId = {})); -var LockStatus; -(function(LockStatus) { - LockStatus[LockStatus["INIT"] = 0] = "INIT"; - LockStatus[LockStatus["UNLOCK"] = 1] = "UNLOCK"; - LockStatus[LockStatus["LOCKED"] = 2] = "LOCKED"; -})(LockStatus || (LockStatus = {})); -var EthereumTokenType; -(function(EthereumTokenType) { - EthereumTokenType[EthereumTokenType["Native"] = 0] = "Native"; - EthereumTokenType[EthereumTokenType["ERC20"] = 1] = "ERC20"; - EthereumTokenType[EthereumTokenType["ERC721"] = 2] = "ERC721"; - EthereumTokenType[EthereumTokenType["ERC1155"] = 3] = "ERC1155"; -})(EthereumTokenType || (EthereumTokenType = {})); -var EthereumMethodType; -(function(EthereumMethodType) { - EthereumMethodType["WATCH_ASSET"] = 'wallet_watchAsset'; - EthereumMethodType["WATCH_ASSET_LEGACY"] = 'metamask_watchAsset'; - EthereumMethodType["PERSONAL_SIGN"] = 'personal_sign'; - EthereumMethodType["WALLET_ADD_ETHEREUM_CHAIN"] = 'wallet_addEthereumChain'; - EthereumMethodType["WALLET_SWITCH_ETHEREUM_CHAIN"] = 'wallet_switchEthereumChain'; - EthereumMethodType["ETH_CHAIN_ID"] = 'eth_chainId'; - EthereumMethodType["ETH_ACCOUNTS"] = 'eth_accounts'; - EthereumMethodType["ETH_REQUEST_ACCOUNTS"] = 'eth_requestAccounts'; - EthereumMethodType["ETH_SEND_TRANSACTION"] = 'eth_sendTransaction'; - EthereumMethodType["ETH_SEND_RAW_TRANSACTION"] = 'eth_sendRawTransaction'; - EthereumMethodType["ETH_GET_CODE"] = 'eth_getCode'; - EthereumMethodType["ETH_GAS_PRICE"] = 'eth_gasPrice'; - EthereumMethodType["ETH_BLOCK_NUMBER"] = 'eth_blockNumber'; - EthereumMethodType["ETH_GET_BALANCE"] = 'eth_getBalance'; - EthereumMethodType["ETH_GET_TRANSACTION_BY_HASH"] = 'eth_getTransactionByHash'; - EthereumMethodType["ETH_GET_TRANSACTION_RECEIPT"] = 'eth_getTransactionReceipt'; - EthereumMethodType["ETH_GET_TRANSACTION_COUNT"] = 'eth_getTransactionCount'; - EthereumMethodType["ETH_GET_FILTER_CHANGES"] = 'eth_getFilterChanges'; - EthereumMethodType["ETH_NEW_PENDING_TRANSACTION_FILTER"] = 'eth_newPendingTransactionFilter'; - EthereumMethodType["ETH_ESTIMATE_GAS"] = 'eth_estimateGas'; - EthereumMethodType["ETH_CALL"] = 'eth_call'; - EthereumMethodType["ETH_SIGN"] = 'eth_sign'; - EthereumMethodType["ETH_DECRYPT"] = 'eth_decrypt'; - EthereumMethodType["ETH_SIGN_TYPED_DATA"] = 'eth_signTypedData_v4'; - EthereumMethodType["ETH_SIGN_TRANSACTION"] = 'eth_signTransaction'; - EthereumMethodType["ETH_GET_LOGS"] = 'eth_getLogs'; - EthereumMethodType["ETH_GET_ENCRYPTION_PUBLIC_KEY"] = 'eth_getEncryptionPublicKey'; - EthereumMethodType[// only for mask - "MASK_GET_TRANSACTION_RECEIPT"] = 'mask_getTransactionReceipt'; - EthereumMethodType["MASK_REPLACE_TRANSACTION"] = 'mask_replaceTransaction'; - EthereumMethodType["MASK_LOGIN_FORTMATIC"] = 'mask_loginFortmatic'; - EthereumMethodType["MASK_LOGOUT_FORTMATIC"] = 'mask_logoutFortmatic'; -})(EthereumMethodType || (EthereumMethodType = {})); -var EthereumErrorType; -(function(EthereumErrorType) { - EthereumErrorType["ERR_SIGN_TRANSACTION"] = 'Failed to sign transaction.'; - EthereumErrorType["ERR_SEND_TRANSACTION"] = 'Failed to send transaction.'; - EthereumErrorType["ERR_SIGN_MESSAGE"] = 'Failed to sign message.'; -})(EthereumErrorType || (EthereumErrorType = {})); -var EthereumRpcType; -(function(EthereumRpcType) { - EthereumRpcType[// transaction - "CANCEL"] = 'cancel'; - EthereumRpcType["RETRY"] = 'retry'; - EthereumRpcType[// contract interaction - "SEND_ETHER"] = 'sendEther'; - EthereumRpcType["CONTRACT_INTERACTION"] = 'contractInteraction'; - EthereumRpcType["CONTRACT_DEPLOYMENT"] = 'contractDeployment'; - EthereumRpcType[// asset - "WATCH_ASSET"] = 'wallet_watchAsset'; - EthereumRpcType[// wallet - "WALLET_SWITCH_ETHEREUM_CHAIN"] = 'wallet_switchEthereumChain'; - EthereumRpcType[// sign - "SIGN"] = 'eth_sign'; - EthereumRpcType["SIGN_TYPED_DATA"] = 'eth_signTypedData_v4'; - EthereumRpcType[// decrypt - "ETH_DECRYPT"] = 'eth_decrypt'; - EthereumRpcType["ETH_GET_ENCRYPTION_PUBLIC_KEY"] = 'eth_getEncryptionPublicKey'; -})(EthereumRpcType || (EthereumRpcType = {})); -var TransactionEventType; -(function(TransactionEventType) { - TransactionEventType["TRANSACTION_HASH"] = 'transactionHash'; - TransactionEventType["RECEIPT"] = 'receipt'; - TransactionEventType["CONFIRMATION"] = 'confirmation'; - TransactionEventType["ERROR"] = 'error'; -})(TransactionEventType || (TransactionEventType = {})); -var TransactionStatusType; -(function(TransactionStatusType) { - TransactionStatusType[TransactionStatusType["NOT_DEPEND"] = 0] = "NOT_DEPEND"; - TransactionStatusType[TransactionStatusType["SUCCEED"] = 1] = "SUCCEED"; - TransactionStatusType[TransactionStatusType["FAILED"] = 2] = "FAILED"; - TransactionStatusType[TransactionStatusType["CANCELLED"] = 3] = "CANCELLED"; -})(TransactionStatusType || (TransactionStatusType = {})); -var DomainProvider; -(function(DomainProvider) { - DomainProvider["ENS"] = "ENS"; - DomainProvider["UNS"] = "UNS"; -})(DomainProvider || (DomainProvider = {})); -var FilterTransactionType; -(function(FilterTransactionType) { - FilterTransactionType["ALL"] = 'all'; - FilterTransactionType["SEND"] = 'send'; - FilterTransactionType["RECEIVE"] = 'receive'; - FilterTransactionType["CREATE_RED_PACKET"] = 'create_red_packet'; - FilterTransactionType["FILL_POOL"] = 'fill_pool'; -})(FilterTransactionType || (FilterTransactionType = {})); -var TransactionType; -(function(TransactionType) { - TransactionType["SEND"] = 'Send'; - TransactionType["SWAP"] = 'swap'; - TransactionType["RECEIVE"] = 'Receive'; - TransactionType["TRANSFER"] = 'transfer'; - TransactionType["CREATE_RED_PACKET"] = 'create_red_packet'; - TransactionType["FILL_POOL"] = 'fill_pool'; - TransactionType["CLAIM"] = 'claim'; - TransactionType["REFUND"] = 'refund'; -})(TransactionType || (TransactionType = {})); -var DebankTransactionDirection; -(function(DebankTransactionDirection) { - DebankTransactionDirection["SEND"] = 'send'; - DebankTransactionDirection["RECEIVE"] = 'receive'; -})(DebankTransactionDirection || (DebankTransactionDirection = {})); -var ZerionTransactionDirection; -(function(ZerionTransactionDirection) { - ZerionTransactionDirection["IN"] = 'in'; - ZerionTransactionDirection["OUT"] = 'out'; - ZerionTransactionDirection["SELF"] = 'self'; -})(ZerionTransactionDirection || (ZerionTransactionDirection = {})); -var AddressNameType; -(function(AddressNameType) { - AddressNameType["ADDRESS"] = "ADDRESS"; - AddressNameType["ENS"] = "ENS"; - AddressNameType["UNS"] = "UNS"; - AddressNameType["DNS"] = "DNS"; - AddressNameType["RSS3"] = "RSS3"; - AddressNameType["GUN"] = "GUN"; - AddressNameType["THE_GRAPH"] = "THE_GRAPH"; - AddressNameType["TWITTER_BLUE"] = "TWITTER_BLUE"; -})(AddressNameType || (AddressNameType = {})); -var GasOption; -(function(GasOption) { - GasOption["Low"] = 'low'; - GasOption["Medium"] = 'medium'; - GasOption["High"] = 'high'; -})(GasOption || (GasOption = {})); -var TransactionStateType; -(function(TransactionStateType) { - TransactionStateType[TransactionStateType["UNKNOWN"] = 0] = "UNKNOWN"; - TransactionStateType[TransactionStateType[/** Wait for external provider */ "WAIT_FOR_CONFIRMING"] = 1] = "WAIT_FOR_CONFIRMING"; - TransactionStateType[TransactionStateType[/** Hash is available */ "HASH"] = 2] = "HASH"; - TransactionStateType[TransactionStateType[/** Receipt is available */ "RECEIPT"] = 3] = "RECEIPT"; - TransactionStateType[TransactionStateType[/** Confirmed or Reverted */ "CONFIRMED"] = 4] = "CONFIRMED"; - TransactionStateType[TransactionStateType[/** Fail to send */ "FAILED"] = 5] = "FAILED"; -})(TransactionStateType || (TransactionStateType = {})); -var NetworkType; -(function(NetworkType) { - NetworkType["Ethereum"] = "Ethereum"; - NetworkType["Binance"] = "Binance"; - NetworkType["Polygon"] = "Polygon"; - NetworkType["Arbitrum"] = "Arbitrum"; - NetworkType["xDai"] = "xDai"; - NetworkType["Celo"] = "Celo"; - NetworkType["Fantom"] = "Fantom"; - NetworkType["Aurora"] = "Aurora"; - NetworkType["Avalanche"] = "Avalanche"; - NetworkType["Boba"] = "Boba"; - NetworkType["Fuse"] = "Fuse"; - NetworkType["Metis"] = "Metis"; - NetworkType["Optimistic"] = "Optimistic"; - NetworkType["Conflux"] = "Conflux"; -})(NetworkType || (NetworkType = {})); -var ProviderType; -(function(ProviderType) { - ProviderType["MaskWallet"] = 'Maskbook'; - ProviderType["MetaMask"] = "MetaMask"; - ProviderType["WalletConnect"] = "WalletConnect"; - ProviderType["Fortmatic"] = "Fortmatic"; - ProviderType["Coin98"] = "Coin98"; - ProviderType["MathWallet"] = "MathWallet"; - ProviderType["WalletLink"] = "WalletLink"; - ProviderType["CustomNetwork"] = "CustomNetwork"; -})(ProviderType || (ProviderType = {})); -var FungibleAssetProvider; -(function(FungibleAssetProvider) { - FungibleAssetProvider["ZERION"] = 'Zerion'; - FungibleAssetProvider["DEBANK"] = 'Debank'; -})(FungibleAssetProvider || (FungibleAssetProvider = {})); -var NonFungibleAssetProvider; -(function(NonFungibleAssetProvider) { - NonFungibleAssetProvider["OPENSEA"] = 'OpenSea'; - NonFungibleAssetProvider["RARIBLE"] = 'Rarible'; - NonFungibleAssetProvider["NFTSCAN"] = 'NFTScan'; - NonFungibleAssetProvider["ZORA"] = 'Zora'; -})(NonFungibleAssetProvider || (NonFungibleAssetProvider = {})); - - -/***/ }), - -/***/ 5645: -/***/ ((__unused_webpack_module, exports, __webpack_require__) => { - -/** - * @license React - * use-subscription.production.min.js - * - * Copyright (c) Facebook, Inc. and its affiliates. - * - * This source code is licensed under the MIT license found in the - * LICENSE file in the root directory of this source tree. - */ -var e=__webpack_require__(86248),g=Object.assign; -exports.useSubscription=function(a){var c=a.getCurrentValue,d=a.subscribe,b=e.useState(function(){return{getCurrentValue:c,subscribe:d,value:c()}});a=b[0];var f=b[1];b=a.value;if(a.getCurrentValue!==c||a.subscribe!==d)b=c(),f({getCurrentValue:c,subscribe:d,value:b});e.useDebugValue(b);e.useEffect(function(){function b(){if(!a){var b=c();f(function(a){return a.getCurrentValue!==c||a.subscribe!==d||a.value===b?a:g({},a,{value:b})})}}var a=!1,h=d(b);b();return function(){a=!0;h()}},[c,d]);return b}; - - -/***/ }), - -/***/ 89810: -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "n": () => (/* binding */ blobToDataURL) -/* harmony export */ }); -/* unused harmony export blobToText */ -const blobToDataURL = factory('readAsDataURL'); -const blobToText = factory('readAsText'); -function factory(method) { - return (blob) => { - return new Promise((resolve, reject) => { - const reader = new FileReader(); - reader.addEventListener('error', () => { - reject(reader.error); - }); - reader.addEventListener('load', () => { - resolve(reader.result); - }); - reader[method](blob); - }); - }; -} -//# sourceMappingURL=blob.js.map - -/***/ }) - -}]); \ No newline at end of file diff --git a/DevelopmentPod/MaskbookPlugin/maskbook/js/6878.js b/DevelopmentPod/MaskbookPlugin/maskbook/js/6878.js deleted file mode 100644 index 93b1d373..00000000 --- a/DevelopmentPod/MaskbookPlugin/maskbook/js/6878.js +++ /dev/null @@ -1,1938 +0,0 @@ -"use strict"; -(globalThis["webpackChunk_masknet_extension"] = globalThis["webpackChunk_masknet_extension"] || []).push([[6878],{ - -/***/ 17902: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "k": () => (/* binding */ ZRX_AFFILIATE_ADDRESS), -/* harmony export */ "q": () => (/* binding */ ZRX_BASE_URL) -/* harmony export */ }); -/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(65506); - -const ZRX_BASE_URL = { - [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .NetworkType.Ethereum */ .td.Ethereum]: 'https://api.0x.org', - [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .NetworkType.Binance */ .td.Binance]: 'https://bsc.api.0x.org/', - [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .NetworkType.Polygon */ .td.Polygon]: 'https://polygon.api.0x.org/', - [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .NetworkType.Arbitrum */ .td.Arbitrum]: 'https://arbitrum.api.0x.org/', - [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .NetworkType.xDai */ .td.xDai]: 'https://xdai.api.0x.org/', - [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .NetworkType.Avalanche */ .td.Avalanche]: 'https://avalanche.api.0x.org/', - [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .NetworkType.Celo */ .td.Celo]: 'https://celo.api.0x.org/', - [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .NetworkType.Fantom */ .td.Fantom]: 'https://fantom.api.0x.org/', - [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .NetworkType.Aurora */ .td.Aurora]: 'https://aurora.api.0x.org/', - [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .NetworkType.Boba */ .td.Boba]: '', - [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .NetworkType.Fuse */ .td.Fuse]: '', - [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .NetworkType.Metis */ .td.Metis]: '', - [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .NetworkType.Optimistic */ .td.Optimistic]: '', - [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .NetworkType.Conflux */ .td.Conflux]: '' -}; -const ZRX_AFFILIATE_ADDRESS = '0x934B510D4C9103E6a87AEf13b816fb080286D649'; - - -/***/ }), - -/***/ 2728: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "L4": () => (/* binding */ BALANCER_SOR_GAS_PRICE), -/* harmony export */ "qT": () => (/* binding */ BALANCER_SWAP_TYPE), -/* harmony export */ "r2": () => (/* binding */ BALANCER_MAX_NO_POOLS) -/* harmony export */ }); -/* harmony import */ var bignumber_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(42263); -/* harmony import */ var bignumber_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(bignumber_js__WEBPACK_IMPORTED_MODULE_0__); - -// gasPrice is used by SOR as a factor to determine how many pools to swap against. -// i.e. higher cost means more costly to trade against lots of different pools. -// Can be changed in future using SOR.gasPrice = newPrice -const BALANCER_SOR_GAS_PRICE = new (bignumber_js__WEBPACK_IMPORTED_MODULE_0___default())('1e11'); -// This determines the max no of pools the SOR will use to swap. -const BALANCER_MAX_NO_POOLS = 4; -var BALANCER_SWAP_TYPE; -(function(BALANCER_SWAP_TYPE) { - BALANCER_SWAP_TYPE["EXACT_IN"] = 'swapExactIn'; - BALANCER_SWAP_TYPE["EXACT_OUT"] = 'swapExactOut'; -})(BALANCER_SWAP_TYPE || (BALANCER_SWAP_TYPE = {})); - - -/***/ }), - -/***/ 43143: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "P": () => (/* binding */ MDEX_CUSTOM_BASES), -/* harmony export */ "R": () => (/* binding */ MDEX_BASE_AGAINST_TOKENS) -/* harmony export */ }); -/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(10466); -/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(65506); - -/** - * Some tokens can only be swapped via certain pairs, - * so we override the list of bases that are considered for these tokens. - */ const MDEX_CUSTOM_BASES = {}; -const MDEX_BASE_AGAINST_TOKENS = { - ..._masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WNATIVE_ONLY */ .HL, - [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Mainnet */ .a_.Mainnet]: [ - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WNATIVE */ .FX, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .DAI */ .h1, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .USDC */ .gn, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .USDT */ .AA - ].map((x)=>x[_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Mainnet */ .a_.Mainnet] - ), - [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.BSC */ .a_.BSC]: [ - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WNATIVE */ .FX, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .DAI */ .h1, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .USDC */ .gn, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .USDT */ .AA - ].map((x)=>x[_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.BSC */ .a_.BSC] - ) -}; - - -/***/ }), - -/***/ 45498: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "D": () => (/* binding */ PANCAKESWAP_BASE_AGAINST_TOKENS), -/* harmony export */ "t": () => (/* binding */ PANCAKESWAP_CUSTOM_BASES) -/* harmony export */ }); -/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(10466); -/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(65506); - -/** - * Some tokens can only be swapped via certain pairs, - * so we override the list of bases that are considered for these tokens. - */ const PANCAKESWAP_CUSTOM_BASES = {}; -const PANCAKESWAP_BASE_AGAINST_TOKENS = { - ..._masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WNATIVE_ONLY */ .HL, - [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.BSC */ .a_.BSC]: [ - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WNATIVE */ .FX, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .DAI */ .h1, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .BUSD */ .lz, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .BTCB */ .nB, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .UST */ .bi, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .ETHER */ .c0 - ].map((x)=>x[_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.BSC */ .a_.BSC] - ) -}; - - -/***/ }), - -/***/ 59463: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "G": () => (/* binding */ PANGOLIN_CUSTOM_BASES), -/* harmony export */ "h": () => (/* binding */ PANGOLIN_BASE_AGAINST_TOKENS) -/* harmony export */ }); -/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(10466); -/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(65506); - -/** - * Some tokens can only be swapped via certain pairs, - * so we override the list of bases that are considered for these tokens. - */ const PANGOLIN_CUSTOM_BASES = {}; -const PANGOLIN_BASE_AGAINST_TOKENS = { - ..._masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WNATIVE_ONLY */ .HL, - [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Avalanche */ .a_.Avalanche]: [ - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WNATIVE */ .FX, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .DAIe */ .Lq, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .PNG */ .yI, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .USDTe */ ._c, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .USDCe */ .tB, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .ETHER */ .c0, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WBTCe */ .MI - ].map((x)=>x[_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Avalanche */ .a_.Avalanche] - ) -}; - - -/***/ }), - -/***/ 64210: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "P": () => (/* binding */ QUICKSWAP_BASE_AGAINST_TOKENS), -/* harmony export */ "j": () => (/* binding */ QUICKSWAP_CUSTOM_BASES) -/* harmony export */ }); -/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(10466); -/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(65506); - -/** - * Some tokens can only be swapped via certain pairs, - * so we override the list of bases that are considered for these tokens. - */ const QUICKSWAP_CUSTOM_BASES = {}; -const QUICKSWAP_BASE_AGAINST_TOKENS = { - ..._masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WNATIVE_ONLY */ .HL, - [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Matic */ .a_.Matic]: [ - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WNATIVE */ .FX, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .DAI */ .h1, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .USDC */ .gn, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .USDT */ .AA, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .QUICK */ .xZ, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .ETHER */ .c0, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WBTC */ .ML, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .maUSDC */ .J6 - ].map((x)=>x[_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Matic */ .a_.Matic] - ) -}; - - -/***/ }), - -/***/ 7723: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "D": () => (/* binding */ SASHIMISWAP_CUSTOM_BASES), -/* harmony export */ "y": () => (/* binding */ SASHIMISWAP_BASE_AGAINST_TOKENS) -/* harmony export */ }); -/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(10466); -/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(65506); - -/** - * Some tokens can only be swapped via certain pairs, - * so we override the list of bases that are considered for these tokens. - */ const SASHIMISWAP_CUSTOM_BASES = {}; -const SASHIMISWAP_BASE_AGAINST_TOKENS = { - ..._masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WNATIVE_ONLY */ .HL, - [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Mainnet */ .a_.Mainnet]: [ - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WNATIVE */ .FX, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .DAI */ .h1, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .USDC */ .gn, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .USDT */ .AA, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .COMP */ .TP, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .MKR */ .Ti - ].map((x)=>x[_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Mainnet */ .a_.Mainnet] - ) -}; - - -/***/ }), - -/***/ 93688: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "S": () => (/* binding */ SUSHISWAP_BASE_AGAINST_TOKENS), -/* harmony export */ "v": () => (/* binding */ SUSHISWAP_CUSTOM_BASES) -/* harmony export */ }); -/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(10466); -/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(65506); - -/** - * Some tokens can only be swapped via certain pairs, - * so we override the list of bases that are considered for these tokens. - */ const SUSHISWAP_CUSTOM_BASES = {}; -const SUSHISWAP_BASE_AGAINST_TOKENS = { - ..._masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WNATIVE_ONLY */ .HL, - [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Mainnet */ .a_.Mainnet]: [ - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WNATIVE */ .FX, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .DAI */ .h1, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .USDC */ .gn, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .USDT */ .AA, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WBTC */ .ML, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .RUNE */ .uj, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .NFTX */ .lK, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .STETH */ ._S - ].map((x)=>x[_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Mainnet */ .a_.Mainnet] - ), - [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Matic */ .a_.Matic]: [ - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WNATIVE */ .FX, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .USDC */ .gn, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WBTC */ .ML, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .DAI */ .h1, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .USDT */ .AA - ].map((x)=>x[_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Matic */ .a_.Matic] - ), - [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.BSC */ .a_.BSC]: [ - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WNATIVE */ .FX, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .DAI */ .h1, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .BUSD */ .lz, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .USDC */ .gn, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .USDT */ .AA, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .BTCB */ .nB - ].map((x)=>x[_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.BSC */ .a_.BSC] - ), - [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.xDai */ .a_.xDai]: [ - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WNATIVE */ .FX, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .USDC */ .gn, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .USDT */ .AA, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WBTC */ .ML - ].map((x)=>x[_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.xDai */ .a_.xDai] - ), - [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Celo */ .a_.Celo]: [ - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WNATIVE */ .FX, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .CUSD */ .PX, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .CEUR */ .Th - ].map((x)=>x[_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Celo */ .a_.Celo] - ), - [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Fantom */ .a_.Fantom]: [ - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WNATIVE */ .FX, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .DAI */ .h1, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .USDC */ .gn, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .fUSDT */ .Hh, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WBTC */ .ML - ].map((x)=>x[_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Fantom */ .a_.Fantom] - ), - [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Avalanche */ .a_.Avalanche]: [ - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WNATIVE */ .FX, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .DAI */ .h1, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .USDC */ .gn, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WBTC */ .ML, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .USDT */ .AA - ].map((x)=>x[_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Avalanche */ .a_.Avalanche] - ) -}; - - -/***/ }), - -/***/ 57362: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "X": () => (/* binding */ TRADERJOE_BASE_AGAINST_TOKENS), -/* harmony export */ "b": () => (/* binding */ TRADERJOE_CUSTOM_BASES) -/* harmony export */ }); -/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(10466); -/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(65506); - -/** - * Some tokens can only be swapped via certain pairs, - * so we override the list of bases that are considered for these tokens. - */ const TRADERJOE_CUSTOM_BASES = {}; -const TRADERJOE_BASE_AGAINST_TOKENS = { - ..._masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WNATIVE_ONLY */ .HL, - [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Avalanche */ .a_.Avalanche]: [ - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WNATIVE */ .FX, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .DAIe */ .Lq, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .USDTe */ ._c, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .USDCe */ .tB, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WBTCe */ .MI - ].map((x)=>x[_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Avalanche */ .a_.Avalanche] - ) -}; - - -/***/ }), - -/***/ 91722: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "c": () => (/* binding */ TRISOLARIS_CUSTOM_BASES), -/* harmony export */ "m": () => (/* binding */ TRISOLARIS_BASE_AGAINST_TOKENS) -/* harmony export */ }); -/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(10466); -/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(65506); - -/** - * Some tokens can only be swapped via certain pairs, - * so we override the list of bases that are considered for these tokens. - */ const TRISOLARIS_CUSTOM_BASES = {}; -const TRISOLARIS_BASE_AGAINST_TOKENS = { - ..._masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WNATIVE_ONLY */ .HL, - [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Matic */ .a_.Matic]: [ - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WNATIVE */ .FX, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .USDC */ .gn, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WBTC */ .ML, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .DAI */ .h1, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .USDT */ .AA - ].map((x)=>x[_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Matic */ .a_.Matic] - ), - [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Aurora */ .a_.Aurora]: [ - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WNATIVE */ .FX, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .DAI */ .h1, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .USDT */ .AA, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .USDC */ .gn, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WBTC */ .ML - ].map((x)=>x[_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Aurora */ .a_.Aurora] - ) -}; - - -/***/ }), - -/***/ 48793: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "QQ": () => (/* binding */ UNISWAP_CUSTOM_BASES), -/* harmony export */ "Ru": () => (/* binding */ BETTER_TRADE_LESS_HOPS_THRESHOLD), -/* harmony export */ "fI": () => (/* binding */ ZERO_PERCENT), -/* harmony export */ "jg": () => (/* binding */ DEFAULT_MULTICALL_GAS_LIMIT), -/* harmony export */ "s9": () => (/* binding */ MAX_HOP), -/* harmony export */ "u7": () => (/* binding */ UNISWAP_BASE_AGAINST_TOKENS), -/* harmony export */ "yC": () => (/* binding */ ONE_HUNDRED_PERCENT) -/* harmony export */ }); -/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(65506); -/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(10466); -/* harmony import */ var _uniswap_sdk_core__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(59800); -/* harmony import */ var jsbi__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(24994); -/* harmony import */ var jsbi__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(jsbi__WEBPACK_IMPORTED_MODULE_1__); - - - -/** - * Some tokens can only be swapped via certain pairs, - * so we override the list of bases that are considered for these tokens. - */ const UNISWAP_CUSTOM_BASES = { - [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Mainnet */ .a_.Mainnet]: { - [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .AMPL */ .s5[_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Mainnet */ .a_.Mainnet].address]: [ - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .DAI */ .h1, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .WNATIVE */ .FX - ].map((x)=>x[_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Mainnet */ .a_.Mainnet] - ) - }, - [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Matic */ .a_.Matic]: { - [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .AMPL */ .s5[_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Matic */ .a_.Matic].address]: [ - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .DAI */ .h1, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .WNATIVE */ .FX - ].map((x)=>x[_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Matic */ .a_.Matic] - ) - } -}; -const UNISWAP_BASE_AGAINST_TOKENS = { - ..._masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .WNATIVE_ONLY */ .HL, - [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Mainnet */ .a_.Mainnet]: [ - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .WNATIVE */ .FX, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .DAI */ .h1, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .USDC */ .gn, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .USDT */ .AA, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .WBTC */ .ML - ].map((x)=>x[_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Mainnet */ .a_.Mainnet] - ), - [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Matic */ .a_.Matic]: [ - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .WNATIVE */ .FX, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .DAI */ .h1, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .USDC */ .gn, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .USDT */ .AA, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_3__/* .WBTC */ .ML - ].map((x)=>x[_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_2__/* .ChainId.Matic */ .a_.Matic] - ) -}; -const MAX_HOP = 3; -const DEFAULT_MULTICALL_GAS_LIMIT = 2_000_000; -// used to ensure the user doesn't send so much ETH so they end up with <.01 -const BETTER_TRADE_LESS_HOPS_THRESHOLD = new _uniswap_sdk_core__WEBPACK_IMPORTED_MODULE_0__.Percent(jsbi__WEBPACK_IMPORTED_MODULE_1___default().BigInt(50), jsbi__WEBPACK_IMPORTED_MODULE_1___default().BigInt(10000)); -const ZERO_PERCENT = new _uniswap_sdk_core__WEBPACK_IMPORTED_MODULE_0__.Percent('0'); -const ONE_HUNDRED_PERCENT = new _uniswap_sdk_core__WEBPACK_IMPORTED_MODULE_0__.Percent('1'); - - -/***/ }), - -/***/ 44814: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "N": () => (/* binding */ WANNASWAP_BASE_AGAINST_TOKENS), -/* harmony export */ "z": () => (/* binding */ WANNASWAP_CUSTOM_BASES) -/* harmony export */ }); -/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(10466); -/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(65506); - -/** - * Some tokens can only be swapped via certain pairs, - * so we override the list of bases that are considered for these tokens. - */ const WANNASWAP_CUSTOM_BASES = {}; -const WANNASWAP_BASE_AGAINST_TOKENS = { - ..._masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WNATIVE_ONLY */ .HL, - [_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Aurora */ .a_.Aurora]: [ - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WNATIVE */ .FX, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WANNA */ .lB, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .DAI */ .h1, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .USDC */ .gn, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .USDT */ .AA, - _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_0__/* .WBTC */ .ML - ].map((x)=>x[_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Aurora */ .a_.Aurora] - ) -}; - - -/***/ }), - -/***/ 99192: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "M": () => (/* binding */ useI18N), -/* harmony export */ "Z": () => (/* binding */ useLanguage) -/* harmony export */ }); -/* harmony import */ var react_i18next__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(43966); -/* harmony import */ var _masknet_public_api__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(97096); - - -/** - * Enhanced version of useTranslation - * @param opt Options - */ function useI18N(opt) { - return (0,react_i18next__WEBPACK_IMPORTED_MODULE_1__/* .useTranslation */ .$)('mask', opt); -} -function useLanguage() { - const { i18n } = (0,react_i18next__WEBPACK_IMPORTED_MODULE_1__/* .useTranslation */ .$)(); - const lang = i18n.language; - if (lang in _masknet_public_api__WEBPACK_IMPORTED_MODULE_0__/* .SupportedLanguages */ .iu) return lang; - return _masknet_public_api__WEBPACK_IMPORTED_MODULE_0__/* .SupportedLanguages.enUS */ .iu.enUS; -} - - -/***/ }), - -/***/ 71172: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "Sc": () => (/* binding */ Web3Context) -/* harmony export */ }); -/* unused harmony exports PopupWeb3Context, SwapWeb3Context */ -/* harmony import */ var lodash_unified__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(21122); -/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(30083); -/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(65506); -/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(2239); -/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(3858); -/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(80526); -/* harmony import */ var _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(55678); -/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(78144); -/* harmony import */ var _masknet_injected_script__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(39230); -/* harmony import */ var _plugins_Wallet_settings__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(94232); -/* harmony import */ var _plugins_Wallet_messages__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(84797); -/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(62481); -/* harmony import */ var _extension_service__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(5027); -/* harmony import */ var _masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(89260); -/* harmony import */ var _masknet_web3_providers__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(92820); -/* harmony import */ var _masknet_web3_contracts_abis_ERC721_json__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(78322); -/* harmony import */ var _masknet_web3_contracts_abis_CryptoPunks_json__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(28053); - - - - - - - - - - - - -const PUNK_CONTRACT_ADDRESS = '0xb47e3cd837ddf8e4c57f05d70ab865de6e193bbb'; -async function getTokenOwner(address, tokenId) { - const web3 = (0,_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_10__/* .createWeb3 */ .N)(_extension_service__WEBPACK_IMPORTED_MODULE_5__/* ["default"].Ethereum.request */ .ZP.Ethereum.request, ()=>({ - chainId: _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_11__/* .ChainId.Mainnet */ .a_.Mainnet - }) - ); - if ((0,_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_12__/* .isSameAddress */ .Wr)(address, PUNK_CONTRACT_ADDRESS)) { - const PUNKContract = (0,_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_13__/* .createContract */ .OP)(web3, PUNK_CONTRACT_ADDRESS, _masknet_web3_contracts_abis_CryptoPunks_json__WEBPACK_IMPORTED_MODULE_9__); - return PUNKContract?.methods.punkIndexToAddress(tokenId).call(); - } - const ERC721Contract = (0,_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_13__/* .createContract */ .OP)(web3, address, _masknet_web3_contracts_abis_ERC721_json__WEBPACK_IMPORTED_MODULE_8__); - return ERC721Contract?.methods.ownerOf(tokenId).call(); -} -function createWeb3Context(disablePopup = false, isMask = false) { - return { - allowTestnet: createStaticSubscription(()=>_shared__WEBPACK_IMPORTED_MODULE_4__/* .Flags.wallet_allow_testnet */ .vU.wallet_allow_testnet - ), - chainId: createSubscriptionFromSettings(isMask ? _plugins_Wallet_settings__WEBPACK_IMPORTED_MODULE_2__/* .currentMaskWalletChainIdSettings */ .DT : _plugins_Wallet_settings__WEBPACK_IMPORTED_MODULE_2__/* .currentChainIdSettings */ .wU), - account: createSubscriptionFromAsync(async ()=>{ - try { - await _plugins_Wallet_settings__WEBPACK_IMPORTED_MODULE_2__/* .currentAccountSettings.readyPromise */ .aK.readyPromise; - await _plugins_Wallet_settings__WEBPACK_IMPORTED_MODULE_2__/* .currentMaskWalletAccountSettings.readyPromise */ .T_.readyPromise; - await _plugins_Wallet_settings__WEBPACK_IMPORTED_MODULE_2__/* .currentProviderSettings.readyPromise */ .t1.readyPromise; - } catch (error) { - // do nothing - } - const account = isMask ? _plugins_Wallet_settings__WEBPACK_IMPORTED_MODULE_2__/* .currentMaskWalletAccountSettings.value */ .T_.value : _plugins_Wallet_settings__WEBPACK_IMPORTED_MODULE_2__/* .currentAccountSettings.value */ .aK.value; - const providerType = _plugins_Wallet_settings__WEBPACK_IMPORTED_MODULE_2__/* .currentProviderSettings.value */ .t1.value; - if ((0,_masknet_shared_base__WEBPACK_IMPORTED_MODULE_0__/* .isPopupPage */ .N6)()) return account; - if (providerType === _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_11__/* .ProviderType.Fortmatic */ .lP.Fortmatic) return account; - if (!(0,_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_14__/* .isInjectedProvider */ .sR)(providerType)) return account; - try { - const bridgedProvider = providerType === _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_11__/* .ProviderType.Coin98 */ .lP.Coin98 ? _masknet_injected_script__WEBPACK_IMPORTED_MODULE_1__/* .bridgedCoin98Provider */ .A9 : _masknet_injected_script__WEBPACK_IMPORTED_MODULE_1__/* .bridgedEthereumProvider */ .j3; - const injectedKey = (0,_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_15__/* .resolveProviderInjectedKey */ .YU)(providerType); - if (!injectedKey) return ''; - const propertyValue = await bridgedProvider.getProperty(injectedKey); - if (propertyValue === true) return account; - return ''; - } catch (error1) { - return ''; - } - }, '', (callback)=>{ - const a = _plugins_Wallet_settings__WEBPACK_IMPORTED_MODULE_2__/* .currentAccountSettings.addListener */ .aK.addListener(callback); - const b = _plugins_Wallet_settings__WEBPACK_IMPORTED_MODULE_2__/* .currentMaskWalletAccountSettings.addListener */ .T_.addListener(callback); - const c = _plugins_Wallet_settings__WEBPACK_IMPORTED_MODULE_2__/* .currentProviderSettings.addListener */ .t1.addListener(callback); - return ()=>void [ - a(), - b(), - c() - ] - ; - }), - tokenPrices: createSubscriptionFromSettings(_plugins_Wallet_settings__WEBPACK_IMPORTED_MODULE_2__/* .currentTokenPricesSettings */ .JC), - walletPrimary: createSubscriptionFromAsync(_plugins_Wallet_messages__WEBPACK_IMPORTED_MODULE_3__/* .WalletRPC.getWalletPrimary */ .V.getWalletPrimary, null, _plugins_Wallet_messages__WEBPACK_IMPORTED_MODULE_3__/* .WalletMessages.events.walletsUpdated.on */ .R.events.walletsUpdated.on), - wallets: createSubscriptionFromAsync(_plugins_Wallet_messages__WEBPACK_IMPORTED_MODULE_3__/* .WalletRPC.getWallets */ .V.getWallets, [], _plugins_Wallet_messages__WEBPACK_IMPORTED_MODULE_3__/* .WalletMessages.events.walletsUpdated.on */ .R.events.walletsUpdated.on), - providerType: isMask ? createStaticSubscription(()=>_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_11__/* .ProviderType.MaskWallet */ .lP.MaskWallet - ) : createSubscriptionFromSettings(_plugins_Wallet_settings__WEBPACK_IMPORTED_MODULE_2__/* .currentProviderSettings */ .t1), - networkType: createSubscriptionFromSettings(isMask ? _plugins_Wallet_settings__WEBPACK_IMPORTED_MODULE_2__/* .currentMaskWalletNetworkSettings */ .br : _plugins_Wallet_settings__WEBPACK_IMPORTED_MODULE_2__/* .currentNetworkSettings */ .fX), - erc20Tokens: createSubscriptionFromAsync(()=>_plugins_Wallet_messages__WEBPACK_IMPORTED_MODULE_3__/* .WalletRPC.getTokens */ .V.getTokens(_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_11__/* .EthereumTokenType.ERC20 */ .Dr.ERC20) - , [], _plugins_Wallet_messages__WEBPACK_IMPORTED_MODULE_3__/* .WalletMessages.events.erc20TokensUpdated.on */ .R.events.erc20TokensUpdated.on), - erc721Tokens: createSubscriptionFromAsync(()=>_plugins_Wallet_messages__WEBPACK_IMPORTED_MODULE_3__/* .WalletRPC.getTokens */ .V.getTokens(_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_11__/* .EthereumTokenType.ERC721 */ .Dr.ERC721) - , [], _plugins_Wallet_messages__WEBPACK_IMPORTED_MODULE_3__/* .WalletMessages.events.erc721TokensUpdated.on */ .R.events.erc721TokensUpdated.on), - erc1155Tokens: createSubscriptionFromAsync(()=>_plugins_Wallet_messages__WEBPACK_IMPORTED_MODULE_3__/* .WalletRPC.getTokens */ .V.getTokens(_masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_11__/* .EthereumTokenType.ERC1155 */ .Dr.ERC1155) - , [], _plugins_Wallet_messages__WEBPACK_IMPORTED_MODULE_3__/* .WalletMessages.events.erc1155TokensUpdated.on */ .R.events.erc1155TokensUpdated.on), - portfolioProvider: createSubscriptionFromSettings(_plugins_Wallet_settings__WEBPACK_IMPORTED_MODULE_2__/* .currentFungibleAssetDataProviderSettings */ .rI), - addToken: _plugins_Wallet_messages__WEBPACK_IMPORTED_MODULE_3__/* .WalletRPC.addToken */ .V.addToken, - removeToken: _plugins_Wallet_messages__WEBPACK_IMPORTED_MODULE_3__/* .WalletRPC.removeToken */ .V.removeToken, - trustToken: _plugins_Wallet_messages__WEBPACK_IMPORTED_MODULE_3__/* .WalletRPC.trustToken */ .V.trustToken, - blockToken: _plugins_Wallet_messages__WEBPACK_IMPORTED_MODULE_3__/* .WalletRPC.blockToken */ .V.blockToken, - request: _extension_service__WEBPACK_IMPORTED_MODULE_5__/* ["default"].Ethereum.request */ .ZP.Ethereum.request, - getSendOverrides: ()=>isMask ? { - account: _plugins_Wallet_settings__WEBPACK_IMPORTED_MODULE_2__/* .currentMaskWalletAccountSettings.value */ .T_.value, - chainId: _plugins_Wallet_settings__WEBPACK_IMPORTED_MODULE_2__/* .currentMaskWalletChainIdSettings.value */ .DT.value, - providerType: _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_11__/* .ProviderType.MaskWallet */ .lP.MaskWallet - } : { - account: _plugins_Wallet_settings__WEBPACK_IMPORTED_MODULE_2__/* .currentAccountSettings.value */ .aK.value, - chainId: _plugins_Wallet_settings__WEBPACK_IMPORTED_MODULE_2__/* .currentChainIdSettings.value */ .wU.value, - providerType: _plugins_Wallet_settings__WEBPACK_IMPORTED_MODULE_2__/* .currentProviderSettings.value */ .t1.value - } - , - getRequestOptions: ()=>({ - popupsWindow: !disablePopup - }) - , - getAssetsList: _plugins_Wallet_messages__WEBPACK_IMPORTED_MODULE_3__/* .WalletRPC.getAssetsList */ .V.getAssetsList, - getAssetsListNFT: _plugins_Wallet_messages__WEBPACK_IMPORTED_MODULE_3__/* .WalletRPC.getAssetsListNFT */ .V.getAssetsListNFT, - getCollectionsNFT: _plugins_Wallet_messages__WEBPACK_IMPORTED_MODULE_3__/* .WalletRPC.getCollectionsNFT */ .V.getCollectionsNFT, - getAddressNamesList: async (identity)=>{ - const addressNames = await _plugins_Wallet_messages__WEBPACK_IMPORTED_MODULE_3__/* .WalletRPC.getAddressNames */ .V.getAddressNames(identity); - if (identity.identifier.network === 'twitter.com') { - const result = await _masknet_web3_providers__WEBPACK_IMPORTED_MODULE_7__/* .Twitter.getUserNftContainer */ .tL.getUserNftContainer(identity.identifier.userId ?? ''); - if (result?.type_name.toUpperCase() === 'ERC721') { - const contractAddress = await getTokenOwner(result.address, result.token_id); - if (contractAddress) return [ - ...addressNames, - { - type: _masknet_web3_shared_evm__WEBPACK_IMPORTED_MODULE_11__/* .AddressNameType.TWITTER_BLUE */ .Lv.TWITTER_BLUE, - label: contractAddress, - resolvedAddress: contractAddress - }, - ]; - } - } - return addressNames; - }, - getTransactionList: _plugins_Wallet_messages__WEBPACK_IMPORTED_MODULE_3__/* .WalletRPC.getTransactionList */ .V.getTransactionList, - fetchERC20TokensFromTokenLists: _masknet_web3_providers__WEBPACK_IMPORTED_MODULE_7__/* .TokenList.fetchERC20TokensFromTokenLists */ .no.fetchERC20TokensFromTokenLists, - providerSocket: (0,_masknet_web3_shared_base__WEBPACK_IMPORTED_MODULE_6__/* .getProxyWebsocketInstance */ .bu)((info)=>_plugins_Wallet_messages__WEBPACK_IMPORTED_MODULE_3__/* .WalletMessages.events.socketMessageUpdated.sendToAll */ .R.events.socketMessageUpdated.sendToAll(info) - ) - }; -} -const Web3Context = createWeb3Context(false, false); -const PopupWeb3Context = createWeb3Context(true, true); -const SwapWeb3Context = createWeb3Context(false, true); -// utils -function createSubscriptionFromSettings(settings) { - const { trigger , subscribe } = getEventTarget(); - settings.readyPromise.finally(trigger); - return { - getCurrentValue: ()=>{ - if (!settings.ready) throw settings.readyPromise; - return settings.value; - }, - subscribe: (f)=>{ - const a = subscribe(f); - const b = settings.addListener(()=>trigger() - ); - return ()=>void [ - a(), - b() - ] - ; - } - }; -} -function createStaticSubscription(getter) { - return { - getCurrentValue: getter, - subscribe: ()=>lodash_unified__WEBPACK_IMPORTED_MODULE_16__/* ["default"] */ .Z - }; -} -function createSubscriptionFromAsync(f, defaultValue, onChange) { - // 0 - idle, 1 - updating state, > 1 - waiting state - let beats = 0; - let state = defaultValue; - let isLoading = true; - const { subscribe , trigger } = getEventTarget(); - const init = f().then((v)=>{ - state = v; - }).finally(trigger).finally(()=>isLoading = false - ); - const flush = async ()=>{ - state = await f(); - beats -= 1; - if (beats > 0) { - beats = 1; - setTimeout(flush, 0); - } else if (beats < 0) { - beats = 0; - } - trigger(); - }; - return { - getCurrentValue: _shared__WEBPACK_IMPORTED_MODULE_4__/* .isAndroidApp */ .S_ ? ()=>state - : ()=>{ - if (isLoading) throw init; - return state; - }, - subscribe: (sub)=>{ - const a = subscribe(sub); - const b = onChange(_shared__WEBPACK_IMPORTED_MODULE_4__/* .isAndroidApp */ .S_ ? async ()=>{ - beats += 1; - if (beats === 1) await flush(); - } : ()=>{ - beats += 1; - if (beats === 1) flush(); - }); - return ()=>void [ - a(), - b() - ] - ; - } - }; -} -function getEventTarget() { - const event = new EventTarget(); - const EVENT = 'event'; - let timer; - function trigger() { - clearTimeout(timer); - // delay to update state to ensure that all settings to be synced globally - timer = setTimeout(()=>event.dispatchEvent(new Event(EVENT)) - , 600); - } - function subscribe(f) { - event.addEventListener(EVENT, f); - return ()=>event.removeEventListener(EVENT, f) - ; - } - return { - trigger, - subscribe - }; -} - - -/***/ }), - -/***/ 14157: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "u": () => (/* binding */ base) -/* harmony export */ }); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(50361); -/* harmony import */ var _locales_languages__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(52928); - - -const base = { - ID: _constants__WEBPACK_IMPORTED_MODULE_0__/* .PLUGIN_ID */ .Uu, - name: { - fallback: _constants__WEBPACK_IMPORTED_MODULE_0__/* .PLUGIN_NAME */ .EW - }, - description: { - fallback: _constants__WEBPACK_IMPORTED_MODULE_0__/* .PLUGIN_DESCRIPTION */ .PP - }, - publisher: { - name: { - fallback: 'Mask Network' - }, - link: 'https://mask.io/' - }, - enableRequirement: { - architecture: { - app: true, - web: true - }, - networks: { - type: 'opt-out', - networks: {} - }, - target: 'stable' - }, - i18n: _locales_languages__WEBPACK_IMPORTED_MODULE_1__/* .languages */ .M -}; - - -/***/ }), - -/***/ 94919: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "C": () => (/* binding */ LightColor), -/* harmony export */ "I": () => (/* binding */ DarkColor) -/* harmony export */ }); -const LightColor = { - primary: '#1c68f3', - primaryContrastText: '#ffffff', - background: '#FFFFFF', - secondary: '#e8f0fe', - secondaryContrastText: '#1c68f3', - input: '#F6F6F8', - primaryBackground: '#ffffff', - primaryBackground2: '#FBFBFC', - secondaryBackground: '#f9fafa', - lightBackground: '#F9FAFA', - mainBackground: '#ffffff', - suspensionBackground: 'rgba(249, 250, 250, 0.8)', - normalBackground: '#F3F3F4', - twitterBackground: '#F7F9FA', - twitterBackgroundHover: '#EFF1F2', - twitterInputBackground: '#F6F8F8', - twitterButton: '#111418', - twitterButtonText: '#ffffff', - twitterBlue: '#1C68F3', - twitterBorderLine: '#EDF1F2', - twitterSecond: '#7B8192', - twitterMain: '#0F1419', - twitterBottom: '#ffffff', - twitterInfoBackground: '#AFC3E1', - twitterInfo: '#8CA3C7', - twitterBg: '#F6F8F8', - twitterTooltipBg: 'rgba(0,0,0,.6)', - twitterInput: '#EDF1F2', - twitterLine: '#EBEEF0', - redMain: '#ff5f5f', - redLight: '#ffafaf', - redContrastText: '#ffffff', - greenMain: '#77e0b5', - greenLight: '#e6f6f0', - orangeMain: '#ffb915', - orangeLight: '#faf0d8', - iconLight: '#a6a9b6', - divider: '#eff3f4', - border: '#F3F3F4', - borderSecondary: '#536471', - textPrimary: '#111432', - textSecondary: '#7b8192', - secondaryInfoText: '#AFC3E1', - normalText: '#7B8192', - infoBackground: 'rgba(175, 195, 225, 0.15)', - success: '#60DFAB', - warning: '#FFB915', - blue: '#1C68F3', - textLink: '#1C68F3', - lineLight: '#E4E8F1', - lineLighter: '#E9E9EA', - textLight: '#A6A9B6', - lightestBackground: '#FFFFFF', - linkText: '#1C68F3', - twitter: '#2CA4EF', - facebook: '#4267B2', - white: '#ffffff', - bottom: '#F9FAFA', - main: '#1C68F3', - errorBackground: 'rgba(255, 95, 95, 0.15)', - tooltipBackground: '#ffffff', - warningBackground: 'rgba(255, 185, 21, 0.1)', - cyberconnectPrimary: '#000000' -}; -const DarkColor = { - primary: '#1c68f3', - primaryContrastText: '#ffffff', - background: '#15171A', - secondary: '#242e57', - secondaryContrastText: '#ffffff', - input: '#282B49', - primaryBackground: '#212442', - primaryBackground2: '#212442', - secondaryBackground: '#252846', - lightBackground: '#2E314F', - mainBackground: '#111432', - suspensionBackground: 'rgba(27, 30, 60, 0.8)', - normalBackground: '#262947', - twitterInputBackground: '#17191D', - twitterBackground: '#17191D', - twitterBackgroundHover: '#17191D', - twitterButton: '#EFF3F4', - twitterButtonText: '#0F1419', - twitterBlue: '#4989FF', - twitterBorderLine: '#2F3336', - twitterInput: '#1D2023', - twitterSecond: '#636B72', - twitterMain: '#D9D9D9', - twitterBottom: '#000000', - twitterInfoBackground: '#AFC3E1', - twitterInfo: '#8CA3C7', - twitterLine: '#2F3336', - twitterBg: '#15171A', - twitterTooltipBg: 'rgba(91,112,131,.6)', - redMain: '#ff5f5f', - redLight: '#46304a', - redContrastText: '#ffffff', - greenMain: '#77e0b5', - greenLight: '#314457', - orangeMain: '#ffb915', - orangeLight: '#463e3f', - iconLight: '#a6a9b6', - divider: '#3e455e', - border: '#3E455E', - borderSecondary: '#6e767d', - // TODO: ? - textPrimary: '#ffffff', - // TODO: ? - textSecondary: 'ghostwhite', - secondaryInfoText: '#AFC3E1', - normalText: 'rgba(255, 255, 255, 0.8)', - infoBackground: 'rgba(175, 195, 225, 0.15)', - success: '#60DFAB', - warning: '#FFB915', - blue: '#1C68F3', - textLink: '#ffffff', - lineLight: '#32365B', - lineLighter: '#32365B', - textLight: '#A6A9B6', - lightestBackground: '#212422', - linkText: '#ffffff', - twitter: '#2CA4EF', - facebook: '#4267B2', - white: '#ffffff', - bottom: '#000000', - main: '#D4D4D4', - errorBackground: 'rgba(255, 95, 95, 0.1)', - tooltipBackground: '#1A1D20', - warningBackground: 'rgba(255, 185, 21, 0.1)', - cyberconnectPrimary: '#ffffff' -}; - - -/***/ }), - -/***/ 53637: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "D": () => (/* binding */ MaskDialog) -/* harmony export */ }); -/* unused harmony export useMaskDialog */ -/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(71999); -/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(30397); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(86248); -/* harmony import */ var _ShadowRoot__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(82502); -/* harmony import */ var _DialogTitle__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(22581); -/* harmony import */ var _DialogStack__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(57208); - - - - - - -/** - * This component is used to provide a most common dialog practice in Mask design. - * - * But all the primitives are tweaked to fit the design - * Therefore it also OK to not use this component if you need a special one. - */ const MaskDialog = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.memo)((props)=>{ - const { title , onBack , onClose , open , children , DialogProps , ...inferredDialogProps } = props; - const dialogProps = { - onBackdropClick: onClose, - onClose, - open, - ...inferredDialogProps, - ...DialogProps - }; - const { extraProps , shouldReplaceExitWithBack , IncreaseStack } = (0,_DialogStack__WEBPACK_IMPORTED_MODULE_4__/* .useDialogStackActor */ .t)(open); - return (0,_ShadowRoot__WEBPACK_IMPORTED_MODULE_2__/* .usePortalShadowRoot */ .ad)((container)=>/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(IncreaseStack, { - children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_mui_material__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z, { - container: container, - ...dialogProps, - ...extraProps, - children: [ - shouldReplaceExitWithBack ? // replace onClose with onBack when and only when there is no onBack - /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_DialogTitle__WEBPACK_IMPORTED_MODULE_3__/* .MaskDialogTitle */ .K, { - onBack: onBack || onClose, - onClose: onBack ? onClose : undefined, - children: title - }) : /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_DialogTitle__WEBPACK_IMPORTED_MODULE_3__/* .MaskDialogTitle */ .K, { - onBack: onBack, - onClose: onClose, - children: title - }), - children - ] - }) - }) - ); -}); -function useMaskDialog(title, content, actions) { - const [isOpen, setOpen] = useState(false); - const onClose = useCallback(()=>setOpen(false) - , []); - return /*#__PURE__*/ _jsxs(MaskDialog, { - onClose: onClose, - open: isOpen, - title: title, - children: [ - /*#__PURE__*/ _jsx(DialogContent, { - children: content - }), - /*#__PURE__*/ _jsx(DialogActions, { - children: actions - }) - ] - }); -} - - -/***/ }), - -/***/ 33058: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "J": () => (/* binding */ FolderTabs), -/* harmony export */ "p": () => (/* binding */ FolderTabPanel) -/* harmony export */ }); -/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(71999); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(86248); -/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(83849); -/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var _UIHelper_makeStyles__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(21561); -/* harmony import */ var _CSSVariables__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(36972); - - - - - -const useStyles = (0,_UIHelper_makeStyles__WEBPACK_IMPORTED_MODULE_3__/* .makeStyles */ .Z)()((theme, _, refs)=>{ - const { palette } = theme; - const isDark = palette.mode === 'dark'; - const inactiveColor = isDark ? theme.palette.grey['50'] : _CSSVariables__WEBPACK_IMPORTED_MODULE_4__/* .MaskColorVar.twitterBg */ .ZN.twitterBg; - const selected = {}; - return { - folderTabs: {}, - selected, - tabList: { - display: 'flex', - gap: 8 - }, - tab: { - display: 'flex', - justifyContent: 'center', - alignItems: 'center', - flexGrow: 1, - height: 40, - borderRadius: '8px 8px 0 0', - cursor: 'pointer', - backgroundColor: inactiveColor, - border: `1px solid ${inactiveColor}`, - borderBottomColor: 'transparent', - color: theme.palette.text.secondary, - position: 'relative', - boxSizing: 'border-box', - [`&.${refs.selected}`]: { - backgroundColor: theme.palette.background.paper, - borderColor: _CSSVariables__WEBPACK_IMPORTED_MODULE_4__/* .MaskColorVar.twitterBorderLine */ .ZN.twitterBorderLine, - color: theme.palette.primary.main - }, - // cover bottom border of the active tab - [`&.${refs.selected}::after`]: { - position: 'absolute', - content: '""', - height: 2, - borderLeft: `1px solid ${_CSSVariables__WEBPACK_IMPORTED_MODULE_4__/* .MaskColorVar.twitterBorderLine */ .ZN.twitterBorderLine}`, - borderRight: `1px solid ${_CSSVariables__WEBPACK_IMPORTED_MODULE_4__/* .MaskColorVar.twitterBorderLine */ .ZN.twitterBorderLine}`, - backgroundColor: theme.palette.background.paper, - bottom: '-2px', - left: -1, - right: -1 - } - }, - tabPanel: { - backgroundColor: theme.palette.background.paper - }, - tabContent: { - border: `1px solid ${_CSSVariables__WEBPACK_IMPORTED_MODULE_4__/* .MaskColorVar.twitterBorderLine */ .ZN.twitterBorderLine}`, - padding: 12, - borderRadius: '0 0 8px 8px' - } - }; -}); -const FolderTabPanel = ({ className , ...rest })=>{ - const { classes } = useStyles(); - return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", { - className: classnames__WEBPACK_IMPORTED_MODULE_2___default()(classes.tabPanel, className), - role: "tabpanel", - ...rest - }); -}; -const FolderTabs = ({ children: childNodes , defaultValue =0 , ...rest })=>{ - const { classes } = useStyles(); - const [value, setValue] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(defaultValue); - const tabs = react__WEBPACK_IMPORTED_MODULE_1__.Children.map(childNodes, (child, index)=>{ - const label = child.props.label; - const childValue = child.props.value ?? index; - const selected = value === childValue; - return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("button", { - tabIndex: index === 0 ? 0 : -1, - role: "tab", - className: classnames__WEBPACK_IMPORTED_MODULE_2___default()(classes.tab, selected ? classes.selected : null), - onClick: ()=>setValue(childValue) - , - children: label - }, label); - }); - const children = react__WEBPACK_IMPORTED_MODULE_1__.Children.map(childNodes, (child, index)=>{ - const childValue = child.props.value ?? index; - const selected = value === childValue; - return selected ? child : null; - }); - if (!tabs.length) return null; - return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", { - children: [ - /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", { - className: classes.tabList, - role: "tablist", - children: tabs - }), - /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", { - className: classes.tabContent, - children: children - }) - ] - }); -}; - - -/***/ }), - -/***/ 99685: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "Ii": () => (/* binding */ useCustomSnackbar), -/* harmony export */ "YO": () => (/* binding */ CustomSnackbarProvider), -/* harmony export */ "wT": () => (/* reexport safe */ notistack__WEBPACK_IMPORTED_MODULE_3__.wT) -/* harmony export */ }); -/* unused harmony export CustomSnackbarContent */ -/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(71999); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(86248); -/* harmony import */ var tss_react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(13442); -/* harmony import */ var notistack__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(86610); -/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(589); -/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(37253); -/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(83849); -/* harmony import */ var classnames__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(classnames__WEBPACK_IMPORTED_MODULE_4__); -/* harmony import */ var _mui_icons_material__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(8166); -/* harmony import */ var _mui_icons_material_Warning__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(15520); -/* harmony import */ var _mui_icons_material_Info__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(64751); -/* harmony import */ var _mui_icons_material_Done__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(73377); -/* harmony import */ var _masknet_icons__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(141); -/* harmony import */ var _masknet_icons__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(14696); -/* harmony import */ var _UIHelper_makeStyles__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(21561); -/* harmony import */ var _UIHelper_custom_ui_helper__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(22993); -/* harmony import */ var _CSSVariables__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(36972); - - - - - - - - - - - - - - - -const useStyles = (0,_UIHelper_makeStyles__WEBPACK_IMPORTED_MODULE_5__/* .makeStyles */ .Z)()((theme, { offsetY }, refs)=>{ - const { palette } = theme; - const isDark = palette.mode === 'dark'; - const spinningAnimationKeyFrames = tss_react__WEBPACK_IMPORTED_MODULE_2__/* .keyframes */ .F4` -to { - transform: rotate(360deg) -}`; - const title = { - color: _CSSVariables__WEBPACK_IMPORTED_MODULE_6__/* .MaskColorVar.textPrimary */ .ZN.textPrimary, - fontWeight: 400, - fontSize: 14, - lineHeight: '20px' - }; - const message = { - color: _CSSVariables__WEBPACK_IMPORTED_MODULE_6__/* .MaskColorVar.textSecondary */ .ZN.textSecondary, - fontWeight: 400, - display: 'flex', - alignItems: 'center', - fontSize: 12 - }; - const defaultVariant = { - background: isDark ? '#17191D' : '#F7F9FA', - color: isDark ? '#D9D9D9' : '#0F1419', - [`& .${refs.title}`]: { - color: isDark ? '#D9D9D9' : palette.grey['800'] - } - }; - const success = { - backgroundColor: '#60DFAB', - color: '#ffffff', - [`& .${refs.title}`]: { - color: 'inherit' - }, - [`& .${refs.message}`]: { - color: 'inherit' - } - }; - const error = { - background: '#FF5F5F', - color: '#ffffff', - [`& .${refs.title}`]: { - color: 'inherit' - }, - [`& .${refs.message}`]: { - color: 'inherit' - } - }; - const info = { - background: '#8CA3C7', - color: '#ffffff', - [`& .${refs.title}`]: { - color: 'inherit' - }, - [`& .${refs.message}`]: { - color: 'inherit' - } - }; - const warning = { - backgroundColor: '#FFB915', - color: '#ffffff', - [`& .${refs.title}`]: { - color: 'inherit' - }, - [`& .${refs.message}`]: { - color: 'inherit' - } - }; - return { - root: { - zIndex: 9999, - transform: typeof offsetY !== undefined ? `translateY(${offsetY}px)` : 'none', - color: _CSSVariables__WEBPACK_IMPORTED_MODULE_6__/* .MaskColorVar.textLight */ .ZN.textLight, - pointerEvents: 'inherit' - }, - content: { - alignItems: 'center', - padding: theme.spacing(1.5, 2), - borderRadius: 12, - width: 380, - flexWrap: 'nowrap !important', - [`&.${success.ref}`]: { - background: _CSSVariables__WEBPACK_IMPORTED_MODULE_6__/* .MaskColorVar.greenMain */ .ZN.greenMain, - color: _CSSVariables__WEBPACK_IMPORTED_MODULE_6__/* .MaskColorVar.lightestBackground */ .ZN.lightestBackground - }, - [`&.${error.ref}`]: { - background: _CSSVariables__WEBPACK_IMPORTED_MODULE_6__/* .MaskColorVar.redMain */ .ZN.redMain, - color: _CSSVariables__WEBPACK_IMPORTED_MODULE_6__/* .MaskColorVar.lightestBackground */ .ZN.lightestBackground, - title: { - color: 'inherit' - } - }, - [`&.${info.ref}`]: { - color: _CSSVariables__WEBPACK_IMPORTED_MODULE_6__/* .MaskColorVar.lightestBackground */ .ZN.lightestBackground - }, - [`&.${warning.ref}`]: { - color: '#ffffff' - } - }, - default: defaultVariant, - success, - error, - info, - warning, - icon: { - display: 'flex', - alignItems: 'center', - justifyContent: 'center' - }, - spinning: { - display: 'flex', - animation: `${spinningAnimationKeyFrames} 2s infinite linear` - }, - action: { - marginLeft: 'auto' - }, - closeButton: { - color: 'inherit' - }, - texts: { - marginLeft: theme.spacing(2) - }, - title, - message, - link: { - display: 'flex', - marginLeft: theme.spacing(0.5) - } - }; -}); -const IconMap = { - default: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_icons_material_Info__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z, { - color: "inherit" - }), - success: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_icons_material_Done__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, { - color: "inherit" - }), - error: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_masknet_icons__WEBPACK_IMPORTED_MODULE_9__/* .RiskIcon */ .w, {}), - warning: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_icons_material_Warning__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .Z, { - color: "inherit" - }), - info: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_icons_material_Info__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z, { - color: "inherit" - }) -}; -const CustomSnackbarContent = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.forwardRef)((props, ref)=>{ - const classes = (0,_UIHelper_custom_ui_helper__WEBPACK_IMPORTED_MODULE_11__/* .useStylesExtends */ .B)(useStyles({ - offsetY: props.offsetY - }), props); - const snackbar = (0,notistack__WEBPACK_IMPORTED_MODULE_3__/* .useSnackbar */ .Ds)(); - const loadingIcon = /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_masknet_icons__WEBPACK_IMPORTED_MODULE_12__/* .LoadingIcon */ .H, { - color: "inherit", - className: classes.spinning - }); - const variantIcon = props.processing ? loadingIcon : props.variant ? IconMap[props.variant] : null; - let renderedAction = /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_13__/* ["default"] */ .Z, { - className: classes.closeButton, - onClick: ()=>snackbar.closeSnackbar(props.id) - , - children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_icons_material__WEBPACK_IMPORTED_MODULE_14__/* ["default"] */ .Z, {}) - }); - if (props.action) { - renderedAction = typeof props.action === 'function' ? props.action(props.id) : props.action; - } - return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(notistack__WEBPACK_IMPORTED_MODULE_3__/* .SnackbarContent */ .No, { - ref: ref, - className: classnames__WEBPACK_IMPORTED_MODULE_4___default()(classes.content, classes[props.variant]), - children: [ - variantIcon && /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", { - className: classes.icon, - children: variantIcon - }), - /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", { - className: classes.texts, - children: [ - /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_15__/* ["default"] */ .Z, { - className: classes.title, - variant: "h2", - children: props.title - }), - props.message && /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_15__/* ["default"] */ .Z, { - className: classes.message, - variant: "body1", - children: props.message - }) - ] - }), - /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", { - className: classes.action, - children: renderedAction - }) - ] - }); -}); -const CustomSnackbarProvider = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.memo)(({ offsetY , ...rest })=>{ - const ref = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null); - const { classes } = useStyles({ - offsetY: offsetY - }); - const onDismiss = (key)=>()=>{ - ref.current?.closeSnackbar(key); - } - ; - return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(notistack__WEBPACK_IMPORTED_MODULE_3__/* .SnackbarProvider */ .wT, { - ref: ref, - maxSnack: 30, - disableWindowBlurListener: true, - anchorOrigin: { - vertical: 'top', - horizontal: 'right' - }, - hideIconVariant: true, - content: (key, title)=>/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(CustomSnackbarContent, { - id: key, - variant: rest.variant ?? 'default', - title: title, - offsetY: offsetY - }) - , - action: (key)=>/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_13__/* ["default"] */ .Z, { - size: "large", - onClick: onDismiss(key), - sx: { - color: 'inherit' - }, - children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_icons_material__WEBPACK_IMPORTED_MODULE_14__/* ["default"] */ .Z, { - color: "inherit" - }) - }) - , - classes: { - containerRoot: classes.root, - variantSuccess: classes.success, - variantError: classes.error, - variantInfo: classes.info, - variantWarning: classes.warning - }, - ...rest - }); -}); -function useCustomSnackbar() { - const { enqueueSnackbar , closeSnackbar } = (0,notistack__WEBPACK_IMPORTED_MODULE_3__/* .useSnackbar */ .Ds)(); - const showSnackbar = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)((text, options = { - variant: 'default' - })=>{ - const { processing , message , variant , ...rest } = options; - return enqueueSnackbar(text, { - variant: options.variant, - content: (key, title)=>{ - return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(CustomSnackbarContent, { - variant: variant ?? 'default', - id: key, - title: title, - message: message, - processing: processing, - action: rest.action, - classes: rest.classes - }); - }, - ...rest - }); - }, [ - enqueueSnackbar - ]); - return { - showSnackbar, - closeSnackbar - }; -} - - -/***/ }), - -/***/ 76584: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "R": () => (/* binding */ MaskThemeProvider) -/* harmony export */ }); -/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(71999); -/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(20310); -/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(20288); -/* harmony import */ var _masknet_icons__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(96154); -/* harmony import */ var _Components_Snackbar__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(99685); - - - - -function compose(init, ...f) { - return f.reduceRight((prev, curr)=>curr(prev) - , /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, { - children: init - })); -} -function MaskThemeProvider(props) { - const { children , useTheme , useMaskIconPalette , CustomSnackbarOffsetY } = props; - const theme = useTheme(); - const MaskIconPalette = useMaskIconPalette(theme); - return compose(children, (jsx)=>/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_masknet_icons__WEBPACK_IMPORTED_MODULE_2__/* .MaskIconPaletteContext.Provider */ .v.Provider, { - value: MaskIconPalette, - children: jsx - }) - , (jsx)=>/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z, { - theme: theme, - children: jsx - }) - , (jsx)=>/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_Components_Snackbar__WEBPACK_IMPORTED_MODULE_1__/* .CustomSnackbarProvider */ .YO, { - disableWindowBlurListener: false, - anchorOrigin: { - vertical: 'top', - horizontal: 'right' - }, - children: jsx, - offsetY: CustomSnackbarOffsetY - }) - , (jsx)=>/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, { - children: [ - /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .ZP, {}), - jsx - ] - }) - ); -} - - -/***/ }), - -/***/ 45548: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - - -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - "Y": () => (/* reexport */ useTabs) -}); - -// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.0.0/node_modules/react/index.js -var react = __webpack_require__(86248); -;// CONCATENATED MODULE: ../theme/src/hooks/useTabs.tsx - -/** - * @example - * const [currentTab, onChange, tabs, setTab] = useTab('tab1', 'tab2', 'tab3') - * return ( - * - * - * - * - * - * - * Item One - * Item Two - * Item Three - * - * ) - */ function useTabs(defaultTab, ...possibleTabs) { - const [currentTab, setTab] = (0,react.useState)(defaultTab); - const enum_ = { - [defaultTab]: defaultTab - }; - possibleTabs.forEach((t)=>enum_[t] = t - ); - const onChange = (0,react.useCallback)((event, value)=>{ - setTab(value); - }, []); - return [ - currentTab, - onChange, - enum_, - setTab - ]; -} - -;// CONCATENATED MODULE: ../theme/src/hooks/index.ts - - - -/***/ }), - -/***/ 19296: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "bu": () => (/* binding */ getProxyWebsocketInstance) -/* harmony export */ }); -/* unused harmony exports ProviderProxy, getWebSocketInstance, sendMessageToProxy */ -/* harmony import */ var date_fns_differenceInSeconds__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(23131); -/* harmony import */ var date_fns_compareAsc__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(10671); -/* harmony import */ var reconnecting_websocket__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(10568); - - - -const POOL_CACHE_EXPIRE_TIME = 30; -const POOL_CACHE_MAX_CAPACITY = 10; -class ProviderProxy { - /** - * Send request to proxy websocket - * @param message - */ send(message) { - this.clearPool(); - const cache = this._pool.get(message.id); - if (cache && !cache.done) return; - if (cache && !this.isExpired(cache)) { - const notify = message.notify || this._globalNotify; - notify({ - id: message.id, - done: true, - from: 'cache' - }); - return; - } - this._socket.send(JSON.stringify({ - id: message.id, - method: message.method, - params: message.params - })); - this._pool.set(message.id, { - data: [], - createdAt: new Date(), - notify: message.notify || this._globalNotify - }); - } - /** - * Send async request to proxy websocket, Avoid use this method - * @param message - */ async sendAsync(message) { - this.clearPool(); - const cache = this._pool.get(message.id); - if (cache && !this.isExpired(cache)) return this.getResult(message.id) ?? []; - const innerMessagePromise = ()=>new Promise((resolve, reject)=>{ - message.notify = (info)=>{ - if (info.done) resolve(info); - if (info.error) reject(info); - }; - this.send(message); - }) - ; - await innerMessagePromise(); - return this.getResult(message.id) ?? []; - } - get socket() { - return this._socket; - } - getResult(id) { - const item = this._pool.get(id); - if (!item) return []; - const newItem = { - ...item, - pickedAt: new Date() - }; - this._pool.set(id, newItem); - return item.data; - } - /** - * Cache is expired - * @param item cache item - * @returns boolean - */ isExpired(item) { - const now = new Date(); - return !!item.updatedAt && (0,date_fns_differenceInSeconds__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)(now, item.updatedAt) > POOL_CACHE_EXPIRE_TIME; - } - clearPool() { - let beCleaned = []; - const entities = Array.from(this._pool.entries()); - // clear expired - beCleaned = entities.filter((x)=>this.isExpired(x[1]) - ); - // clear overed size - if (entities.length > POOL_CACHE_MAX_CAPACITY) { - const picks = entities.sort((a, b)=>(0,date_fns_compareAsc__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z)(a[1].pickedAt || a[1].createdAt, b[1].pickedAt || b[1].createdAt) - ).slice(0, entities.length - POOL_CACHE_MAX_CAPACITY); - beCleaned = [ - ...beCleaned, - ...picks - ]; - } - beCleaned.forEach((x)=>this._pool.delete(x[0]) - ); - } - constructor(point, notifyFn){ - this.waitingOpen = ()=>{ - return new Promise((resolve, reject)=>{ - this._socket.addEventListener('open', ()=>resolve() - ); - this._socket.addEventListener('error', ()=>reject() - ); - }); - }; - this.onMessage = (event)=>{ - const { id , results , error } = JSON.parse(event.data); - const itemInPoll = this._pool.get(id); - if (!itemInPoll) return; - if (error || !id) { - itemInPoll.notify({ - id, - done: true, - error: error, - from: 'remote' - }); - } - const updatedAt = new Date(); - if (!results || results.length === 0) { - this._pool.set(id, { - ...itemInPoll, - done: true - }); - itemInPoll.notify({ - id, - done: true, - from: 'remote' - }); - return; - } - const dataInPool = itemInPoll?.data ?? []; - const patchData = [ - ...dataInPool, - ...results ?? [] - ]; - this._pool.set(id, { - ...itemInPoll, - updatedAt, - data: patchData - }); - itemInPoll.notify({ - id, - done: false, - from: 'remote' - }); - }; - this.registerMessage = ()=>{ - this._socket.removeEventListener('message', this.onMessage); - this._socket.addEventListener('message', this.onMessage); - }; - this._socket = new reconnecting_websocket__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z(point, undefined, { - minUptime: 20000 - }); - this._pool = new Map(); - this._globalNotify = notifyFn; - } -} -const SOCKET_POINT = // workaround, should create a stage env for QA testing - true ? 'wss://hyper-proxy-production.mask-reverse-proxy.workers.dev' : 0; -var SocketState; -(function(SocketState) { - SocketState[SocketState["CONNECTING"] = 0] = "CONNECTING"; - SocketState[SocketState["OPEN"] = 1] = "OPEN"; - SocketState[SocketState["CLOSING"] = 2] = "CLOSING"; - SocketState[SocketState["CLOSED"] = 3] = "CLOSED"; -})(SocketState || (SocketState = {})); -/** - * Provider a ProxySocket instance - * @returns a function to operate socket instance - */ function getProxyWebsocketInstanceWrapper() { - let cachedInstance; - const createNewInstance = async (notify)=>{ - cachedInstance = new ProviderProxy(SOCKET_POINT, notify); - await cachedInstance.waitingOpen(); - cachedInstance.registerMessage(); - }; - return async (notify)=>{ - if (cachedInstance) return cachedInstance; - await createNewInstance(notify); - return cachedInstance; - }; -} -const getProxyWebsocketInstance = getProxyWebsocketInstanceWrapper(); -/** - * Provide a websocket instance for once, avoid use it. - * @param endPoint websocket endpoint - * @returns websocket instance - */ const getWebSocketInstance = async (endPoint)=>{ - const socket = new WebSocket(endPoint ?? SOCKET_POINT); - const waitingOpen = ()=>{ - return new Promise((resolve, reject)=>{ - socket.addEventListener('open', ()=>resolve() - ); - socket.addEventListener('error', ()=>reject() - ); - }); - }; - await waitingOpen(); - return socket; -}; -/** - * Provide a websocket instance for once, avoid use it. - * @param message endPoint - * @param [endPoint = SOCKET_POINT] endPoint - * @returns promise of request - */ const sendMessageToProxy = async (message, endPoint)=>{ - let data = []; - const socket = await getWebSocketInstance(SOCKET_POINT ?? endPoint); - const sendPromise = ()=>new Promise((resolve, reject)=>{ - socket.addEventListener('message', (event)=>{ - const { results =[] , error } = JSON.parse(event.data); - if (error) { - socket.close(); - reject(error); - } - if (results.length === 0) { - socket.close(); - resolve(data); - } - data = [ - ...data, - ...results - ]; - }); - socket.send(JSON.stringify(message)); - }) - ; - return sendPromise(); -}; - - -/***/ }), - -/***/ 80526: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "$G": () => (/* binding */ getChainDetailed), -/* harmony export */ "AQ": () => (/* binding */ getCoinGeckoPlatformId), -/* harmony export */ "EP": () => (/* binding */ getChainIdFromNetworkType), -/* harmony export */ "EX": () => (/* binding */ getChainDetailedCAIP), -/* harmony export */ "F3": () => (/* binding */ getChainShortName), -/* harmony export */ "Ji": () => (/* binding */ isChainIdValid), -/* harmony export */ "NX": () => (/* binding */ getChainRPC), -/* harmony export */ "U1": () => (/* binding */ isEIP1559Supported), -/* harmony export */ "_T": () => (/* binding */ getNetworkTypeFromChainId), -/* harmony export */ "np": () => (/* binding */ getChainIdFromName), -/* harmony export */ "qj": () => (/* binding */ isFortmaticSupported), -/* harmony export */ "qz": () => (/* binding */ getChainName), -/* harmony export */ "sR": () => (/* binding */ isInjectedProvider), -/* harmony export */ "vM": () => (/* binding */ getCoinGeckoCoinId), -/* harmony export */ "yX": () => (/* binding */ isChainIdMainnet) -/* harmony export */ }); -/* unused harmony exports getChainFullName, getChainFromChainId, getNetworkName */ -/* harmony import */ var web3_utils__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(11627); -/* harmony import */ var web3_utils__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(web3_utils__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _enum__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(36803); -/* harmony import */ var _assets_chains_json__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(2545); -/* harmony import */ var _constants__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(26223); -/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(65506); - - - - - - -function isChainIdValid(chainId, allowTestnet = false) { - const chainDetailed = getChainDetailed(chainId); - return !!getNetworkTypeFromChainId(chainId) && (chainDetailed?.network === 'mainnet' || allowTestnet); -} -function isChainIdMainnet(chainId) { - const chainDetailed = getChainDetailed(chainId); - return chainDetailed?.network === 'mainnet'; -} -function isEIP1559Supported(chainId) { - const features = getChainDetailed(chainId)?.features ?? []; - return features.includes('EIP1559'); -} -function isInjectedProvider(providerType) { - return [ - _types__WEBPACK_IMPORTED_MODULE_1__/* .ProviderType.Coin98 */ .lP.Coin98, - _types__WEBPACK_IMPORTED_MODULE_1__/* .ProviderType.WalletLink */ .lP.WalletLink, - _types__WEBPACK_IMPORTED_MODULE_1__/* .ProviderType.MathWallet */ .lP.MathWallet - ].includes(providerType); -} -function isFortmaticSupported(chainId) { - return [ - _types__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Mainnet */ .a_.Mainnet, - _types__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.BSC */ .a_.BSC - ].includes(chainId); -} -function getChainDetailed(chainId = _types__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Mainnet */ .a_.Mainnet) { - return _assets_chains_json__WEBPACK_IMPORTED_MODULE_2__.find((x)=>x.chainId === chainId - ); -} -// Learn more: https://github.com/ChainAgnostic/CAIPs/blob/master/CAIPs/caip-2.md -function getChainDetailedCAIP(chainId = _types__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Mainnet */ .a_.Mainnet) { - const chainDetailed = getChainDetailed(chainId); - const { RPC =[] } = (0,_constants__WEBPACK_IMPORTED_MODULE_3__/* .getRPCConstants */ .t0)(chainId); - if (!chainDetailed) return; - return { - chainId: (0,web3_utils__WEBPACK_IMPORTED_MODULE_0__.toHex)(chainDetailed.chainId), - chainName: chainDetailed.name, - nativeCurrency: chainDetailed.nativeCurrency, - rpcUrls: RPC, - blockExplorerUrls: [ - chainDetailed.explorers && chainDetailed.explorers.length > 0 && chainDetailed.explorers[0].url ? chainDetailed.explorers[0].url : chainDetailed.infoURL, - ] - }; -} -function getChainRPC(chainId, seed) { - const { RPC , RPC_WEIGHTS } = (0,_constants__WEBPACK_IMPORTED_MODULE_3__/* .getRPCConstants */ .t0)(chainId); - if (!RPC || !RPC_WEIGHTS) throw new Error(`Unknown chain id: ${chainId}.`); - return RPC[RPC_WEIGHTS[seed]]; -} -function getChainName(chainId) { - const chainDetailed = getChainDetailed(chainId); - return chainDetailed?.name ?? 'Unknown Network'; -} -function getChainShortName(chainId) { - const chainDetailed = getChainDetailed(chainId); - return chainDetailed?.shortName ?? 'Unknown Network'; -} -function getChainFullName(chainId) { - const chainDetailed = getChainDetailed(chainId); - return chainDetailed?.fullName ?? 'Unknown Network'; -} -function getChainIdFromName(name) { - if (!name) return; - const chainDetailed = _assets_chains_json__WEBPACK_IMPORTED_MODULE_2__.find((x)=>[ - x.chain, - x.network, - x.name, - x.shortName, - x.fullName ?? '' - ].filter(Boolean).map((y)=>y.toLowerCase() - ).includes(name.toLowerCase()) - ); - return chainDetailed && getNetworkTypeFromChainId(chainDetailed.chainId) ? chainDetailed.chainId : undefined; -} -const getChainIdFromNetworkType = (0,_enum__WEBPACK_IMPORTED_MODULE_4__/* .createLookupTableResolver */ .F)({ - [_types__WEBPACK_IMPORTED_MODULE_1__/* .NetworkType.Ethereum */ .td.Ethereum]: _types__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Mainnet */ .a_.Mainnet, - [_types__WEBPACK_IMPORTED_MODULE_1__/* .NetworkType.Arbitrum */ .td.Arbitrum]: _types__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Arbitrum */ .a_.Arbitrum, - [_types__WEBPACK_IMPORTED_MODULE_1__/* .NetworkType.Avalanche */ .td.Avalanche]: _types__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Avalanche */ .a_.Avalanche, - [_types__WEBPACK_IMPORTED_MODULE_1__/* .NetworkType.Binance */ .td.Binance]: _types__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.BSC */ .a_.BSC, - [_types__WEBPACK_IMPORTED_MODULE_1__/* .NetworkType.Celo */ .td.Celo]: _types__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Celo */ .a_.Celo, - [_types__WEBPACK_IMPORTED_MODULE_1__/* .NetworkType.Fantom */ .td.Fantom]: _types__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Fantom */ .a_.Fantom, - [_types__WEBPACK_IMPORTED_MODULE_1__/* .NetworkType.Polygon */ .td.Polygon]: _types__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Matic */ .a_.Matic, - [_types__WEBPACK_IMPORTED_MODULE_1__/* .NetworkType.xDai */ .td.xDai]: _types__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.xDai */ .a_.xDai, - [_types__WEBPACK_IMPORTED_MODULE_1__/* .NetworkType.Aurora */ .td.Aurora]: _types__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Aurora */ .a_.Aurora, - [_types__WEBPACK_IMPORTED_MODULE_1__/* .NetworkType.Conflux */ .td.Conflux]: _types__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Conflux */ .a_.Conflux -}, _types__WEBPACK_IMPORTED_MODULE_1__/* .ChainId.Mainnet */ .a_.Mainnet); -// The value should be same as chain field in packages/web3-shared/evm/assets/chains.json -const chainNameMap = { - [_types__WEBPACK_IMPORTED_MODULE_1__/* .NetworkType.Ethereum */ .td.Ethereum]: 'ETH', - [_types__WEBPACK_IMPORTED_MODULE_1__/* .NetworkType.Binance */ .td.Binance]: 'BNB Chain', - [_types__WEBPACK_IMPORTED_MODULE_1__/* .NetworkType.Polygon */ .td.Polygon]: 'Polygon', - [_types__WEBPACK_IMPORTED_MODULE_1__/* .NetworkType.Arbitrum */ .td.Arbitrum]: 'Arbitrum', - [_types__WEBPACK_IMPORTED_MODULE_1__/* .NetworkType.xDai */ .td.xDai]: 'Gnosis', - [_types__WEBPACK_IMPORTED_MODULE_1__/* .NetworkType.Celo */ .td.Celo]: 'CELO', - [_types__WEBPACK_IMPORTED_MODULE_1__/* .NetworkType.Fantom */ .td.Fantom]: 'FTM', - [_types__WEBPACK_IMPORTED_MODULE_1__/* .NetworkType.Aurora */ .td.Aurora]: 'Aurora', - [_types__WEBPACK_IMPORTED_MODULE_1__/* .NetworkType.Avalanche */ .td.Avalanche]: 'AVAX', - [_types__WEBPACK_IMPORTED_MODULE_1__/* .NetworkType.Boba */ .td.Boba]: 'Boba', - [_types__WEBPACK_IMPORTED_MODULE_1__/* .NetworkType.Fuse */ .td.Fuse]: 'Fuse', - [_types__WEBPACK_IMPORTED_MODULE_1__/* .NetworkType.Metis */ .td.Metis]: 'Metis', - [_types__WEBPACK_IMPORTED_MODULE_1__/* .NetworkType.Optimistic */ .td.Optimistic]: 'Optimistic', - [_types__WEBPACK_IMPORTED_MODULE_1__/* .NetworkType.Conflux */ .td.Conflux]: 'Conflux' -}; -function getNetworkTypeFromChainId(chainId, value1) { - const chainDetailed = getChainDetailed(chainId); - const entry = Object.entries(chainNameMap).find(([_, value])=>{ - if (value === chainDetailed?.chain) return true; - return false; - }); - if (value1) return entry?.[1]; - return entry?.[0]; -} -function getChainFromChainId(chainId) { - const chainDetailed = getChainDetailed(chainId); - return chainDetailed?.chain; -} -function getCoinGeckoPlatformId(chainId) { - const { PLATFORM_ID ='' } = (0,_constants__WEBPACK_IMPORTED_MODULE_3__/* .getCoinGeckoConstants */ .V6)(chainId); - return PLATFORM_ID; -} -function getCoinGeckoCoinId(chainId) { - const { COIN_ID ='' } = (0,_constants__WEBPACK_IMPORTED_MODULE_3__/* .getCoinGeckoConstants */ .V6)(chainId); - return COIN_ID; -} -function getNetworkName(chainId) { - const chainDetailed = getChainDetailed(chainId); - if (!chainDetailed) return 'Unknown Network'; - if (chainDetailed.networkId === ChainId.Matic) return chainDetailed.fullName; - if (chainDetailed.network === 'mainnet') return chainDetailed.chain; - return upperFirst(chainDetailed.network); -} - - -/***/ }) - -}]); \ No newline at end of file diff --git a/DevelopmentPod/MaskbookPlugin/maskbook/js/6992.js b/DevelopmentPod/MaskbookPlugin/maskbook/js/6992.js deleted file mode 100644 index 6badd78a..00000000 --- a/DevelopmentPod/MaskbookPlugin/maskbook/js/6992.js +++ /dev/null @@ -1,2688 +0,0 @@ -"use strict"; -(globalThis["webpackChunk_masknet_extension"] = globalThis["webpackChunk_masknet_extension"] || []).push([[6992],{ - -/***/ 69157: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "ZP": () => (/* binding */ TabContext), -/* harmony export */ "_i": () => (/* binding */ useTabContext), -/* harmony export */ "pQ": () => (/* binding */ getTabId), -/* harmony export */ "uU": () => (/* binding */ getPanelId) -/* harmony export */ }); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(86248); -/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(71999); - - -/** - * @type {React.Context<{ idPrefix: string; value: string } | null>} - */ - - -const Context = /*#__PURE__*/react__WEBPACK_IMPORTED_MODULE_0__.createContext(null); - -if (false) {} - -function useUniquePrefix() { - const [id, setId] = react__WEBPACK_IMPORTED_MODULE_0__.useState(null); - react__WEBPACK_IMPORTED_MODULE_0__.useEffect(() => { - setId(`mui-p-${Math.round(Math.random() * 1e5)}`); - }, []); - return id; -} - -function TabContext(props) { - const { - children, - value - } = props; - const idPrefix = useUniquePrefix(); - const context = react__WEBPACK_IMPORTED_MODULE_0__.useMemo(() => { - return { - idPrefix, - value - }; - }, [idPrefix, value]); - return /*#__PURE__*/(0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_1__.jsx)(Context.Provider, { - value: context, - children: children - }); -} - false ? 0 : void 0; -/** - * @returns {unknown} - */ - -function useTabContext() { - return react__WEBPACK_IMPORTED_MODULE_0__.useContext(Context); -} -function getPanelId(context, value) { - const { - idPrefix - } = context; - - if (idPrefix === null) { - return null; - } - - return `${context.idPrefix}-P-${value}`; -} -function getTabId(context, value) { - const { - idPrefix - } = context; - - if (idPrefix === null) { - return null; - } - - return `${context.idPrefix}-T-${value}`; -} - -/***/ }), - -/***/ 86248: -/***/ ((module, __unused_webpack_exports, __webpack_require__) => { - - - -if (true) { - module.exports = __webpack_require__(36260); -} else {} - - -/***/ }), - -/***/ 15011: -/***/ ((__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) => { - - -// EXTERNAL MODULE: ../shared-base/src/index.ts + 1 modules -var src = __webpack_require__(78144); -// EXTERNAL MODULE: ../dashboard/src/entry.tsx + 2 modules -var entry = __webpack_require__(51347); -;// CONCATENATED MODULE: ./shared-ui/locales/en-US.json -const en_US_namespaceObject = JSON.parse('{"database_backup":"Backup Database","database_overwrite":"Overwrite Database with backup","database_clear":"Clear Database","debug_new_bug_issue":"New bug issue","debug_metadata_title":"Add new metadata or replace existing metadata","debug_metadata_put_metadata":"Put metadata","edit":"Edit","clear":"Clear","more":"More","approve":"Approve","address":"Address","operation":"Operation","gas_limit":"Gas Limit","gas_price":"Gas Price","redirect_to":"Redirect to","sign":"Sign","reload":"Reload","load":"Load","load_all":"Load All","no_data":"No Data","tip":"Tip","tags":"Tags","contract":"Contract","initializing":"Initializing...","redirect_alert":"If your browser does not redirect, please click here.","typed_message_text_alert":"Only TypedMessageText is supported currently.","badge_renderer_provided_by_plugin":"Provided by plugin","add_token":"Add Token","add_nft_contract_search_hint":"Search NFT Contract Symbol Name or Address","applications":"Applications","additional_post_box__encrypted_post_pre":"Decrypt this post with #mask_io ! {{encrypted}}","additional_post_box__encrypted_post_pre_red_packet_twitter_official_account":"Hi, claim this lucky drop with #mask_io @{{account}} {{encrypted}}","additional_post_box__encrypted_post_pre_red_packet":"Hi, claim this lucky drop with #mask_io {{encrypted}}","additional_post_box__steganography_post_pre":"This image is encrypted with #mask_io. 📪🔑 Install mask.io to decrypt it. {{random}}","auto_paste_failed_dialog_title":"Paste manually","auto_paste_failed_dialog_content":"Please copy the following text and image (if there is any) and publish it.","auto_paste_failed_dialog_image_caption":"Open in a new tab","auto_paste_failed_snackbar":"Do you need to paste encrypted content manually?","auto_paste_failed_snackbar_action":"Show me how","auto_paste_failed_snackbar_action_close":"Close","automation_request_click_post_button":"Please click the “Post” button to open the compose dialog.","try_again":"Try Again","ok":"OK","start":"Start","cancel":"Cancel","twitter_account":"realMaskNetwork","facebook_account":"masknetwork","comment_box__placeholder":"Add an encrypted comment…","confirm":"Confirm","copy_text":"Copy text","loading_failed":"Loading failed","copy_image":"Copy image","copy_success_of_wallet_addr":"Copy wallet address successfully!","copy_success_of_text":"Copy text successfully!","copy_success_of_image":"Copy image successfully!","connecting":"Connecting…","create":"Create","copied":"Copied","daily":"Daily","dashboard_tab_collectibles":"Collectibles","dashboard_no_collectible_found":"No collectible found.","dashboard_collectible_menu_all":"All ({{count}})","days":"Every {{days}} days","decrypted_postbox_add_recipients":"Append recipients","decrypted_postbox_decrypting":"Mask decrypting…","decrypted_postbox_decoding":"Mask decoding…","decrypted_postbox_decrypting_finding_person_key":"Mask is looking for the public key of the author…","decrypted_postbox_decrypting_finding_post_key":"Mask is retrieving the post key to decrypt this post…","decrypted_postbox_author_mismatch":"Originally posted by {{name}}","decrypted_postbox_title":"Decrypted by Mask:","dismiss":"Dismiss","delete":"Delete","delete_wallet":"Delete Wallet","hide_token":"Hide Token","hide_token_hint":"You can add {{token}} back in the future by going to \\"Add Token\\" in the wallet panel.","done":"Done!","download":"Download","failed":"Failed","buy_now":"Buy Now","setup_guide_login":"Please sign up or log in to connect Mask network.","setup_guide_find_username_text":"Mask needs the username to connect your profile to your persona.","setup_guide_connect_auto":"Connect","setup_guide_connect_failed":"Re-Connect","setup_guide_verify":"Verfiy","setup_guide_verify_should_change_profile":"Inconsistent Account","setup_guide_verify_dismiss":"Don\'t show again.","setup_guide_verify_checking":"Checking","setup_guide_verify_post_not_found":"No verification post found","setup_guide_verifying":"Verfiying","setup_guide_verifying_failed":"Re-Verfiy","user_guide_tip_connected":"You have connected to this account successfully.","user_guide_tip_need_verify_on_next_id":"Mask Network requires you to post a verification tweet to access Next.ID-based products.","setup_guide_say_hello_content":"Hello Mask world. This is my first encrypted message. Install https://mask.io to send me encrypted post. ","setup_guide_say_hello_follow":"Follow {{account}} to explore Web 3.0.","setup_guide_pin_tip":"Don\'t forget to pin Mask Network in your browser toolbar to access web 3.0 easily.","setup_guide_pin_tip_step_click_left":"Click on ","setup_guide_pin_tip_step_click_right":" at top right of your browser.","setup_guide_pin_tip_step_find_left":"Find Mask Network in the list of extensions and click the ","setup_guide_pin_tip_step_find_right":" button.","setup_guide_pin_tip_successfully":"Pinned successfully.","user_guide_tip_1":"Connect wallet to explore multi-chain dApps.","user_guide_tip_2":"Setup your exclusive NFT Avatar, explore the endless possibilities of Web 3.0.","user_guide_tip_3":"Click here to have a quick start.","create_persona":"Create persona","connect_persona":"Connect persona","please_create_persona":"Please create persona","please_connect_persona":"Please connect persona","mask_network":"Mask Network","import":"Import","no_search_result":"No result","set_nft_profile_photo":"Set NFT Photo","use_nft":"Use NFT","loading":"Loading...","unlock":"Unlock","payload_bad":"This post seems to be corrupted. Mask cannot decrypt it.","payload_incomplete":"This post is incomplete. You need to view the full post to decrypt it.","payload_not_found":"Payload not found.","payload_throw_in_alpha41":"Support for Alpha41 is deprecated. Tell your friends to upgrade Mask!","personas":"Personas","browser_action_enter_dashboard":"Enter Dashboard","pending":"Pending...","popups_initial_tips":"Please sign in or sign up to use the {{type}}.","beta_sup":"(beta)","post_dialog_plugins_experimental":"Plugins (Experimental)","post_dialog__button":"Encrypt","post_dialog__image_payload":"Image Payload","post_dialog__more_options_title":"More Options","post_dialog__placeholder":"Text goes here…","post_dialog__select_recipients_end_to_end":"Myself","post_dialog__select_recipients_share_to_everyone":"Everyone","post_dialog__select_recipients_title":"Select Recipients","post_dialog__select_specific_e2e_target_title":"and Mask Network users ({{selected}} selected)","post_dialog__title":"Mask: Compose","post_dialog_enable_paste_auto":"Enable auto paste","post_modal_hint__button":"Compose encrypted post","hide":"Hide","reset":"Reset","editor":"Editor","retry":"Retry","rename":"Rename","search":"Search","go_wrong":"Something went wrong.","search_box_placeholder":"Type here to search","select_all":"Select All","select_none":"Select None","all_friends":"All Friends","select_specific_friends_dialog__button":"Done","select_specific_friends_dialog__title":"Select Specific Contacts","service_decryption_failed":"Decryption failed.","service_invalid_backup_file":"This does not seem like a backup of Mask.","service_unknown_payload":"Unknown post version. You may need to update Mask.","service_username_invalid":"Invalid Username","speed_up":"Speed up","save":"Save","skip":"Skip","next":"Next","try":"Try","share":"Share","share_to":"Share to…","sharing":"Sharing","transfer":"Transfer","export":"Export","wallet_load_retry":"Failed to load {{symbol}}. Click to retry.","wallet_name":"Wallet Name","wallet_rename":"Rename Wallet","wallet_add_nft_invalid_owner":"The collectible does not belong to you.","wallet_add_nft_already_added":"The collectible has already been added.","wallet_loading_token":"Loading token...","wallet_loading_nft_contract":"Loading NFT contract...","wallet_search_contract_no_result":"No results or contract address does not meet the query criteria.","wallet_search_no_result":"No results.","wallet_confirm_with_password":"Confirm with password","wallet_airdrop_nft_unclaimed_title":"NFT Airdrop Unclaimed:","plugin_not_enabled":"{{plugin}} (Not Enabled)","plugin_external_unknown_plugin":"New unknown Mask plugins found. Do you want to load them?","plugin_external_loader_search_holder":"Search for an external plugin","plugin_external_loader_search_button":"Search for plugin","plugin_external_loader_search_sub_title":"Every external plugin has to hosted on an URL.","plugin_external_loader_alert":"IT WILL CHANGE. DO NOT BUILD OFFICIAL PRODUCT ON IT.","plugin_external_loader_example_github":"An official plugin example can be found at GitHub.","plugin_external_loader_intro":"Mask External plugin is an early stage feature of Mask Network that allows anyone to develop anexternal Mask plugin.","plugin_external_loader_alert_title":"External plugin: an experimental Mask Network feature!","plugin_external_plugin_url":"Plugin URL:","plugin_external_unverified_publisher":"Publisher: {{publisher}} (Unverified)","plugin_external_entry_title":"🧩 Load external plugins (Nightly feature)","plugin_external_name":"External plugin","plugin_external_get_started":"Let\'s get started","plugin_airdrop_nft_start_time":"Start Time: {{date}}","plugin_airdrop_nft_end_time":"End Time: {{date}}","plugin_airdrop_nft_expired":"Expired","plugin_airdrop_nft_claim":"Claim","plugin_airdrop_nft_claimed":"Claimed","plugin_airdrop_nft_check":"Check","plugin_airdrop_nft_check_address":"Check your Address","plugin_airdrop_nft_none_to_claim":"You don’t have airdrop to claim.","plugin_airdrop_nft_number_to_claim":"You have {{count}} {{name}} to claim.","plugin_airdrop_nft_claim_all":"Claim Token","plugin_airdrop_nft_claim_successful":"Token claimed successfully","plugin_airdrop_nft_claim_failed":"Token claimed failed","wallet_balance":"Balance","wallet_balance_eth":"Balance(ETH)","wallet_new":"New Wallet","wallets":"Wallets","wallet_status_button_change":"Change","wallet_status_button_disconnect":"Disconnect","wallet_status_button_disconnecting":"Disconnecting","wallet_status_button_copy_address":"Copy Address","wallet_transfer_account":"Transfer Account","wallet_transfer_receiving_account":"Receiving Account","wallet_transfer_to_address":"To Address","wallet_transfer_send":"Send","wallet_transfer_1559_placeholder":"Ens or Address(0x...)","wallet_transfer_title":"Transfer","wallet_transfer_error_amount_absence":"Enter an amount","wallet_transfer_error_address_absence":"Enter recipient address","wallet_transfer_error_same_address_with_current_account":"This receiving address is the same as the sending address. Please check again.","wallet_transfer_error_is_contract_address":"The receiving address is contract address. Please check again.","wallet_transfer_error_invalid_address":"Invalid recipient address","wallet_transfer_error_no_address_has_been_set_name":"The address of the receiver is invalid.","wallet_transfer_error_no_support_ens":"Network does not support ENS.","wallet_transfer_error_insufficient_balance":"Insufficient {{symbol}} balance","wallet_transfer_error_gas_price_absence":"Enter a gas price","wallet_transfer_error_gas_limit_absence":"Enter a gas limit","wallet_transfer_error_max_fee_absence":"Enter a max fee","wallet_transfer_error_max_priority_fee_absence":"Enter a max priority fee","wallet_transfer_error_max_fee_too_low":"Max fee is too low for network conditions.","wallet_transfer_error_max_fee_too_high":"Max fee is higher than necessary","wallet_transfer_error_max_priority_gas_fee_positive":"Max priority fee must be greater than 0 GWEI","wallet_transfer_error_max_priority_gas_fee_too_low":"Max priority fee is too low for network conditions","wallet_transfer_error_max_priority_gas_fee_too_high":"Max priority fee is higher than necessary. You may pay more than needed.","wallet_transfer_error_max_priority_gas_fee_imbalance":"Max fee cannot be lower than max priority fee","wallet_transfer_gwei":"GWEI","wallet_transfer_between_my_accounts":"Transfer between my accounts","wallet_risk_warning_dialog_title":"Risk Warning","wallet_risk_warning_no_select_wallet":"Not select wallet yet.","wallet_risk_warning_content":"Dear User,

When using any wallet-related plugins in Mask Network, please confirm the following usage risks:

Mask Network provides non-commercial free services. The plug-ins are provided by community members and other excellent third-party DApp teams. Due to the freedom of the decentralized network and other uncertain risk factors, users are requested to properly protect their sensitive information such as wallet mnemonic words and private keys. Please be cautious when conducting any blockchain contract interaction. The risks caused by any third-party DApps (plug-ins) are borne by the third-party DApps themselves. Clicking the confirm button means that you agree to bear the above possible risks.","weekly":"Weekly","wallet_risk_confirm_confirming":"Confirming","wallet_risk_confirm_failed":"Confirm Failed","relative_time_days_ago":"{{days}} days ago","relative_time_hours_ago":"{{hours}} hours ago","relative_time_minutes_ago":"{{minutes}} minutes ago","relative_time_months_ago":"{{months}} months ago","relative_time_seconds_ago":"{{seconds}} seconds ago","relative_time_years_ago":"{{years}} years ago","plugin_chain_not_supported":"Not supported on {{chain}} yet.","plugin_wallet_snackbar_wait_for_confirming":"Confirm this transaction in your wallet","plugin_wallet_snackbar_hash":"Transaction Submitted","plugin_wallet_snackbar_confirmed":"Transaction Confirmed","plugin_wallet_snackbar_success":"Transaction Succeed","plugin_wallet_snackbar_failed":"Transaction Failed","plugin_wallet_snackbar_swap_successful":"Successfully swapped Token","plugin_wallet_snackbar_swap_token":"Swap Token","plugin_wallet_guiding_step_1":"1. Choose Network","plugin_wallet_guiding_step_2":"2. Choose Wallet","plugin_wallet_connect_with":"Connect with","plugin_wallet_connect_with_retry":"Try Again","plugin_wallet_connected_with":"Connected with","plugin_wallet_connecting_with":"Connecting with","plugin_wallet_metamask_error_already_request":"You\'ve opened the popup, please confirm.","plugin_wallet_connect_tip":"Please make sure that your {{providerName}} wallet is provided by the offical {{providerShortenLink}}.","plugin_wallet_collections":"Collections","plugin_wallet_select_a_token":"Select a Token","plugin_wallet_select_a_nft_contract":"Select an NFT Contract","plugin_wallet_select_a_nft_owner":"Select an NFT Contract Owner","plugin_wallet_select_a_nft_operator":"Select an NFT Contract Operator","plugin_wallet_fail_to_load_nft_contract":"Failed to load NFT Contract. Click to retry.","plugin_wallet_nft_approving_all":"Unlocking {{symbol}}...","plugin_wallet_approve_all_nft":"Unlock {{symbol}}","plugin_wallet_approve_all_nft_successfully":"Unlock {{symbol}} successfully","plugin_wallet_connect_a_wallet":"Connect a Wallet","plugin_wallet_confirm_risk_warning":"Confirm Risk Warning","plugin_wallet_no_gas_fee":"No Gas Fee","plugin_wallet_update_gas_fee":"Updating Gas Fee…","plugin_wallet_invalid_network":"Invalid Network","plugin_wallet_select_a_wallet":"Select a Wallet","plugin_wallet_transaction":"Transaction","plugin_wallet_transaction_wait_for_confirmation":"Waiting for confirmation…","plugin_wallet_transaction_submitted":"Your transaction was submitted!","plugin_wallet_transaction_confirmed":"Your transaction was confirmed!","plugin_wallet_transaction_reverted":"Transaction was reverted!","plugin_wallet_transaction_rejected":"Transaction was rejected!","plugin_wallet_transaction_underpriced":"Transaction underpriced.","plugin_wallet_transaction_server_error":"Transaction was failed due to an internal JSON-RPC server error.","plugin_wallet_view_on_explorer":"View on Explorer","plugin_ito_placeholder_when_token_unselected":"Please Select a Token first","plugin_wallet_wrong_network_tip":"Please connect to an appropriate network.","plugin_wallet_on_create":"Create Wallet","plugin_wallet_on_connect":"Connect Wallet","plugin_wallet_wrong_network":"Wrong Network","plugin_wallet_pending_transactions":"{{count}} Pending","plugin_wallet_import_wallet":"Import Wallet","plugin_wallet_select_provider_dialog_title":"Connect Wallet","plugin_wallet_qr_code_with_wallet_connect":"Scan QR code with a WalletConnect-compatible wallet","plugin_wallet_token_unlock":"Exact Unlock","plugin_wallet_token_infinite_unlock":"Infinite Unlock","plugin_wallet_connect_dialog_title":"WalletConnect","plugin_wallet_connect_safari_metamask":"Connect to MetaMask","plugin_wallet_connect_safari_rainbow":"Connect to Rainbow","plugin_wallet_connect_safari_trust":"Connect to Trust","plugin_wallet_connect_safari_im_token":"Connect to imToken","plugin_wallet_on_connect_in_firefox":"Connect","plugin_wallet_return_mobile_wallet_options":"Return to Mobile Wallet Options","plugin_wallet_view_qr_code":"View QR Code","plugin_wallet_switch_network":"Switch to {{network}} Network","plugin_wallet_switch_network_under_going":"Switching to {{network}} Network…","plugin_wallet_not_available_on":"Not available on {{network}} Network.","plugin_wallet_connect_wallet":"Connect Wallet","plugin_wallet_connect_wallet_tip":"Please connect to a wallet.","plugin_wallet_name_placeholder":"Enter 1-12 characters","plugin_wallet_fail_to_sign":"Failed to sign password.","plugin_wallet_cancel_sign":"Signature canceled.","plugin_red_packet_display_name":"Plugin: Lucky Drop","plugin_red_packet_claimed":"Claimed","plugin_red_packet_erc20_tab_title":"Token","plugin_red_packet_erc721_tab_title":"Collectibles","plugin_red_packet_erc721_insufficient_balance":"Insufficient Balance","plugin_red_packet_details":"Lucky Drop Details","plugin_red_packet_split_mode":"Split Mode","plugin_red_packet_average":"Average","plugin_red_packet_random":"Random","plugin_red_packet_shares":"Shares","plugin_red_packet_best_wishes":"Best Wishes!","plugin_red_packet_create_new":"New","plugin_red_packet_claim":"Claim","plugin_red_packet_claiming":"Claiming...","plugin_red_packet_refund":"Refund","plugin_red_packet_empty":"Empty","plugin_red_packet_data_broken":"The Lucky Drop can’t be sent due to data damage. Please withdraw the assets after {{duration}}.","plugin_red_packet_refunding":"Refunding","plugin_red_packet_select_existing":"Past","plugin_red_packet_share_unclaimed_message_official_account":"Hi friends, I just found a lucky drop sent by @{{sender}} on {{network}} network. Follow @{{account}} (mask.io) to claim lucky drops.\\n#mask_io #LuckyDrop\\n{{payload}}","plugin_red_packet_share_unclaimed_message_not_twitter":"Hi friends, I just found a lucky drop sent by @{{sender}} on {{network}} network. \\n{{payload}}","plugin_red_packet_share_message_official_account":"I just claimed a lucky drop from @{{sender}} on {{network}} network. Follow @{{account}} (mask.io) to claim lucky drops.\\n#mask_io #LuckyDrop\\n{{payload}}","plugin_red_packet_share_message_not_twitter":"I just claimed a lucky drop from @{{sender}} on {{network}} network. \\n{{payload}}","plugin_red_packet_nft_share_foreshow_message":"@{{sender}} is sending an NFT lucky drop on {{network}} network. Follow @{{account}} (mask.io) to claim NFT lucky drops.\\n#mask_io #LuckyDrop\\n{{payload}}","plugin_red_packet_nft_share_foreshow_message_not_twitter":"@{{sender}} is sending an NFT lucky drop on {{network}} network. \\n{{payload}}","plugin_red_packet_nft_share_claimed_message":"I just claimed an NFT lucky drop from @{{sender}} on {{network}} network. Follow @{{account}} (mask.io) to claim NFT lucky drops.\\n#mask_io #LuckyDrop\\n{{payload}}","plugin_red_packet_nft_share_claimed_message_not_twitter":"I just claimed an NFT lucky drop from @{{sender}} on {{network}} network. \\n{{payload}}","plugin_red_packet_nft_tip":"This is an NFT lucky drop.","plugin_red_packet_nft_no_history":"You haven’t created any NFT lucky drop yet. Try to create and share lucky with your friends.","plugin_red_packet_attached_message":"Attached Message","plugin_red_packet_from":"From: @{{name}}","plugin_red_packet_description_claimed":"You got {{amount}} {{symbol}}","plugin_red_packet_description_expired":"The Lucky Drop is expired.","plugin_red_packet_description_refunded":"The Lucky Drop has been refunded.","plugin_red_packet_description_refund":"You could refund {{balance}} {{symbol}}.","plugin_red_packet_description_empty":"The Lucky Drop is empty.","plugin_red_packet_description_broken":"The Lucky Drop is broken.","plugin_red_packet_description_failover":"{{shares}} shares / {{total}} {{symbol}}","plugin_red_packet_claiming_from":"Claiming Lucky Drop from {{name}}","plugin_red_packet_amount_per_share":"Amount per Share","plugin_red_packet_send_symbol":"Send {{amount}} {{symbol}}","plugin_red_packet_amount_total":"Amount Total","plugin_red_packet_next":"Next","plugin_red_packet_back":"Back","plugin_red_packet_hint":"You can withdraw the remaining balance 24 hours after the Lucky Drop is sent.","plugin_red_packet_token":"Token","plugin_red_packet_message_label":"Title","plugin_red_packet_create":"Create a Lucky Drop","plugin_red_packet_create_with_token":"Create a Lucky Drop with {{amount}} {{symbol}}","plugin_red_packet_history_duration":"Time: {{startTime}} ~ {{endTime}} (UTC+8)","plugin_red_packet_history_total_amount":"Total Amount: {{amount}} {{symbol}}","plugin_red_packet_history_total_claimed_amount":"Total: {{claimedAmount}}/{{amount}} {{symbol}}","plugin_red_packet_history_claimed":"Claimed: {{claimedShares}}/{{shares}} Share","plugin_red_packet_history_split_mode":"Split Mode: {{mode}}","plugin_red_packet_history_send":"Send","plugin_nft_red_packet_create":"Create an NFT Lucky Drop","plugin_red_packet_nft_account_name":"Wallet account","plugin_red_packet_nft_attached_message":"Attached Message","plugin_red_packet_nft_total_amount":"Total Amount","plugin_red_packet_nft_select_collection":"Choose your collection","plugin_red_packet_nft_max_shares":"The maximum number of NFTs to be sold in NFT lucky drop contract is {{amount}}.","plugin_red_packet_nft_max_shares_tip":"The NFT lucky drop supports up to {{amount}} NFTs selected for one time.","plugin_red_packet_nft_shift_select_tip":"You can also use {{text}} to select multiple NFTs.","plugin_red_packet_nft_non_existed_tip":"Token ID does not exist or belong to you.","plugin_red_packet_nft_select_all_option":"ALL ({{total}} NFT)","plugin_red_packet_nft_select_partially_option":"Select partially","plugin_red_packet_nft_unapproved_tip":"You can get the rest of your NFTs back after 24 hours of sending.","plugin_red_packet_nft_approve_all_tip":"Note: When selecting approve all, all NFTs in the contract will be authorized for sale by default, including the NFTs transfered later.","plugin_red_packet_completed":"Completed","plugin_red_packet_expired":"Expired","plugin_red_packet_indivisible":"The minimum amount for each share is {{amount}} {{symbol}}","plugin_nft_red_packet_data_broken":"The Lucky Drop can’t be sent due to data damage.","plugin_gitcoin_readme":"By using this service, you will also be contributing 5% of your contribution to the Gitcoin grants development fund.","plugin_gitcoin_readme_fund_link":"https://gitcoin.co/grants/86/gitcoin-sustainability-fund","plugin_gitcoin_select_a_token":"Select a token","plugin_gitcoin_enter_an_amount":"Enter an amount","plugin_gitcoin_grant_not_available":"Grant not available","plugin_gitcoin_insufficient_balance":"Insufficient {{symbol}} balance","plugin_gitcoin_donate":"Donate","plugin_gitcoin_last_updated":"Last update:","plugin_gitcoin_by":"By","plugin_gitcoin_view_on":"View on Gitcoin","plugin_trader_fail_to_load":"Fail to load trending info from ","plugin_trader_lbp_pool_in_balancer":"LBP Pool in Balancer","plugin_trader_tutorial":"Tutorial","plugin_trader_what_is_lbp":"What\'s LBP?","plugin_trader_lbp_intro":"Solid blue line illustrates the historical price of {{symbol}} on the {{symbol}}\'s LBP. The price could continue to go down if no one buys. Please make your investment decision wisely.","plugin_trader_no_pools_found":"No pools found.","plugin_trader_safety_agree":"i understand","plugin_trader_view_on_etherscan":"View on Etherscan","plugin_trader_safety_alert_title":"Token Safety Alert","plugin_trader_safety_alert":"Anyone can create and name any ERC20 token on Ethereum, including creating fake versions of existing tokens and tokens that claim to represent projects that do not have a token. Similar to Etherscan, this site automatically tracks analytics for all ERC20 tokens independent of token integrity. Please do your own research before interacting with any ERC20 token.","plugin_trader_total_supply":"Total Supply","plugin_trader_circulating_supply":"Circulating Supply","plugin_trader_volume_24":"Volume (24h)","plugin_trader_market_cap":"Market Cap","plugin_trader_data_source":"Data Source","plugin_trader_price_updated":"Price Updated","plugin_savings":"Savings","plugin_savings_asset":"Asset","plugin_no_protocol_available":"No savings protocols available on this network","plugin_savings_apr":"APR","plugin_savings_wallet":"Wallet","plugin_savings_operation":"Operation","plugin_savings_amount":"Amount","plugin_savings_deposit":"Deposit","plugin_savings_withdraw":"Withdraw","plugin_savings_process_deposit":"Processing Deposit","plugin_savings_process_withdraw":"Processing Withdrawal","plugin_trader_swap":"Swap","plugin_trader_wrap":"Wrap","plugin_trader_unwrap":"Unwrap","plugin_trader_buy":"Buy","plugin_trader_no_data":"No Data","plugin_trader_tab_market":"General","plugin_trader_tab_price":"Price","plugin_trader_tab_exchange":"Exchange","plugin_trader_tab_swap":"Swap 🔥","plugin_trader_table_exchange":"Exchange","plugin_trader_table_pair":"Pair","plugin_trader_table_price":"Price","plugin_trader_table_volume":"Volume (24h)","plugin_trader_table_updated":"Updated","plugin_trader_error_amount_absence":"Enter an amount","plugin_trader_error_insufficient_balance":"Insufficient {{symbol}} balance","plugin_trader_error_insufficient_lp":"Insufficient liquidity for this trade","plugin_trade_error_input_amount_less_minimum_amount":"Input amount is below the minimum amount","plugin_trader_slippage_tolerance":"Slippage Tolerance:","plugin_trader_swap_from":"From","plugin_trader_swap_to":"To(estimated)","plugin_trader_gas_fee":"Gas fee","plugin_trader_unlock_symbol":"Unlock {{symbol}}","plugin_trader_unlock_tips":"You must give the {{provider}} Smart contracts permission to use your {{symbol}}.You only have to do this once per token.","plugin_trader_swap_amount_symbol":"Swap {{amount}} {{symbol}} ","plugin_trader_confirm_from":"From","plugin_trader_confirm_to":"To","plugin_trader_confirm_max_price_slippage":"Max Price Slippage","plugin_trader_confirm_minimum_received":"Minimum Received","plugin_trader_confirm_tips":"Setting the max price slippage too low may cause a trade to fail due to price fluctuations.","plugin_trader_price_impact_warning_tips":"Setting the max price slippage too high may cause the minimum amount returned lower than the amount desired.","plugin_trader_confirm_swap":"Confirm Swap","plugin_trader_accept":"Accept","plugin_trader_price_impact":"Price Impact","plugin_trader_price_image_value":"Price Impact ({{percent}})","plugin_trader_slippage_warning":"You may receive 10% less with this level of slippage tolerance.","plugin_trader_confirm_price_impact":"Confirm Price Impact {{percent}}","plugin_trader_max_slippage":"Max Slippage","plugin_trader_gas_setting_instant":"Instant","plugin_trader_gas_setting_high":"High","plugin_trader_gas_setting_medium":"Medium","plugin_trader_gas_setting_standard":"Standard","plugin_trader_gas_setting_fast":"Fast","plugin_trader_gas_setting_custom":"Custom","plugin_trader_tx_cost_usd":"(~${{usd}})","plugin_trader_gas_option":"{{option}} ({{value}}) Gwei","plugin_trader_no_enough_liquidity":"No enough liquidity","plugin_trader_no_trade":"Please select a trade","plugin_trader_gas":"GAS","plugin_poll_display_name":"Plugin: Poll","plugin_poll_question_hint":"Ask a question…","plugin_poll_options_hint":"choice","plugin_poll_length":"Poll length","plugin_poll_length_days":"Days","plugin_poll_length_hours":"Hours","plugin_poll_length_minutes":"Minutes","plugin_poll_length_unknown":"Unknown","plugin_poll_create_new":"Create New","plugin_poll_select_existing":"Past","plugin_poll_send_poll":"Send Poll","plugin_poll_status_closed":"Closed","plugin_poll_status_voting":"Voting","plugin_poll_status_voted":"Voted.","plugin_poll_deadline":"{{time}} left until vote ends","plugin_ito_empty_token":"No need to unlock any token on this ITO.","plugin_ito_locked":"ITO locked","plugin_ito_share":"Share","plugin_ito_enter":"Enter","plugin_ito_dialog_swap_title":"Swap {{token}}","plugin_ito_dialog_swap_reminder_title":"Swap Reminder","plugin_ito_dialog_swap_unlock_title":"Unlock Token In Advance","plugin_ito_dialog_swap_share_title":"Share","plugin_ito_dialog_swap_exchange":"In exchange for","plugin_ito_dialog_swap_panel_title":"Swap","plugin_ito_dialog_swap_exceed_wallet_limit":"Exceeds single wallet limit","plugin_ito_swap_ration_label":"Swap Ratio","plugin_ito_swap_unlucky_fail":"Not lucky enough, please check the reason from the Etherscan link, then try it again.","plugin_ito_swap_only_once_remind":"Each wallet can only participate once.","plugin_ito_swap_title":"{{amount}} {{token}} per {{swap}} ","plugin_ito_swap_end_date":"End in {{date}}.","plugin_ito_dialog_claim_reminder_agree":"I Understand","plugin_ito_dialog_claim_reminder_text1":"Anyone can create a token on {{networkType}} with any name, including creating fake versions of existing tokens and tokens that claim to represent projects that do not have a token.","plugin_ito_dialog_claim_reminder_text2":"This interface can load arbitrary tokens by token address. Please take extra caution and do your own research when interacting with arbitrary tokens.","plugin_ito_dialog_claim_reminder_text3":"If you purchase an arbitrary token, you might not be able to sell it back.","plugin_ito_dialog_claim_reminder_text4":"THE RIGHTS ARE NOT BEING OFFERED OR SOLD AND MAY NOT BE OFFERED OR SOLD, DIRECTLY OR INDIRECTLY, IN WHOLE OR IN PART, IN JURISDICTIONS OR TO WHOM SUCH AN OFFER WOULD BE UNLAWFUL.","plugin_ito_expired":"Expired","plugin_ito_create_new":"New","plugin_ito_claim_all_title":"Claim Token","plugin_ito_claim_all_status_unclaimed":"Unclaimed","plugin_ito_claim_all_status_locked":"Locked","plugin_ito_claim_all_unlock_time":"Unlock Time: {{time}}","plugin_ito_claim_all_dialog_title":"Claim Your Tokens","plugin_ito_swapping":"You will get {{amount}} {{symbol}} if you are lucky. Otherwise, you will receive a refund if the ITO out of stock hits.","plugin_ito_advanced":"Advanced","plugin_ito_advanced_ip_region":"IP Region Restrictions","plugin_ito_advanced_delay_unlocking":"Delay Unlocking Token","plugin_ito_advanced_contract":"Plugin Contract","plugin_ito_select_existing":"Past","plugin_ito_display_name":"ITO Composition Dialog","plugin_ito_sell_token":"Token","plugin_ito_sell_price":"Price","plugin_ito_sell_total_amount":"Input","plugin_ito_allocation_per_wallet":"Swap Limit {{limit}} {{token}}","plugin_ito_allocation_per_wallet_title":"Swap Limit","plugin_ito_begin_time_title":"Start Time","plugin_ito_wait_unlock_time":"Claim after {{unlockTime}} (UTC+8)","plugin_ito_claim":"Claim","plugin_ito_claiming":"Claiming...","plugin_ito_claim_all":"Claim All","plugin_ito_qualification_start_time":"Qualification Start Time:","plugin_ito_error_qualification_start_time":"Invalid: Qualification start time should be earlier than ITO end time","plugin_ito_end_time_title":"End Time","plugin_ito_error_invalid_qualification":"Invalid Qualification Address","plugin_ito_unlock_time_cert":"ITO Mask unlock time is {{date}}.","plugin_ito_unlock_time":"Unlock Time","plugin_ito_launch_campaign":"SocialFi Launch Campaign","plugin_ito_total_claimable_count":"Total: ","plugin_ito_qualification_label":"Plugin Contract","plugin_ito_message_label":"Title","plugin_ito_region_label":"IP Region Selection","plugin_ito_region_confirm_label":"IP Region","plugin_ito_region_list":"{{ select }} / {{ all }} regions","plugin_ito_region_all":"All regions","plugin_ito_region_search":"Type region name to search","plugin_ito_region_ban":"This Pool is banned by its creator at your region","plugin_ito_next":"Next","plugin_ito_back":"Back","plugin_ito_transaction_dialog_summary_with_no_token":"Create an ITO.","plugin_ito_transaction_dialog_summary":"Create an ITO with {{amount}} {{symbol}}.","plugin_ito_swap":"Swap","plugin_ito_send_tip":"You can find your ITOs in the Past tab.","plugin_ito_send_text":"Send {{total}} {{symbol}}","plugin_ito_error_enter_amount":"Enter an amount","plugin_ito_error_select_token":"Select a Token","plugin_ito_error_enter_amount_and_token":"Enter an amount and Select a token","plugin_ito_error_allocation_absence":"Enter swap limit","plugin_ito_error_allocation_invalid":"Invalid amount","plugin_ito_error_exchange_time":"Invalid: start time cannot be later than end time","plugin_ito_error_unlock_time":"Invalid: end time cannot be later than unlock time","plugin_ito_error_balance":"Insufficient {{symbol}} balance","plugin_ito_list_start_date":"Start Time {{date}}","plugin_ito_list_end_date":"End Time {{date}}","plugin_ito_list_sold_total":"Swapped: ","plugin_ito_list_total":"Total: ","plugin_ito_list_table_type":"Type","plugin_ito_list_table_price":"Swap Ratio","plugin_ito_no_claimable_token":"Your wallet address does not have any tokens that can be claimed.","plugin_ito_list_table_sold":"Swapped","plugin_ito_list_table_got":"Balance","plugin_ito_list_button_send":"Send","plugin_ito_withdraw":"Withdraw","plugin_ito_qualification_loading":"Verify qualification…","plugin_ito_qualification_failed":"The wallet address isn\'t on the list.","plugin_ito_withdrawn":"Withdrawn","plugin_ito_your_swapped_amount":"You swapped {{amount}} {{symbol}}","plugin_ito_your_claimed_amount":"You claimed {{amount}} {{symbol}}","plugin_ito_your_refund_amount":"return {{amount}} {{symbol}}.","plugin_ito_unlock_in_advance":"Unlock in Advance","plugin_ito_swapped_status":"{{remain}} / {{total}} {{token}} Swapped","plugin_ito_congratulations":"Congratulations!","plugin_ito_out_of_stock_hit":"Better luck next time","plugin_ito_claim_success_share":"I just attended @{{user}}\'s #ITO with @{{account}} to swap ${{symbol}}. Install mask.io and start your own Initial Twitter Offering! \\n {{link}}","plugin_ito_claim_success_share_no_official_account":"I just attended @{{user}}\'s #ITO to swap ${{symbol}}. Install mask.io and start your own Initial Twitter Offering! \\n {{link}}","plugin_ito_claim_foreshow_share":"{{symbol}}({{name}}) is launching a new #ITO. Come and join it! Follow @{{account}} (mask.io) to find more events! \\n {{link}}","plugin_ito_claim_foreshow_share_no_official_account":"{{symbol}}({{name}}) is launching a new #ITO. Come and join it! \\n {{link}}","plugin_ito_password":"Password: {{password}}","plugin_ito_status_no_start":"Not started","plugin_ito_status_ongoing":"Ongoing","plugin_ito_status_out_of_stock":"Out of stock","plugin_ito_loading":"Loading ITO ...","plugin_ito_amount_unlocked":"Unlocked {{amount}} {{symbol}}","plugin_ito_amount_unlocked_infinity":"Unlocked infinity {{symbol}}","plugin_ito_unlocking_symbol":"Unlocking {{symbol}}","plugin_ito_continue":"Continue","plugin_ito_view_on_explorer":"View on Explorer","plugin_ito_unlock_tip":"Allow the contract {{address}} to use your {{symbol}} tokens when a new ITO round starts later.","plugin_collectible_you":"You","plugin_collectible_done":"Done","plugin_collectible_retry":"Retry","plugin_collectible_get_more_token":"Get more {{token}}","plugin_collectible_sell":"Sell","plugin_collectible_checkout":"Checkout","plugin_collectible_place_bid":"Place Bid","plugin_collectible_buy_now":"Buy Now","plugin_collectible_make_offer":"Make Offer","plugin_collectible_post_listing":"Post Listing","plugin_collectible_description":"Current price is {{price}} {{symbol}}.","plugin_collectible_article":"Article","plugin_collectible_overview":"Overview","plugin_collectible_details":"Details","plugin_collectible_offers":"Offers","plugin_collectible_listing":"Listing","plugin_collectible_history":"History","plugin_collectible_event":"Event","plugin_collectible_unit_price":"Unit Price","plugin_collectible_price":"Price","plugin_collectible_from":"From","plugin_collectible_to":"To","plugin_collectible_date":"Date","plugin_collectible_quantity":"Quantity","plugin_collectible_expiration":"Expiration","plugin_collectible_no_offers":"No Offers","plugin_collectible_no_listings":"No Listings","plugin_collectible_base":"Base","plugin_collectible_properties":"Properties","plugin_collectible_about":"About","plugin_collectible_chain_info":"Chain Info","plugin_collectible_contract_address":"Contract Address","plugin_collectible_token_id":"Token ID","plugin_collectible_block_chain":"BlockChain","plugin_collectible_create_by":"Created by","plugin_collectible_owned_by":"Owned by","plugin_collectible_view_on":"View on","plugin_collectible_no_history":"No History","plugin_collectible_ensure_unreviewed_item":"Please ensure unreviewed item","plugin_collectible_check_tos_document":"Please check ToS document","plugin_collectible_insufficient_offer":"Insufficient Offer","plugin_collectible_not_been_reviewed_by_opensea":"This item has not been reviewed by OpenSea.","plugin_collectible_reviewed_tips":"You should proceed with extra caution. Anyone can create a digital item on a blockchain with any\\n name, including fake versions of existing items. Please take extra caution and do your research\\n when interacting with this item to ensure it\'s what it chains to be.","plugin_collectible_total":"Total","plugin_collectible_subtotal":"Subtotal","plugin_collectible_item":"Item","plugin_collectible_approved_tips":"By checking this box, I acknowledge that this item has not been reviewed\\n or approved by OpenSea.","plugin_collectible_agree_terms":"By checking this box, I agree to OpenSea\'s Terms of Service.","plugin_collectible_convert_eth":"Convert ETH","plugin_collectible_sale_end":"Sale ends in {{time}}","plugin_collectible_set_initial_price":"Set an initial price.","plugin_collectible_ending_price_tip":"Will be on sale until you transfer this item or cancel it.","plugin_collectible_starting_price":"Starting Price","plugin_collectible_ending_price":"Ending Price","plugin_collectible_ending_price_less_than_staring":"Must be less than or equal to the starting price. The price will progress linearly to this amount until the expiration date.","plugin_collectible_expiration_date":"Expiration date","plugin_collectible_schedule_date":"Schedule Date","plugin_collectible_auto_cancel_tip":"Your listing will automatically end at this time. No need to cancel it!","plugin_collectible_schedule_future_date":"Schedule a future date.","plugin_collectible_buyer_address":"Buyer Address","plugin_collectible_buyer_address_placeholder":"Enter the buyer\'s address.","plugin_collectible_buyer_address_helper_text":"Only the buyer is allowed to buy it.","plugin_collectible_include_ending_price":"Include ending price","plugin_collectible_include_ending_price_helper":"Adding an ending price will allow this listing to expire, or for the price to be\\n reduced until a buyer is found.","plugin_collectible_schedule_for_a_future_time":"Schedule for a future time","plugin_collectible_schedule_for_a_future_time_helper":"You can schedule this listing to only be buyable at a future data.","plugin_collectible_privacy":"Privacy","plugin_collectible_privacy_helper":"You can keep your listing public, or you can specify one address that\'s allowed to\\n buy it.","plugin_collectible_enter_a_price":"Enter a price","plugin_collectible_insufficient_balance":"Insufficient balance","plugin_collectible_invalid_schedule_date":"Invalid schedule date","plugin_collectible_invalid_ending_price":"Invalid ending price","plugin_collectible_invalid_expiration_date":"Invalid expiration date","plugin_collectible_invalid_buyer_address":"Invalid buyer address","plugin_collectible_set_price":"Set Price","plugin_collectible_highest_bid":"Highest Bid","plugin_collectible_minimum_bid":"Minimum Bid","plugin_collectible_set_starting_bid_price":"Set your starting bid price.","plugin_collectible_reserve_price":"Reserve Price","plugin_collectible_reserve_price_helper":"Create a hidden limit by setting a reserve price. Reserve price must be greater than or equal to the start amount.","plugin_collectible_auction_auto_end":"Your auction will automatically end at this time and the highest bidder will win. No need to cancel it!","plugin_collectible_enter_minimum_bid":"Enter minimum bid","plugin_collectible_enter_reserve_price":"Enter reserve price","plugin_collectible_invalid_reserve_price":"Invalid reserve price","plugin_collectible_place_a_bid":"Place a Bid","plugin_collectible_make_an_offer":"Make an Offer","plugin_collectible_approved_by_open_sea":"By checking this box, I acknowledge that this item has not been reviewed or approved by OpenSea.","plugin_collectible_legal_text":"By checking this box, I agree to OpenSea\'s Terms of Service.","plugin_cryptoartai_description_title":"Description","plugin_cryptoartai_edition":"Edition of","plugin_cryptoartai_operator":"Operator","plugin_cryptoartai_activity_type":"Type","plugin_cryptoartai_status":"Status","plugin_cryptoartai_time":"Time","plugin_cryptoartai_price":"Price","plugin_cryptoartai_tx":"Tx","plugin_cryptoartai_latest_bid":"Latest Bid","plugin_cryptoartai_description":"Current Bid is {{bidPrice}}{{symbol}}, price is {{price}}{{symbol}}. Edition {{soldNum}} of {{totalAvailable}} #{{editionNumber}}.","plugin_cryptoartai_no_price_description":"Current Bid is {{bidPrice}}{{symbol}}. Edition {{soldNum}} of {{totalAvailable}} #{{editionNumber}}.","plugin_cryptoartai_sold_description":"Sold for {{soldPrice}}{{symbol}}. Edition {{soldNum}} of {{totalAvailable}} #{{editionNumber}}.","plugin_cryptoartai_buy":"Buy","plugin_cryptoartai_buy_now":"Buy now","plugin_cryptoartai_current_balance":"Current balance","plugin_cryptoartai_current_highest_offer":"Current highest offer is ","plugin_cryptoartai_bid_least":"Your must bid at least ","plugin_cryptoartai_escrowed":"Your offer will be escrowed in the smart contract until it is accepted or you withdraw it","plugin_cryptoartai_current_balance_is":"Current balance is ","plugin_cryptoartai_auction_end":"Auction has ended","plugin_cryptoartai_auction_end_time":"Auction end time ","plugin_cryptoartai_share":"I just paid {{amount}} {{symbol}} for {{title}} on {{assetLink}}.\\nPlease install Mask plugin, and follow @{{account}} to join it too.\\n#mask_io","plugin_cryptoartai_share_no_official_account":"I just paid {{amount}} {{symbol}} for {{title}} on {{assetLink}}. Welcome to join.","plugin_cryptoartai_offer_share":"I just offered {{amount}} {{symbol}} for {{title}} on {{assetLink}}.\\nPlease install Mask plugin, and follow @{{account}} to join it too.\\n#mask_io","plugin_cryptoartai_offer_share_no_official_account":"I just offered {{amount}} {{symbol}} for {{title}} on {{assetLink}}. Welcome to join.","plugin_snapshot_info_title":"Information","plugin_snapshot_info_strategy":"Strategie(s)","plugin_snapshot_info_author":"Author","plugin_snapshot_info_ipfs":"IPFS","plugin_snapshot_info_start":"Start date","plugin_snapshot_info_end":"End date","plugin_snapshot_info_snapshot":"Snapshot","plugin_snapshot_result_title":"Results","plugin_snapshot_votes_title":"Votes","plugin_snapshot_no_power":"No power","plugin_snapshot_vote_success":"Your vote is in!","plugin_snapshot_vote":"Vote","plugin_snapshot_vote_choice":"Choice","plugin_snapshot_vote_power":"Your voting power","plugin_snapshot_vote_title":"Cast your vote","plugin_snapshot_vote_confirm_dialog_title":"Confirm Vote","plugin_snapshot_vote_confirm_dialog_choice":"Are you sure you want to vote \\"{{ choiceText }}\\"?","plugin_snapshot_vote_confirm_dialog_warning":"This action cannot be undone.","plugin_snapshot_current_result_title":"Current results","plugin_snapshot_download_report":"Download report","plugin_find_truman_display_name":"FindTruman - Statistics","plugin_find_truman_status_puzzle":"Story Puzzle","plugin_find_truman_status_poll":"Plot Voting","plugin_find_truman_status_result":"Stage Result","plugin_find_truman_status_puzzle_result":"Revealing Answer","plugin_find_truman_status_poll_result":"Plot Confirmation","plugin_find_truman_puzzle_to_be_revealed":"puzzle is left to be revealed.","plugin_find_truman_puzzles_to_be_revealed":"puzzles are left to be revealed","plugin_find_truman_poll_to_be_revealed":"vote continues to be tallied.","plugin_find_truman_polls_to_be_revealed":"votes continue to be tallied","plugin_find_truman_puzzle_underway":"The puzzle hasn\'t been revealed yet.","plugin_find_truman_puzzle_rate":"Accuracy: ","plugin_find_truman_voting_underway":"The voting continues to be tallied.","plugin_find_truman_voting_rate":"Hit rate: ","plugin_find_truman_submit_failed":"Failed to submit.","plugin_find_truman_vote":"vote","plugin_find_truman_votes":"votes","plugin_find_truman_selected":"Selected","plugin_find_truman_unselect":"Select","plugin_find_truman_answer":"Answer","plugin_find_truman_result":"Result","plugin_find_truman_buy":"BUY","plugin_find_truman_decrypted_by":"Decrypted by FindTruman:","plugin_find_truman_insufficient_nft":"The following specific NFTs are needed for this vote.","plugin_find_truman_buy_nft_tip":"At least {{count}} copy of this NFT is required.","plugin_find_truman_connect_wallet_tip":"Please connect to a wallet.","plugin_find_truman_no_participation_tip":"You have not participated in any vote yet.","plugin_dhedge_managed_by":"Managed by {{managerName}}","plugin_dhedge_manager_share":"Holds {{managerShare}}% of the pool","plugin_dhedge_manager_share_more_than_50":"Holds more than 50% of the pool","plugin_dhedge_value_managed":"VALUE MANAGED","plugin_dhedge_lifetime_return":"LIFETIME RETURN","plugin_dhedge_risk_factor":"RISK FACTOR","plugin_dhedge_tab_stats":"Stats","plugin_dhedge_tab_chart":"Chart","plugin_dhedge_strategy":"Strategy","plugin_dhedge_see_less":"See less","plugin_dhedge_see_more":"See more","plugin_dhedge_no_data":"No Data","plugin_dhedge_fetch_error":"Unable to fetch data, please try again!","plugin_dhedge_loading_chart":"Loading","plugin_dhedge_invest":"INVEST","plugin_dhedge_buy_token":"GET {{symbol}}","plugin_dhedge_enter_an_amount":"Enter an amount","plugin_dhedge_insufficient_balance":"Insufficient {{symbol}} balance","plugin_dhedge_loading":"Loading...","plugin_dhedge_pool_not_found":"Invalid pool address.","plugin_dhedge_smt_wrong":"Something went wrong!","plugin_pooltogether_tab_pools":"Pools","plugin_pooltogether_tab_account":"Account","plugin_pooltogether_no_pool":"There is no pool on this network.","plugin_pooltogether_pool_ended":"Awarded","plugin_pooltogether_deposit":"Deposit {{token}}","plugin_pooltogether_deposit_msg":"Deposit","plugin_pooltogether_apr":"Earn {{apr}}% APR in {{token}}","plugin_pooltogether_view_pool":"View pool","plugin_pooltogether_prize":"{{period}} Prize","plugin_pooltogether_share":"I just deposit {{amount}} {{cashTag}}{{symbol}} into the {{pool}}, can I win the lottery this week?\\nFollow @PoolTogether_ and @{{account}} (mask.io) to deposit in PoolTogether\'s pools.\\n#pooltogether #mask_io","plugin_pooltogether_share_no_official_account":"I just deposit {{amount}} {{cashTag}}{{symbol}} into the {{pool}}, can I win the lottery this week?","plugin_pooltogether_buy":"GET {{symbol}}","plugin_pooltogether_enter_an_amount":"Enter an amount","plugin_pooltogether_insufficient_balance":"Insufficient {{symbol}} balance","plugin_pooltogether_deposit_title":"Deposit {{token}} to win","plugin_pooltogether_odds_title":"New odds of winning:","plugin_pooltogether_odds_value":"1 in {{value}} {{period}}!","plugin_pooltogether_short_odds_value":"1 in {{value}}","plugin_pooltogether_my_deposits":"Total Deposits","plugin_pooltogether_no_account_pool":"You don\'t have any pool in this network","plugin_pooltogether_missing_pool":"Missing some deposits? Check the complete listing at:\\n","plugin_pooltogether_winning_odds":"Winning odds:","plugin_pooltogether_in":"in","plugin_pooltogether_manage":"Manage","plugin_pooltogether_token_not_found":"Token not found!","plugin_good_ghosting_loading_other_player_stats":"Loading other players\' stats","plugin_good_ghosting_loading_game_stats":"Loading game stats","plugin_good_ghosting_game_duration":"Game Duration","plugin_good_ghosting_current_round":"Current Round","plugin_good_ghosting_recurring_deposit":"Deposit Per Round","plugin_good_ghosting_round_length":"Round Length","plugin_good_ghosting_pool_apy":"Pool APY","plugin_good_ghosting_pool_earnings":"Pool Earnings","plugin_good_ghosting_extra_rewards":"Extra Rewards","plugin_good_ghosting_total_saved":"Total Saved","plugin_good_ghosting_game_launched":"Game Launched","plugin_good_ghosting_join_round":"Join Round","plugin_good_ghosting_join_deadline":"Join Deadline","plugin_good_ghosting_deposit":"Deposit {{index}}","plugin_good_ghosting_deposit_deadline":"Deposit Deadline {{index}}","plugin_good_ghosting_waiting_round":"Waiting Round","plugin_good_ghosting_waiting_round_end":"Waiting Period Ends","plugin_good_ghosting_withdraw":"Withdraw","plugin_good_ghosting_all_players_status_winning":"Winning","plugin_good_ghosting_all_players_status_waiting":"Waiting","plugin_good_ghosting_all_players_status_ghost":"Ghosts","plugin_good_ghosting_all_players_status_dropout":"Drop-outs","plugin_good_ghosting_status_winning":"Winning","plugin_good_ghosting_status_waiting":"Waiting","plugin_good_ghosting_status_ghost":"Ghost","plugin_good_ghosting_status_dropout":"Withdrawn","plugin_good_ghosting_status_unknown":"Unknown","plugin_good_ghosting_status":"Status","plugin_good_ghosting_deposits":"Deposits made","plugin_good_ghosting_total_deposited":"Total deposited","plugin_good_ghosting_address":"Address","plugin_good_ghosting_not_a_participant":"Looks like you\'re not a participant in this game.","plugin_good_ghosting_next_event":"Coming up next","plugin_good_ghosting_game_end":"This game has ended","plugin_good_ghosting_game_over":"Game Over","plugin_good_ghosting_participants_withdraw":"Participants can now withdraw their earnings!","plugin_good_ghosting_join_game":"Join Game","plugin_good_ghosting_make_deposit":"Make Deposit","plugin_good_ghosting_join_help_text":"Deposit your first {{amount}} {{token}} and join this savings pool. To win, you need to deposit money into the savings pool every round, prior to the round\'s deadline.","plugin_good_ghosting_deposit_help_text":"Deposit {{segmentPayment}} {{token}} for this round and continue to be a winner.","plugin_good_ghosting_withdraw_help_text":"The game has ended! You can now withdraw your deposits, along with any earnings that you won.","plugin_good_ghosting_leave_game":"Leave Game","plugin_good_ghosting_early_withdraw_info":"If you wish to withdraw from an ongoing game, you may be charged a small fee of {{amount}} {{token}} to compensate the remaining players in the savings pool.","plugin_good_ghosting_rules":"Rules","plugin_good_ghosting_game_rules":"Deposit {{amount}} {{token}} every round for {{roundCount}} rounds to win the game. If other players miss depositing in a round and become ghosts, their earnings will go to you.","plugin_good_ghosting_tx_fail":"Failed to complete the transaction.","plugin_good_ghosting_tx_timeout":"Cannot read transaction status.","plugin_good_ghosting_something_went_wrong":"Something went wrong, please try again.","plugin_good_ghosting_view_on_explorer":"View on Explorer","plugin_good_ghosting_checking_balance":"Checking Balance...","plugin_good_ghosting_insufficient_balance":"You need at least {{amount}} {{token}} in your wallet to do this.","plugin_good_ghosting_balance_error":"Failed to check balance. Click to retry.","plugin_unlockprotocol_buy_lock":"Buy Lock","plugin_unlockprotocol_buy_lock_alert":"Please look for and buy an active lock","plugin_unlockprotocol_no_access":"You don\'t have access to this content","plugin_unlockprotocol_select_unlock_lock":"Select Unlock Lock","plugin_unlockprotocol_no_lock_found":"No lock found. Create your own lock at Unlock protocol Creator Dashboard.","plugin_unlockprotocol_submit_post":"Submit Post","plugin_unlockprotocol_title":"Unlock Protocol","plugin_unlockprotocol_server_error":"Some Server error occured, Please try again later.","plugin_furucombo_tab_pool":"Pool","plugin_furucombo_tab_investments":"All investments","plugin_furucombo_liquidity":"Liquidity","plugin_furucombo_annual_percentage_yield":"Apy","plugin_furucombo_rewards":"Rewards","plugin_furucombo_invest":"Invest","plugin_furucombo_pool_not_found":"Invalid pool address.","plugin_furucombo_smt_wrong":"Something went wrong!","plugin_furucombo_head_pools":"Pools","plugin_furucombo_head_action":"Action","plugin_pets_dialog_title":"Non-Fungible Friends","plugin_pets_dialog_title_share":"Successful","plugin_pets_dialog_contract":"NFT Contract","plugin_pets_dialog_token":"Token ID","plugin_pets_dialog_msg":"Greeting message","plugin_pets_dialog_msg_optional":"Optional, 100 characters max.","plugin_pets_dialog_btn":"Confirm","plugin_pets_dialog_btn_share":"Share","plugin_pets_dialog_preview":"Preview","plugin_pets_dialog_created":"Created by MintTeam","plugin_pets_dialog_powered":"Powered by RSS3","plugin_pets_dialog_success":"Your Non-Fungible Friend has been set up successfully","plugin_pets_dialog_fail":"Setting failed, please try later","plugin_pets_dialog_check_title":"Show NFT friends on the profile page.","popups_following_permissions":"The plugin ({{pluginName}}) (hosted on {{pluginURL}}) is going to request the following permissions:","popups_permissions":"Permissions","popups_sites":"Sites","popups_mask_requests_permission":"Mask needs the following permissions","popups_grant":"Grant","popups_permission_request":"Permission request","popups_permission_request_content":"To continue, Mask Network needs permission to access the following URL:","popups_permission_request_content2":"This gives Mask Network the necessary abilities to provide the requested function properly.","popups_welcome":"Welcome","popups_wallet_token":"Token","popups_wallet_dialog_legacy_wallet_tip":"Detected legacy wallets, please click confirm to restore them all.","popups_wallet_set_payment_password":"Set the payment password","popups_wallet_payment_password":"Payment Password","popups_wallet_re_payment_password":"Re-enter the payment password","popups_wallet_set_up_payment_password":"Set up payment password","popups_wallet_payment_password_tip":"The Payment password must be a combination of 2 categories out of numbers, letters, and special characters with a length of 8-20 characters.","popups_wallet_go_back":"Go back","popups_wallet_start_up_tip":"Connect to your wallet, create a new wallet or recover an existing wallet using a seed phrase.","popups_wallet_name_placeholder":"Enter 1-12 characters","popups_wallet_name_mnemonic":"Mnemonic","popups_wallet_name_json_file":"Json File","popups_wallet_name_private_key":"Private Key","popups_wallet_name_mnemonic_placeholder":"Please enter 12 mnemonic words separated by spaces","popups_wallet_name_origin_password":"Original Password","popups_wallet_tab_assets":"Assets","popups_wallet_tab_activity":"Activity","popups_wallet_derivation_path":"Derivation path ({{ path }})","popups_wallet_next":"Next","popups_wallet_backup_wallet":"Back up the wallet","popups_wallet_backup_json_file":"JSON File","popups_wallet_backup_private_key":"Private Key","popups_wallet_backup_json_file_confirm_password_tip":"This file has been encrypted and stored with your current password. Your current password is needed to decrypt this file when using it to import wallet.","popups_wallet_backup_private_key_tip":"Please don’t show anyone your private key. The private key can be used in any wallet that supports EVM-compatible chains without decryption.","popups_wallet_backup_input_password":"Input your password","popups_wallet_backup_json_file_drag_tip":"Drag your file into here…","popups_wallet_backup_json_file_click_tip":"Click or drag your file here","popups_wallet_enter_your_wallet_name":"Enter your wallet name","popups_wallet_delete_tip":"Are you sure you want to delete this wallet? Your wallet cannot be recovered without seed phrase.","popups_wallet_confirm_payment_password":"Confirm with payment password","popups_wallet_token_buy":"Buy","popups_wallet_token_send":"Send","popups_wallet_token_swap":"Swap","popups_wallet_view_on_explorer":"View on Explorer","popups_wallet_gas_fee_settings":"Gas fee settings","popups_wallet_gas_fee_settings_description":"Gas fees are the fees for paying ethereum miners. The miners prefer to pack transactions with higher gas fees. Transactions with low gas fees might fail, and the paid gas fees won’t be returned.","popups_wallet_gas_fee_settings_low":"Low","popups_wallet_gas_fee_settings_medium":"Medium","popups_wallet_gas_fee_settings_high":"High","popups_wallet_gas_fee_settings_usd":" ≈ ${{usd}}","popups_wallet_gas_fee_settings_gas_limit":"Gas Limit","popups_wallet_gas_fee_settings_max_priority_fee":"Max priority fee","popups_wallet_gas_fee_settings_max_fee":"Max fee","popups_wallet_gas_fee_settings_min_gas_limit_tips":"Gas limit must be at least {{limit}}","popups_wallet_unsupported_network":"Unsupported network type","popups_wallet_signature_request":"Signature request","popups_wallet_signature_request_message":"Message","popups_wallet_contract_interaction":"Contract Interaction","popups_wallet_token_unlock_permission":"Token unlock permission","popups_wallet_token_infinite_unlock":"Infinite unlock","popups_wallet_contract_interaction_transfer":"Transfer","popups_wallet_contract_interaction_gas_fee":"Gas fee","popups_wallet_contract_interaction_edit":"Edit","popups_wallet_contract_interaction_total":"Total","popups_wallet_password_dont_match":"The password does not match.","popups_wallet_password_satisfied_requirement":"The password is not satisfied the requirement.","popups_wallet_password_length_error":"The password length is incorrect.","popups_wallet_unlock_wallet":"Unlock Wallet","popups_wallet_unlock_error_password":"Password is incorrect","popups_wallet_activity_to_address":"To: {{address}}","popups_wallet_transfer_error_tip":"Network connection failure or contract error, send transaction failure.","popups_wallet_transactions_pending":"Pending...","popups_wallet_re_send":"Re-Send","popups_wallet_choose_token":"Choose Token","popups_wallet_gas_price":"Gas Price","popups_wallet_done":"Done","popups_wallet_recovered":"Wallet recovered","popups_wallet_no_transactions":"You have no transactions","popups_missing_parameter_caption":"Please close this page.","popups_persona_connect_to":"Connect to {{type}}","popups_persona_to_be_verified":"To be verified","popups_persona_disconnect":"Disconnect","popups_persona_disconnect_confirmation":"Disconnect confirmation?","popups_persona_disconnect_confirmation_description":"This persona verification record will no longer show up in your verification profile page. Your\\n Mask friends can no longer send encrypted message to you by this persona or check your Web 3\\n products","popups_persona":"Persona","popups_twitter_id":"Twitter ID","popups_persona_logout":"Log out","popups_persona_disconnect_tip":"After logging out, your associated social accounts can no longer decrypt past encrypted messages. If you need to reuse your account, you can recover your account with your identity, private key, local or cloud backup.","popups_persona_persona_name_exists":"The persona name already exists","popups_persona_sign_request_title":"Signature request","popups_persona_sign_request_message":"message","popups_password_do_not_match":"Incorrect backup password","popups_backup_password":"Backup Password","popups_rename_error_tip":"Maximum length is {{length}} characters long.","nft_wallet_label":"Wallet","plugin_profile_no_wallets":"Connect your wallet here.
This section will be shown to your encrypted friends.
The display content includes digital art, donations, badges
and other public information on chain.","plugin_vcent_last_offer_at":"LATEST OFFER at","nft_input_address_label":"Please input contract address","nft_input_tokenid_label":"Please input token ID","nft_owner_hint":"This NFT does not exist or does not belong to you.","nft_add_dialog_title":"Add Collectible","nft_add_button_label":"Add","nft_list_title":"NFT Avatar Setting","nft_wallet_change":"Change","nft_button_add_collectible":"Add Collectible","nft_avatar":"NFT Avatar","web3_tab_hint":"No address found.","plugin_artblocks_not_active":"This project is no more active","plugin_artblocks_completed":"Completed","plugin_artblocks_paused":"Paused","plugin_artblocks_collection":"Collection","plugin_artblocks_details":"Details","plugin_artblocks_created_by":"Created by","plugin_artblocks_purchase":"Purchase","plugin_artblocks_purchasing":"Purchasing....","plugin_artblocks_legal_text":"By checking this box, I agree to ArtBlocks\'s Terms of Service.","plugin_artblocks_check_tos_document":"Please check ToS document","plugin_artblocks_price_per_mint":"Price per mint","plugin_artblocks_price_row":"Price:","plugin_artblocks_minted_row":"Minted:","plugin_artblocks_license_row":"License:","plugin_artblocks_library_row":"Library:","plugin_artblocks_website":"Website","plugin_artblocks_infos":"Infos","plugin_artblocks_chain":"Chain","plugin_artblocks_blockchain_row":"Blockchain:","plugin_artblocks_contract_row":"Contract:","plugin_artblocks_smt_wrong":"Something went wrong!","plugin_artblocks_share":"I just purchased a beautiful piece of art from \'{{name}}\' collection for {{price}} {{symbol}}. Install @realMaskNetwork to get yours.","plugin_artblocks_share_no_official_account":"I just purchased a beautiful piece of art from \'{{name}}\' collection for {{price}} {{symbol}}. Welcome to join.","nft_button_set_avatar":"Set NFT Avatar"}'); -;// CONCATENATED MODULE: ./shared-ui/locales/ja-JP.json -const ja_JP_namespaceObject = JSON.parse('{"add_token":"トークンを追加","additional_post_box__encrypted_post_pre":"#mask_io で復号しましょう! {{encrypted}}","additional_post_box__steganography_post_pre":"この投稿は #mask_io によって暗号化されています。 📪🔑 mask.io をインストールして復号しましょう! ([I:b]) {{random}}","auto_paste_failed_dialog_title":"手動でペーストする","auto_paste_failed_dialog_content":"以下の文字列と画像(存在すれば)をコピーし、公開しましょう。","auto_paste_failed_dialog_image_caption":"新しいタブで開く","auto_paste_failed_snackbar":"Mask が自動で投稿を作成できませんでした。手動でペーストしてください。","auto_paste_failed_snackbar_action":"方法を確認","automation_request_click_post_button":"[公開] ボタンをクリックして編集ダイアログを開きます。","cancel":"取り消す","comment_box__placeholder":"コメントを暗号化するには…","confirm":"確認する","copy_text":"テキストをコピー","copy_image":"画像をコピー","copy_success_of_wallet_addr":"ウォレットのコピーに成功しました","copy_success_of_text":"テキストのコピーに成功しました","copy_success_of_image":"画像のコピーに成功しました","connecting":"接続中…","create":"作成","dashboard_tab_collectibles":"コレクション","dashboard_no_collectible_found":"コレクションが見つかりません","decrypted_postbox_add_recipients":"受信者を追加","decrypted_postbox_decrypting":"Mask が復号しています。","decrypted_postbox_decoding":"Mask が解読しています。","decrypted_postbox_decrypting_finding_person_key":"Mask は公開鍵を探しています…","decrypted_postbox_decrypting_finding_post_key":"Mask はこの投稿を復号するために ポストキーを取得しています…","decrypted_postbox_author_mismatch":"最初の作者は {{name}}","decrypted_postbox_title":"Mask で暗号化されています:","dismiss":"戻る","delete":"削除","delete_wallet":"ウォレットを削除する","hide_token":"トークンを隠す","hide_token_hint":"将来的には、ウォレットパネルで「トークンを追加」を選択することで、再び {{token}} を追加することができます。","done":"完了です!","download":"ダウンロード","buy_now":"今すぐ購入","setup_guide_find_username_text":"Mask のペルソナと接続するためにユーザー名が必要です。
正しいものを入力してください。","setup_guide_connect_auto":"接続する","setup_guide_connect_failed":"失敗しました… もう一度お試しください。","import":"インポート","no_search_result":"該当なし","payload_bad":"この投稿は破損しているため、Mask で復号できません。","payload_incomplete":"この投稿は不完全です。全文を見ることにより復号が可能になります。","payload_not_found":"ペイロードが見つかりませんでした。","payload_throw_in_alpha41":"Alpha41方式は使用できません。Mask をアップデートしてください。","personas":"ペルソナ","browser_action_enter_dashboard":"ダッシュボードに入る","post_dialog__button":"完了","post_dialog__image_payload":"画像で暗号化","post_dialog__more_options_title":"他のオプション","post_dialog__placeholder":"ここにテキストを持ってきます","post_dialog__select_recipients_share_to_everyone":"全てのユーザー","post_dialog__select_recipients_title":"閲覧可能な人を選ぶ","post_dialog__title":"Mask: 作成","post_modal_hint__button":"投稿を暗号化","hide":"隠す","reset":"リセットする","rename":"名前を変える","search":"検索","search_box_placeholder":"ここに打って検索","select_all":"全て選ぶ","select_none":"何も選んでいません。","select_specific_friends_dialog__button":"完了","select_specific_friends_dialog__title":"特定の連絡先を選ぶ","service_decryption_failed":"復号に失敗","service_invalid_backup_file":"これは Mask のバックアップではないかもしれません。","service_unknown_payload":"投稿のバージョンが不明です。Mask のアップデートが必要かもしれません。","service_username_invalid":"無効なユーザー名","skip":"スキップ","share":"共有","share_to":"共有先","sharing":"共有する","transfer":"転送","wallet_name":"ウォレット名","wallet_rename":"ウォレット名を変更","wallet_balance":"残高","wallet_new":"新規ウォレット名","wallets":"ウォレット","wallet_status_button_change":"変更","wallet_status_button_disconnect":"接続を外す","wallet_status_button_copy_address":"アドレスをコピー","wallet_transfer_to_address":"宛先のアドレス","wallet_transfer_send":"送る","wallet_transfer_title":"転送","wallet_transfer_error_amount_absence":"量を入力","wallet_transfer_error_address_absence":"受け手のアドレスを入力","wallet_transfer_error_invalid_address":"無効な受け手のアドレス","relative_time_days_ago":"{{days}}日前","relative_time_hours_ago":"{{hours}}時間前","relative_time_minutes_ago":"{{minutes}}分前","relative_time_months_ago":"{{months}}月前","relative_time_seconds_ago":"{{seconds}}秒前","relative_time_years_ago":"{{years}}年前","plugin_wallet_select_a_token":"トークンを選択","plugin_wallet_connect_a_wallet":"ウォレットと接続","plugin_wallet_no_gas_fee":"ガス代が不足しています","plugin_wallet_update_gas_fee":"ガス代を更新中…","plugin_wallet_invalid_network":"無効のネットワーク","plugin_wallet_select_a_wallet":"ウォレットを選択","plugin_wallet_transaction":"取引","plugin_wallet_transaction_wait_for_confirmation":"確認を待っています","plugin_wallet_transaction_submitted":"取引は送信されました。","plugin_wallet_transaction_confirmed":"取引は成功しました。","plugin_wallet_transaction_reverted":"取引は元に戻されました。","plugin_wallet_transaction_rejected":"取引は拒否されました。","plugin_wallet_transaction_server_error":"取引は内部の JSON-RPC サーバーのエラーにより失敗しました。","plugin_wallet_view_on_explorer":"Explorer で見る","plugin_wallet_wrong_network_tip":"正しい Ethereum ネットワークを選択してください。","plugin_wallet_on_create":"ウォレットを作成","plugin_wallet_on_connect":"ウォレットに接続しています","plugin_wallet_select_provider_dialog_title":"ウォレットを接続","plugin_wallet_qr_code_with_wallet_connect":"WalletConnect 対応の QR コードを読みこむ","plugin_wallet_token_unlock":"確かにアンロックする","plugin_wallet_token_infinite_unlock":"永遠にアンロックする","plugin_wallet_connect_safari_metamask":"MetaMask に接続する","plugin_wallet_connect_safari_rainbow":"Rainbow に接続する","plugin_wallet_connect_safari_trust":"Trust に接続する","plugin_wallet_connect_safari_im_token":"imToken に接続する","plugin_wallet_on_connect_in_firefox":"接続する","plugin_wallet_return_mobile_wallet_options":"モバイルウォレットのオプションに戻る","plugin_wallet_view_qr_code":"QR コードを表示する","plugin_red_packet_display_name":"プラグイン: 投げ銭","plugin_red_packet_split_mode":"分割モード","plugin_red_packet_average":"平均","plugin_red_packet_random":"ランダム","plugin_red_packet_shares":"株数","plugin_red_packet_best_wishes":"幸運を祈ります!","plugin_red_packet_create_new":"新しい投げ銭を作成","plugin_red_packet_claim":"受け取る","plugin_red_packet_refund":"無効","plugin_red_packet_select_existing":"既存の投げ銭を選択","plugin_red_packet_attached_message":"メッセージを追加","plugin_red_packet_from":"送信者:{{name}}","plugin_red_packet_description_expired":"期限切れです","plugin_red_packet_description_refunded":"無効です","plugin_red_packet_description_refund":"{{balance}}{{symbol}}を受け取れます","plugin_red_packet_description_empty":"期限切れです","plugin_red_packet_description_broken":"破損しています","plugin_red_packet_description_failover":"{{amount}} {{symbol}} / {{shares}} 株","plugin_red_packet_claiming_from":"{{name}} から投げ銭を請求中","plugin_red_packet_amount_per_share":"1株当たりの金額","plugin_red_packet_send_symbol":"{{symbol}} を送る","plugin_red_packet_create_with_token":"{{symbol}} で投げ銭を作成する","plugin_gitcoin_readme":"このサービスを利用するにあたり、寄付金額の 5% が Gitcoin grants development fund に寄付されます","plugin_gitcoin_select_a_token":"トークンを選択する","plugin_gitcoin_enter_an_amount":"量を決める","plugin_gitcoin_grant_not_available":"Grantは有効ではありません","plugin_gitcoin_insufficient_balance":"{{symbol}} の残高が足りません","plugin_gitcoin_donate":"寄付する","plugin_gitcoin_last_updated":"最新の更新:","plugin_gitcoin_view_on":"Gitcoin で見る","plugin_trader_swap":"スワップ","plugin_trader_wrap":"ラップ","plugin_trader_unwrap":"アンラップ","plugin_trader_buy":"購入","plugin_trader_no_data":"データなし","plugin_trader_tab_market":"一般","plugin_trader_tab_price":"価格","plugin_trader_tab_exchange":"取引所","plugin_trader_tab_swap":"スワップ 🔥","plugin_trader_table_exchange":"ソース","plugin_trader_table_pair":"通貨ペア","plugin_trader_table_price":"価格","plugin_trader_table_volume":"取引高(24時間)","plugin_trader_table_updated":"更新","plugin_trader_error_amount_absence":"量を入力してください。","plugin_trader_error_insufficient_balance":"{{symbol}} の残高が足りません","plugin_trader_error_insufficient_lp":"流動性が足りません","plugin_trade_error_input_amount_less_minimum_amount":"入力量は最小量を下回っています","plugin_trader_slippage_tolerance":"スリッページの許容範囲:","plugin_poll_display_name":"プラグイン: 投票","plugin_poll_question_hint":"質問を入力してください...","plugin_poll_options_hint":"オプション","plugin_poll_length":"投票期限","plugin_poll_length_days":"日","plugin_poll_length_hours":"時間","plugin_poll_length_minutes":"分","plugin_poll_length_unknown":"知らない","plugin_poll_create_new":"新しい投票を作成","plugin_poll_select_existing":"既存の投票を選択","plugin_poll_send_poll":"投票を作成","plugin_poll_status_closed":"投票は終了しました","plugin_poll_status_voting":"投票しています","plugin_poll_status_voted":"投票した.","plugin_poll_deadline":"{{time}} で終了","plugin_ito_share":"共有","plugin_ito_enter":"参加","plugin_ito_dialog_swap_title":"{{token}} をスワップ","plugin_ito_dialog_swap_reminder_title":"スワップリマインダー","plugin_ito_dialog_swap_unlock_title":"事前にトークンをアンロックする","plugin_ito_dialog_swap_share_title":"共有","plugin_ito_dialog_swap_exchange":"交換する","plugin_ito_dialog_swap_panel_title":"スワップ","plugin_ito_dialog_swap_exceed_wallet_limit":"一つのウォレットの限度を超えています","plugin_ito_swap_ration_label":"スワップ比率","plugin_ito_swap_unlucky_fail":"残念でした。失敗した理由を Etherscan リンクから確認してからもう一度試してください。","plugin_ito_swap_only_once_remind":"各ウォレットは一度しか参加できません。","plugin_ito_swap_title":"{{swap}} 分の {{amount}} {{token}}","plugin_ito_swap_end_date":"{{date}} に終了","plugin_ito_dialog_claim_reminder_agree":"了解しました","plugin_ito_dialog_claim_reminder_text1":"現存するトークンを偽ったものや、トークンを持っていないプロジェクトであるのに関わらずそれのトークンであると騙るように、誰もが Ethereum 上で任意の名前でトークンを作成することができます。","plugin_ito_dialog_claim_reminder_text2":"このインターフェイスはトークンアドレスから任意のトークンを読み込むことができます。任意の ERC20 のトークンをやり取りするときは、特に注意し、自分で調べてください。","plugin_ito_dialog_claim_reminder_text3":"もし任意のトークンを購入した場合、あなたはそれを払い戻すことができない可能性があります。","plugin_ito_dialog_claim_reminder_text4":"本権利は裁判において、もしくは正当な請求ではないと判断される者に対して、全体もしくは一部、直接的もしくは間接的に提供または販売されておらず、今後されることもありません。","plugin_ito_expired":"期限切れ","plugin_ito_create_new":"新しいもの","plugin_ito_claim_all_status_unclaimed":"未請求","plugin_ito_claim_all_status_locked":"ロックされています","plugin_ito_claim_all_unlock_time":"ロック解除:{{time}}","plugin_ito_claim_all_dialog_title":"あなたのトークンを請求する","plugin_ito_swapping":"幸運ならあなたは {{amount}} {{symbol}} を得ることができます。また、ITO の在庫切れが発生した場合は返金されます。","plugin_ito_advanced":"進行中","plugin_ito_advanced_ip_region":"IP リージョン制限","plugin_ito_advanced_delay_unlocking":"トークンのロック解除時間を設定","plugin_ito_advanced_contract":"プラグインコントラクト","plugin_ito_select_existing":"古いもの","plugin_ito_display_name":"ITO 構成ダイアログ","plugin_ito_sell_token":"トークン","plugin_ito_sell_price":"価格","plugin_ito_sell_total_amount":"入力","plugin_ito_allocation_per_wallet":"スワップ上限 {{limit}} {{token}}","plugin_ito_wait_unlock_time":"{{unlockTime}} に請求","plugin_ito_claim":"請求","plugin_ito_claiming":"請求中","plugin_ito_claim_all":"全て請求","plugin_ito_qualification_start_time":"参加資格開始時間:","plugin_ito_error_qualification_start_time":"無効:資格開始時間は ITO の終了時間よりも前でなくてはいけません","plugin_ito_error_invalid_qualification":"無効な資格アドレス","plugin_ito_unlock_time":"ロック解除時間 {{zone}}","plugin_ito_qualification_label":"プラグインのコントラクト","plugin_ito_message_label":"タイトル","plugin_ito_region_label":"IP リージョンの選択","plugin_ito_region_confirm_label":"IP リージョン","plugin_ito_region_list":"{{ select }} / {{ all }} リージョン","plugin_ito_region_all":"全てのリージョン","plugin_ito_region_search":"リージョンの名前を入力して検索","plugin_ito_region_ban":"あなたのリージョンではこのプールはプールの作成者から Ban されています","plugin_ito_next":"次","plugin_ito_back":"戻る","plugin_ito_transaction_dialog_summary":"{{amount}} {{symbol}} で ITO を作成。","plugin_ito_swap":"スワップ","plugin_ito_send_tip":"過去のタブからあなたの行った ITO を探すことができます。","plugin_ito_send_text":"{{total}} {{symbol}} を送る","plugin_ito_error_enter_amount":"量を入力してください","plugin_ito_error_select_token":"トークンを選択してください","plugin_ito_error_enter_amount_and_token":"量を入力し、トークンを選択してください。","plugin_ito_error_allocation_absence":"スワップ上限を入力してください","plugin_ito_error_allocation_invalid":"無効の量","plugin_ito_error_exchange_time":"無効:開始時刻は終了時刻よりあとになっています","plugin_ito_error_unlock_time":"無効:終了時間はロック解除時間よりも後にはできません","plugin_ito_error_balance":"{{symbol}} の残高が足りません","plugin_ito_list_start_date":"開始時刻 {{date}}","plugin_ito_list_end_date":"終了時刻 {{date}}","plugin_ito_list_sold_total":"スワップしました","plugin_ito_list_total":"総量","plugin_ito_list_table_type":"形式","plugin_ito_list_table_price":"スワップ比率","plugin_ito_no_claimable_token":"トークンの請求権はありません。","plugin_ito_list_table_sold":"スワップしました","plugin_ito_list_table_got":"バランス","plugin_ito_list_button_send":"送る","plugin_ito_withdraw":"取り消す","plugin_ito_qualification_loading":"資格認証中…","plugin_ito_qualification_failed":"ウォレットアドレスがリストにありません。","plugin_ito_withdrawn":"取り消しました","plugin_ito_your_swapped_amount":"あなたは {{amount}} {{symbol}} を獲得しました","plugin_ito_your_claimed_amount":"あなたは {{amount}} {{symbol}} を請求しました","plugin_ito_your_refund_amount":"{{amount}} {{symbol}} を戻す","plugin_ito_unlock_in_advance":"事前にアンロックする","plugin_ito_swapped_status":"{{remain}} / {{total}} {{token}} をスワップしました","plugin_ito_congratulations":"おめでとうございます!","plugin_ito_out_of_stock_hit":"次の幸運を祈っています","plugin_ito_claim_success_share":".@{{account}} を使って ${{symbol}} をスワップし、 @{{user}} の #ITO に参加しました。mask.io をインストールして Initial Twitter Offering を始めましょう! \\n {{link}}","plugin_ito_claim_foreshow_share":"{{symbol}}({{name}}) は新しい #ITO をローンチしました。参加してみましょう! @{{account}} (mask.io) をフォローしてさらにイベントを見つけましょう。\\n {{link}}","plugin_ito_password":"パスワード: {{password}}","plugin_ito_status_no_start":"まだ開催されていません","plugin_ito_status_ongoing":"開催中","plugin_ito_status_out_of_stock":"品切れ","plugin_ito_loading":"ITO を読み込んでいます","plugin_ito_amount_unlocked":"ロック解除された {{amount}} {{symbol}}","plugin_ito_amount_unlocked_infinity":"永遠に {{symbol}} のロックを解除する","plugin_ito_unlocking_symbol":"{{symbol}} をアンロック中","plugin_ito_continue":"再開","plugin_ito_view_on_explorer":"Explorer で見る","plugin_collectible_you":"あなた","plugin_collectible_done":"完了","plugin_collectible_retry":"リトライ","plugin_collectible_sell":"売る","plugin_collectible_checkout":"チェックアウト","plugin_collectible_place_bid":"入札する","plugin_collectible_buy_now":"今買う","plugin_collectible_make_offer":"オファーする","plugin_collectible_post_listing":"投稿リスト","plugin_collectible_description":"現在の価格は {{price}} {{symbol}} です。","plugin_collectible_article":"品目","plugin_collectible_details":"詳細","plugin_collectible_offers":"オファー","plugin_collectible_listing":"リスティング","plugin_collectible_history":"履歴","plugin_collectible_event":"イベント","plugin_collectible_unit_price":"単価","plugin_collectible_price":"価格","plugin_collectible_date":"日にち","plugin_collectible_quantity":"量","plugin_collectible_expiration":"有効期限","plugin_collectible_no_offers":"オファーがありません","plugin_collectible_no_listings":"リストにありません","plugin_collectible_base":"ベース","plugin_collectible_properties":"プロパティ","plugin_collectible_about":"詳細","plugin_collectible_chain_info":"チェーン情報","plugin_collectible_contract_address":"コントラクトアドレス","plugin_collectible_token_id":"トークンID","plugin_collectible_block_chain":"ブロックチェーン","plugin_collectible_create_by":"作成者","plugin_collectible_owned_by":"所持者","plugin_collectible_no_history":"履歴がありません","plugin_collectible_ensure_unreviewed_item":"未レビューのアイテムを確認してください","plugin_collectible_check_tos_document":"ToS ドキュメントを確認してください","plugin_collectible_not_been_reviewed_by_opensea":"このアイテムは OpenSea でレビューされていません。","plugin_collectible_reviewed_tips":"注意して行動してください。ブロックチェーン上で誰もがどんな名前でデジタルアイテムを作成することができます。これは、既存のアイテムの偽のバージョンも含みます。デジタルアイテムを扱う際には十分に注意、調査をして、それがチェーン上にあるのか確かめてください。","plugin_collectible_total":"合計","plugin_collectible_subtotal":"小計","plugin_collectible_item":"アイテム","plugin_collectible_approved_tips":"このボックスをチェックすることで、このアイテムが OpenSea によってレビューまたは承認されていないことを認めます。","plugin_collectible_agree_terms":"このボックスをチェックすることで、OpenSea の利用規約に同意します。","plugin_collectible_convert_eth":"ETH を両替する","plugin_collectible_sale_end":"{{time}} に販売は終了します","plugin_collectible_set_initial_price":"初期価格を設定する。","plugin_collectible_ending_price_tip":"このアイテムはアイテムをあなたが転送もしくキャンセルするまで販売されます。","plugin_collectible_starting_price":"開始価格","plugin_collectible_ending_price":"終了価格","plugin_collectible_ending_price_less_than_staring":"終了価格は開始価格以下である必要があります。 価格は有効期限まで直線的に変動します。","plugin_collectible_expiration_date":"有効期限","plugin_collectible_schedule_date":"予定日","plugin_collectible_auto_cancel_tip":"あなたのリスティングは自動的にこの時間で終了します。あなたがキャンセル必要はありません!","plugin_collectible_schedule_future_date":"今後のスケジュールを立てる。","plugin_collectible_buyer_address":"買い手のアドレス","plugin_collectible_buyer_address_placeholder":"買い手のアドレスを入力する。","plugin_collectible_buyer_address_helper_text":"買い手だけが購入することができます。","plugin_collectible_include_ending_price":"終了価格を含む","plugin_collectible_include_ending_price_helper":"終了価格を追加すると、このリスティングが失効したり、買い手が見つかるまで価格が引き下げられたりします。","plugin_collectible_schedule_for_a_future_time":"未来の時間のスケジュールを立てる。","plugin_collectible_schedule_for_a_future_time_helper":"このリスティングは、未来のデータでのみ購入できるようにスケジュールを立てることができます。","plugin_collectible_privacy":"プライバシー","plugin_collectible_privacy_helper":"あなたはリスティングを公開にすることができますし、1つのアドレスだけが購入できるように指定することができます。","plugin_collectible_enter_a_price":"価格を入力","plugin_collectible_invalid_schedule_date":"無効な予定日","plugin_collectible_invalid_ending_price":"無効な終了価格","plugin_collectible_invalid_expiration_date":"無効な有効期限","plugin_collectible_invalid_buyer_address":"無効な買い手のアドレス","plugin_collectible_set_price":"価格を設定する","plugin_collectible_highest_bid":"最高の入札価格","plugin_collectible_minimum_bid":"最低の入札価格","plugin_collectible_set_starting_bid_price":"あなたの入札開始価格を設定する","plugin_collectible_reserve_price":"予約価格","plugin_collectible_reserve_price_helper":"予約価格を設定して、隠れた制限を作成します。 予約価格は開始価格以上である必要があります。","plugin_collectible_auction_auto_end":"この時点であなたのオークションは自動的に終了し、最高価格の入札者が落札します。キャンセルする必要はありません。","plugin_collectible_enter_minimum_bid":"最低入札価格の入力","plugin_collectible_enter_reserve_price":"予約価格の入力","plugin_collectible_invalid_reserve_price":"無効な予約価格","plugin_collectible_place_a_bid":"入札する","plugin_collectible_make_an_offer":"オファーする","plugin_collectible_approved_by_open_sea":"このボックスをチェックすることで、このアイテムが OpenSea によってレビューまたは承認されていないことを認めます。","plugin_collectible_legal_text":"このボックスをチェックすることで、OpenSea の利用規約に同意します。","plugin_snapshot_info_title":"情報","plugin_snapshot_info_strategy":"戦略家","plugin_snapshot_info_author":"著者","plugin_snapshot_info_start":"開始日","plugin_snapshot_info_end":"終了日","plugin_snapshot_result_title":"結果","plugin_snapshot_votes_title":"投票","plugin_snapshot_no_power":"投票権がありません","plugin_snapshot_vote_success":"投票されています!","plugin_snapshot_vote":"投票","plugin_snapshot_vote_choice":"選択","plugin_snapshot_vote_power":"あなたの投票力","plugin_snapshot_vote_title":"投票する","plugin_snapshot_vote_confirm_dialog_title":"投票の確認","plugin_snapshot_vote_confirm_dialog_choice":"本当に 「{{ choiceText }}」 に投票しますか?","plugin_snapshot_vote_confirm_dialog_warning":"このアクションは元に戻すことはできません。","plugin_snapshot_current_result_title":"現在の結果","plugin_snapshot_download_report":"レポートをダウンロードする","plugin_dhedge_managed_by":"{{managerName}} によって管理されています","plugin_dhedge_manager_share":"プールのうち {{managerShare}}% を所持しています","plugin_dhedge_value_managed":"価値が管理されています","plugin_dhedge_lifetime_return":"生涯リターン","plugin_dhedge_risk_factor":"リスク要因","plugin_dhedge_tab_stats":"統計","plugin_dhedge_tab_chart":"チャート","plugin_dhedge_strategy":"戦略家","plugin_dhedge_see_less":"閉じる","plugin_dhedge_see_more":"詳細","plugin_dhedge_no_data":"データがありません","plugin_dhedge_fetch_error":"データを取得できません。再度試してください。","plugin_dhedge_loading_chart":"ロード中","plugin_dhedge_invest":"投資する","plugin_dhedge_buy_token":"{{symbol}} を得る","plugin_dhedge_enter_an_amount":"量を入力","plugin_dhedge_insufficient_balance":"{{symbol}} の残高が不十分です","plugin_dhedge_loading":"ロード中…","plugin_dhedge_pool_not_found":"無効なプールアドレスです!","plugin_dhedge_smt_wrong":"何か間違いが発生しました!"}'); -;// CONCATENATED MODULE: ./shared-ui/locales/ko-KR.json -const ko_KR_namespaceObject = JSON.parse('{"database_backup":"데이터베이스 백업","database_overwrite":"백업으로 데이터베이스를 덮어쓰기","database_clear":"데이터베이스 지우기","debug_new_bug_issue":"새 버그 문제","debug_metadata_title":"메타데이터를 추가하거나 현존 메타데이터를 교체하기","debug_metadata_put_metadata":"메타데이터 넣기","edit":"편집","clear":"지우기","more":"더 보기","approve":"승인","address":"주소","operation":"조작","gas_limit":"가스 한도","gas_price":"가스 가격","redirect_to":"리다이렉트","sign":"사인","reload":"다시 로드","load":"로드","load_all":"모두 로드하기","no_data":"데이터 없음","tip":"팁","tags":"태그","contract":"컨트랙트","initializing":"초기화 중...","redirect_alert":"브라우저가 리다이렉트하지 않으면 여기 클릭","typed_message_text_alert":"현재 TypedMessageText만 지원합니다.","badge_renderer_provided_by_plugin":"플러그인으로 제공","add_token":"토큰 추가","add_nft_contract_search_hint":"NFT 컨트렉트 이름이나 주소를 검색하기","applications":"어플리케이션","additional_post_box__encrypted_post_pre":"#mask_io로 이 게시물을 해독하기. {{encrypted}}","additional_post_box__encrypted_post_pre_red_packet_twitter_official_account":"레드 패킷을 수령하고 #mask_io @{{account}} {{encrypted}} 하세요.","additional_post_box__encrypted_post_pre_red_packet":"#mask_io {{encrypted}} 덧붙이고 레드 패킷을 수령하세요.","additional_post_box__steganography_post_pre":"암호화된 이미지입니다. 📪🔑 mask.io 설치하고 해독하세요. {{random}}","auto_paste_failed_dialog_title":"수동으로 붙여넣기","auto_paste_failed_dialog_content":"아래의 문자와 이미지(있으면)를 복사하고 공유하세요","auto_paste_failed_dialog_image_caption":"새로운 탭에서 열기","auto_paste_failed_snackbar":"암호화된 내용을 수동으로 붙여넣으세요?","auto_paste_failed_snackbar_action":"방법을 알려주세요.","auto_paste_failed_snackbar_action_close":"닫기","automation_request_click_post_button":"“포스트” 버튼을 눌러 대화 작성을 오픈하세요.","try_again":"다시 시도","cancel":"취소","twitter_account":"realMaskNetwork","facebook_account":"masknetwork","comment_box__placeholder":"암호화된 코멘트 추가","confirm":"확인","copy_text":"문자 복사","loading_failed":"로딩 실패","copy_image":"이미지 복사","copy_success_of_wallet_addr":"지갑 주소 복사 성공","copy_success_of_text":"문자 복사 성공","copy_success_of_image":"이미지 복사 성공","connecting":"연결 중","create":"만들기","copied":"복사됨","daily":"일일","dashboard_tab_collectibles":"수집품","dashboard_no_collectible_found":"수집품이 없습니다.","days":"{{days}} 일마다","decrypted_postbox_add_recipients":"받는사람 추가","decrypted_postbox_decrypting":"Mask 해독 중","decrypted_postbox_decoding":"Mask 디코딩 중","decrypted_postbox_decrypting_finding_person_key":"Mask가 상대방의 공개 키를 찾고 있습니다...","decrypted_postbox_decrypting_finding_post_key":"Mask가 이 게시글의 키를 검색하고 있습니다.","decrypted_postbox_author_mismatch":"{{name}}님이 이 글을 처음 게시했습니다.","decrypted_postbox_title":"Mask로 해독되었습니다:","dismiss":"확인","delete":"삭제","delete_wallet":"월렛 삭제","hide_token":"토큰 숨기기","hide_token_hint":"대시보드에서 「토큰 추가」 로 {{token}} 다시 추가할 수 있습니다.","done":"닫기","download":"다운로드","failed":"실패","buy_now":"바로 매수하기","setup_guide_find_username_text":"프로필과 페르소나를 연결시키려면 아이디가 필요합니다.","setup_guide_connect_auto":"연결","setup_guide_connect_failed":"실패했습니다... 다시 시도해 보세요.","user_guide_tip_connected":"해당 계정에 성공적으로 연결되었습니다.","user_guide_tip_1":"클릭하여 메인 기능을 확인하세요.","user_guide_tip_2":"여기서 월렛을 연결하세요. 여기서 네트워크나 월렛을 바꿀 수 있습니다.","create_persona":"페르소나 만들기","connect_persona":"페로소나 연결하기","mask_network":"Mask Network","import":"불러오기","no_search_result":"결과 없음","loading":"로딩 중","unlock":"언락","payload_bad":"이 게시물은 손상된 것 같습니다. Mask가 해독할 수 없습니다.","payload_incomplete":"불완전한 게시물입니다. 해독하려면 완전한 게시물이 필요합니다.","payload_not_found":"페이로드를 찾을 수 없습니다.","payload_throw_in_alpha41":"Alpha41 이미 지원하 않습니다. 상대방에게 Mask를 업그레이드하라고 하세요!","personas":"페르소나","browser_action_enter_dashboard":"대시보드로 들어가기","pending":"대기 중…","popups_initial_tips":"{{type}} 로 로그인하거나 가입하세요.","beta_sup":"(beta)","post_dialog_plugins_experimental":"Plugins (Experimental)","post_dialog__button":"끝내기","post_dialog__image_payload":"이미지 페이로드","post_dialog__more_options_title":"추가 옵션","post_dialog__placeholder":"여기서 텍스트 치기...","post_dialog__select_recipients_end_to_end":"Myself","post_dialog__select_recipients_share_to_everyone":"모두에게","post_dialog__select_recipients_title":"받는사람 선택","post_dialog__select_specific_e2e_target_title":"또한 Mask Network 유저 ({{selected}} selected)","post_dialog__title":"Mask: 편집","post_dialog_enable_paste_auto":"자동 붙이기 지원","post_modal_hint__button":"암호화된 메시지를 편집하기","hide":"숨기기","reset":"초기화","editor":"에디터","retry":"다시 시도","rename":"이름 바꾸기","search":"검색","go_wrong":"오류가 발생합니다.","search_box_placeholder":"여기서 검색하기","select_all":"전체 선택","select_none":"전체 선택 취소","all_friends":"모든 친구들","select_specific_friends_dialog__button":"닫기","select_specific_friends_dialog__title":"지정 연락처 선택","service_decryption_failed":"해독 실패","service_invalid_backup_file":"Mask의 백업이 아닌 것 같습니다.","service_unknown_payload":"알 수 없는 게시물 버전입니다. Mask를 업데이트하세요.","service_username_invalid":"무효한 아이디입니다","speed_up":"가속하기","save":"저장","skip":"넘어가기","next":"다음","try":"시도","share":"공유","share_to":"...에게 공유하기","sharing":"공유 중","transfer":"이체","wallet_name":"월렛 이름","wallet_rename":"월렛 이름 바꾸기","wallet_add_nft_invalid_owner":"해당 수집품은 존재하지 않거나 유저님의 것이 아닙니다.","wallet_add_nft_already_added":"이미 추가된 수집품입니다.","wallet_loading_token":"토큰 로딩...","wallet_loading_nft_contract":"NFT 컨트렉트 로딩...","wallet_search_contract_no_result":"검색 포준에 맞추는 결과나 컨트렉트 주소가 없습니다.","wallet_search_no_result":"결과 없음.","wallet_airdrop_nft_unclaimed_title":"수령하지 않는 NFT 에어드랍:","plugin_airdrop_nft_start_time":"시작 시간: {{date}}","plugin_airdrop_nft_end_time":"종료 시간: {{date}}","plugin_airdrop_nft_expired":"만료됨","plugin_airdrop_nft_claim":"수령","plugin_airdrop_nft_claimed":"수령됨","plugin_airdrop_nft_check":"확인","plugin_airdrop_nft_check_address":"주소 확인","plugin_airdrop_nft_none_to_claim":"수령 가능한 에어드랍이 없습니다.","plugin_airdrop_nft_number_to_claim":"{{count}} {{name}} 수령이 가능합니다.","plugin_airdrop_nft_claim_all":"토큰 클레임","plugin_airdrop_nft_claim_successful":"토큰은 성공적으로 수령되었습니다.","plugin_airdrop_nft_claim_failed":"토큰 수령이 실패되었습니다","wallet_balance":"잔액","wallet_new":"새로운 월렛","wallets":"월렛","wallet_status_button_change":"바꾸기","wallet_status_button_disconnect":"연결 끊기","wallet_status_button_copy_address":"주소 복사","wallet_transfer_to_address":"주소","wallet_transfer_send":"보내기","wallet_transfer_title":"전송","wallet_transfer_error_amount_absence":"금액 입력","wallet_transfer_error_address_absence":"받는 주소 입력","wallet_transfer_error_invalid_address":"무효한 받는 주소","wallet_transfer_error_insufficient_balance":"{{symbol}} 잔액 부족","wallet_transfer_error_gas_price_absence":"가스비 입력","wallet_transfer_error_gas_limit_absence":"기스비 한도 입력","wallet_transfer_error_max_fee_absence":"최대 가스비 입력","wallet_transfer_error_max_priority_fee_absence":"최대 우선 가스비 입력","wallet_transfer_error_max_fee_too_low":"현재 네트워크 컨디션에서 최대 가스비가 너무 낮습니다.","wallet_transfer_error_max_fee_too_high":"최대 가스비는 필요한 것보다 높습니다.","wallet_transfer_error_max_priority_gas_fee_positive":"최대 우선 가스비는 0 GWEI보다 높아야 합니다","wallet_transfer_error_max_priority_gas_fee_too_low":"현재 네트워크 컨디션에서 최대 우선 가스비가 부족합니다","wallet_transfer_error_max_priority_gas_fee_too_high":"최대 우선 가스비가 필요한 것보다 높아서 필요 이상으로 지불할 수 있습니다.","wallet_transfer_error_max_priority_gas_fee_imbalance":"최대 기스비는 최대 우선 가스비보다 낮을 수 없습니다","wallet_transfer_gwei":"GWEI","wallet_risk_warning_dialog_title":"리스크 경고","wallet_risk_warning_no_select_wallet":"월렛 아직 선택하지 않습니다.","wallet_risk_warning_content":"유저님,

Mask Network의 월렛 관련된 플러그인을 사용하기 전에 다음의 이용 라스크를 확인하시길 바랍니다:

Mask Network는 비상업적 무료 서비스를 제공합니다. 플러그인은 커뮤니티 멤버들과 다른 제3자 DApp 팀이 제공하는 것입니다. 탈중앙화 네트워크의 자율성과 다른 기타 불확실한 리스크 요소때문에 사용자는 니모닉 단어, 개인키와 같은 중요한 정보를 적절히 보호해야 합니다. 블록체인 컨트렉트와 상호작용할 때 조심하시길 바랍니다. 제3자 DApp(플러그인) 으로 인한 리스크는 제3자 DApp 자체가 책임집니다. 확인 버튼을 클릭하면 위의 가능한 리스크를 감수하는 데 동의함을 의미합니다.","weekly":"주간","wallet_risk_confirm_confirming":"확인","wallet_risk_confirm_failed":"확인 실패","relative_time_days_ago":"{{days}} 일 전","relative_time_hours_ago":"{{hours}} 시간 전","relative_time_minutes_ago":"{{minutes}} 분 전","relative_time_months_ago":"{{months}} 월 전","relative_time_seconds_ago":"{{seconds}} 초 전","relative_time_years_ago":"{{years}} 년 전","plugin_wallet_collections":"컬렉션","plugin_wallet_select_a_token":"토큰을 선택하기","plugin_wallet_select_a_nft_contract":"NFT 컨트렉트를 선택하세요.","plugin_wallet_select_a_nft_owner":"NFT 컨트렉트 소유자를 선택하세요.","plugin_wallet_select_a_nft_operator":"NFT 컨트렉트 오퍼레이터","plugin_wallet_fail_to_load_nft_contract":"NFT 컨트렉트 로드 실패. 다시 시도하세요.","plugin_wallet_nft_approving_all":"모든 NFT 승인 중...","plugin_wallet_approve_all_nft":"모든 NFT 승인되었습니다.","plugin_wallet_approve_all_nft_successfully":"모든 NFT는 성공적으로 승인되었습니다","plugin_wallet_connect_a_wallet":"월렛을 연결하기","plugin_wallet_confirm_risk_warning":"리스크 경고 확인","plugin_wallet_no_gas_fee":"가스비가 없습니다","plugin_wallet_update_gas_fee":"가스비 업데이트 중...","plugin_wallet_invalid_network":"잘못된 네트워크","plugin_wallet_select_a_wallet":"월렛 선택","plugin_wallet_transaction":"거래","plugin_wallet_transaction_wait_for_confirmation":"확인 중","plugin_wallet_transaction_submitted":"해당 거래는 이미 제출되었습니다.","plugin_wallet_transaction_confirmed":"해당 거래는 이미 확인되었습니다.","plugin_wallet_transaction_reverted":"해당 거래는 이미 복구되었습니다.","plugin_wallet_transaction_rejected":"해당 거래는 이미 거부되었습니다.","plugin_wallet_transaction_server_error":"JSON-RPC 오류 때문에 거래가 실패했습니다.","plugin_wallet_view_on_explorer":"Explorer에서 보기","plugin_ito_placeholder_when_token_unselected":"토큰을 선택하세요","plugin_wallet_wrong_network_tip":"정확한 이더리움 네트워크를 연결하세요.","plugin_wallet_on_create":"월렛 만들기","plugin_wallet_on_connect":"월렛 연결하기","plugin_wallet_wrong_network":"잘못된 네트워크","plugin_wallet_pending_transactions":"{{count}} 대기 중","plugin_wallet_import_wallet":"월렛 불러오기","plugin_wallet_select_provider_dialog_title":"월렛 연결","plugin_wallet_qr_code_with_wallet_connect":"WalletConnect와 호환성이 있는 월렛으로 QR 코드를 스칸하세요.","plugin_wallet_token_unlock":"정확 언락","plugin_wallet_token_infinite_unlock":"무한 언락","plugin_wallet_connect_dialog_title":"월렛 연결","plugin_wallet_connect_safari_metamask":"MetaMask 연결하기","plugin_wallet_connect_safari_rainbow":"Rainbow 연결하기","plugin_wallet_connect_safari_trust":"Trust 연결하기","plugin_wallet_connect_safari_im_token":"imToken 연결하기","plugin_wallet_on_connect_in_firefox":"연결","plugin_wallet_return_mobile_wallet_options":"모바일 월렛 옵션으로 돌아가기","plugin_wallet_view_qr_code":"QR 코드 보기","plugin_wallet_switch_network":"{{network}} 네트워크로 바꾸기","plugin_wallet_switch_network_under_going":"{{network}} 네트워크로 바꾸는 중...","plugin_wallet_not_available_on":"{{network}} 에서는 사용할 수 없습니다.","plugin_wallet_connect_wallet":"월렛 연결","plugin_wallet_connect_wallet_tip":"월렛을 연결하세요.","plugin_wallet_name_placeholder":"1-12 자 입력하세요","plugin_wallet_fail_to_sign":"비밀번호 사인 실패합니다.","plugin_wallet_cancel_sign":"서명이 실패되었습니다.","plugin_red_packet_display_name":"플러그인: 빨간 백","plugin_red_packet_erc20_tab_title":"토큰","plugin_red_packet_erc721_tab_title":"수집품","plugin_red_packet_erc721_insufficient_balance":"잔액 부족","plugin_red_packet_details":"행운 드랍 디테일","plugin_red_packet_split_mode":"분할 모드","plugin_red_packet_average":"평균","plugin_red_packet_random":"렌덤","plugin_red_packet_shares":"공유","plugin_red_packet_best_wishes":"행운을 빌어요!","plugin_red_packet_create_new":"새로운 것 만들기","plugin_red_packet_claim":"수령","plugin_red_packet_claiming":"수령 중...","plugin_red_packet_refund":"반환","plugin_red_packet_empty":"비어 있음","plugin_red_packet_data_broken":"데이터 손상으로 인해 레드 패킷을 보낼 수 없습니다. {{duration}} 후 자산을 인출할 수 있습니다.","plugin_red_packet_refunding":"환급 중","plugin_red_packet_select_existing":"기존 빨간 백 선택","plugin_red_packet_share_message_official_account":"{{network}} 네트워크에서 @{{sender}}의 레트 패킷을 받았어요. @{{account}} (mask.io) 팔로우하고 레드 패킷을 받으세요.\\n#mask_io #LuckyDrop\\n{{payload}}","plugin_red_packet_share_message_not_twitter":"{{network}} 에서 @{{sender}} 의 레드 패킷을 클레임했습니다.\\n{{payload}}","plugin_red_packet_nft_share_foreshow_message":"@{{network}} 네트워크에서 @{{sender}} 레트 패킷을 보내고 있습니다. @{{account}} (mask.io) 팔로우하고 NFT 레드 패킷을 받으세요.\\n#mask_io #LuckyDrop\\n{{payload}}","plugin_red_packet_nft_share_foreshow_message_not_twitter":"@{{network}} 네트워크에서 @{{sender}} NFT 레트 패킷을 보내고 있습니다. \\n{{payload}}","plugin_red_packet_nft_share_claimed_message":"{{network}} 네트워크에서 @{{sender}}의 NFT 레트 패킷을 받았어요. @{{account}} (mask.io) 팔로우하고 NFT 레드 패킷을 받으세요.\\n#mask_io #LuckyDrop\\n{{payload}}","plugin_red_packet_nft_share_claimed_message_not_twitter":"{{network}} 에서 @{{sender}} 의 NFT 레드 패킷을 클레임했습니다.\\n{{payload}}","plugin_red_packet_nft_tip":"이것은 NFT 레드 패킷입니다.","plugin_red_packet_attached_message":"첨부 메시지","plugin_red_packet_from":"보낸사람: {{name}}","plugin_red_packet_description_claimed":"이미 수령하였습니다.","plugin_red_packet_description_expired":"이 빨간 백 이미 만료되었습니다.","plugin_red_packet_description_refunded":"이 빨간 백 이미 반환되었습니다.","plugin_red_packet_description_refund":"{{balance}} {{symbol} 반환 가능합니다.","plugin_red_packet_description_empty":"빈 빨간 백입니다.","plugin_red_packet_description_broken":"파손된 빨간 백입니다.","plugin_red_packet_description_failover":"{{name}} / {{shares}}에서 / {{total}} {{symbol}} 공유합니다.","plugin_red_packet_claiming_from":"{{name}}에서 빨간 팩 받는 중","plugin_red_packet_amount_per_share":"공유 총액","plugin_red_packet_send_symbol":"{{symbol}} 보내기","plugin_red_packet_amount_total":"총액","plugin_red_packet_next":"다음","plugin_red_packet_back":"뒤로","plugin_red_packet_hint":"레드 패킷이 공유된 후 24시간 후에 나머지 잔액을 인출할 수 있습니다.","plugin_red_packet_token":"토큰","plugin_red_packet_message_label":"제목","plugin_red_packet_create_with_token":"{{symbol}} 으로 빨간 백 만드는 중","plugin_red_packet_history_duration":"시간: {{startTime}} ~ {{endTime}} (UTC+8)","plugin_red_packet_history_total_amount":"총액: {{amount}} {{symbol}}","plugin_red_packet_history_total_claimed_amount":"전체: {{claimedAmount}}/{{amount}} {{symbol}}","plugin_red_packet_history_claimed":"수령됨: {{claimedShares}}/{{shares}} 공유","plugin_red_packet_history_split_mode":"Split Mode: {{mode}}","plugin_red_packet_history_send":"발송","plugin_red_packet_nft_account_name":"지갑 계정","plugin_red_packet_nft_attached_message":"첨부 메시지","plugin_red_packet_nft_total_amount":"총 금액","plugin_red_packet_completed":"완료됨","plugin_red_packet_expired":"만료됨","plugin_nft_red_packet_data_broken":"테이터 훼손때문에 해당 레드 패킷을 보낼 수 없습니다.","plugin_gitcoin_readme":"이 서비스를 이용하면 Gitcoin 개발 기금에 당신의 기여금의 5%를 기부할 것이다.","plugin_gitcoin_readme_fund_link":"https://gitcoin.co/grants/86/gitcoin-sustainability-fund","plugin_gitcoin_select_a_token":"토큰 선택","plugin_gitcoin_enter_an_amount":"수액 입력","plugin_gitcoin_grant_not_available":"이용 불가","plugin_gitcoin_insufficient_balance":"{{symbol}} 잔액 부족","plugin_gitcoin_donate":"기부","plugin_gitcoin_last_updated":"신규 업데이트","plugin_gitcoin_by":"By","plugin_gitcoin_view_on":"Gitcoin에서 보기","plugin_trader_safety_alert_title":"토큰 안정성 알림","plugin_trader_safety_alert":"누구나 ERC20 토큰을 만들고 이름을 지을 수 있다. 토큰이 없는 프로젝트를 대표한다고 주장하는 토큰과 현존 토큰의 가짜 버전을 만드는 경우도 많습니다. Etherscan과 마찬가지로 이 사이트는 모든 ERC20 토큰에 대한 분석을 자동으로 추적합니다. ERC20 토큰과 상호 작용하기 전에 미리 잘 조사하시길 바랍니다.","plugin_trader_total_supply":"총 공급량","plugin_trader_circulating_supply":"유통량","plugin_trader_volume_24":"거래량 (24시간)","plugin_trader_market_cap":"시가 총액","plugin_trader_data_source":"데이터 소스","plugin_trader_price_updated":"가격은 업데이트뒤었습니다","plugin_trader_swap":"스왑","plugin_trader_wrap":"랩","plugin_trader_unwrap":"언랩","plugin_trader_buy":"구매","plugin_trader_no_data":"데이터 없음","plugin_trader_tab_market":"일반","plugin_trader_tab_price":"가격","plugin_trader_tab_exchange":"교환","plugin_trader_tab_swap":"스왑 🔥","plugin_trader_table_exchange":"교환","plugin_trader_table_pair":"짝","plugin_trader_table_price":"가격","plugin_trader_table_volume":"거래량(24h)","plugin_trader_table_updated":"업데이트","plugin_trader_error_amount_absence":"수액 입력","plugin_trader_error_insufficient_balance":"{{symbol}}잔액 부족","plugin_trader_error_insufficient_lp":"유동성 부족","plugin_trade_error_input_amount_less_minimum_amount":"입력 금액은 최소 금액 이하입니다.","plugin_trader_slippage_tolerance":"슬리피지 톨러런스:","plugin_trader_swap_from":"From","plugin_trader_swap_to":"To(estimated)","plugin_trader_gas_fee":"기스비","plugin_trader_unlock_symbol":"{{symbol}} 언락","plugin_trader_unlock_tips":"{{provider}}에게 {{symbol}} 이용할 수 있는 스마트 컨트랙트 권한을 줘야 합니다. 토큰당 이 작업을 한번만 수행하면 됩니다.","plugin_trader_swap_amount_symbol":"스왑 {{amount}} {{symbol}} ","plugin_trader_confirm_from":"From","plugin_trader_confirm_to":"To","plugin_trader_confirm_max_price_slippage":"최대 가격 슬리피지","plugin_trader_confirm_minimum_received":"촤소 받는 수액","plugin_trader_confirm_tips":"최대 가격 슬리피지를 너무 낮게 설정하면 가격 변동으로 인해 거래가 실패할 수 있습니다.","plugin_trader_max_slippage":"최대 슬리피지","plugin_trader_gas_setting_instant":"즉시","plugin_trader_gas_setting_high":"높음","plugin_trader_gas_setting_medium":"보통","plugin_trader_gas_setting_standard":"표준","plugin_trader_gas_setting_fast":"빠름","plugin_trader_gas_setting_custom":"커스텀","plugin_trader_tx_cost_usd":"(~${{usd}})","plugin_trader_gas_option":"{{option}} ({{value}}) Gwei","plugin_trader_no_enough_liquidity":"유동성 부족","plugin_trader_no_trade":"거래를 선택하세요","plugin_trader_gas":"GAS","plugin_poll_display_name":"플러그인: 투표","plugin_poll_question_hint":"질문하기","plugin_poll_options_hint":"항목","plugin_poll_length":"투표 시간","plugin_poll_length_days":"일","plugin_poll_length_hours":"시간","plugin_poll_length_minutes":"분","plugin_poll_length_unknown":"미지","plugin_poll_create_new":"새로운 투표 만들기","plugin_poll_select_existing":"기존 투표 선택","plugin_poll_send_poll":"투표 보내기","plugin_poll_status_closed":"종료됨","plugin_poll_status_voting":"투표 중","plugin_poll_status_voted":"투표 완료","plugin_poll_deadline":"{{time}} 남은 시간","plugin_ito_empty_token":"이번의 ITO에서 토큰 언락의 필요가 없습니다.","plugin_ito_locked":"ITO 락됨","plugin_ito_share":"공유하기","plugin_ito_enter":"들어가기","plugin_ito_dialog_swap_title":"스왑 {{token}}","plugin_ito_dialog_swap_reminder_title":"스왑 알림","plugin_ito_dialog_swap_unlock_title":"토큰 미리 언락","plugin_ito_dialog_swap_share_title":"공유","plugin_ito_dialog_swap_exchange":"교환 대상","plugin_ito_dialog_swap_panel_title":"스왑","plugin_ito_dialog_swap_exceed_wallet_limit":"한 월렛의 제한을 초과합니다.","plugin_ito_swap_ration_label":"스왑 비율","plugin_ito_swap_unlucky_fail":"운이 안 좋은 것 같습니다. 이더리움 링크에서 원인을 확인하고 다시 시도하세요.","plugin_ito_swap_only_once_remind":"월렛마다 한번만 참여할 수 있습니다.","plugin_ito_swap_title":"{{swap}}마다 {{amount}} {{token}}","plugin_ito_swap_end_date":"종료 날짜: {{date}}","plugin_ito_dialog_claim_reminder_agree":"동의합니다.","plugin_ito_dialog_claim_reminder_text1":"ERC20 토큰은 누구나 이더리움에서 만들 수 있습니다. 기존 토큰의 가짜 버전과 토큰이 없는 프로젝트를 대표한다고 주장하는 토큰도 포함되어 있습니다.","plugin_ito_dialog_claim_reminder_text2":"이 화면은 토큰 주소로 arbitrary tokens 로드할 수 있습니다. arbitrary ERC20 tokens 로드할 때 해당 정보를 수집하고 많이 주의하셔야 합니다.","plugin_ito_dialog_claim_reminder_text3":"arbitrary token 매수하면 디시 매도하지 못할 가능성도 있습니다.","plugin_ito_dialog_claim_reminder_text4":"THE RIGHTS ARE NOT BEING OFFERED OR SOLD AND MAY NOT BE OFFERED OR SOLD, DIRECTLY OR INDIRECTLY, IN WHOLE OR IN PART, IN JURISDICTIONS OR TO WHOM SUCH AN OFFER WOULD BE UNLAWFUL","plugin_ito_expired":"만료됨","plugin_ito_create_new":"새로","plugin_ito_claim_all_title":"토큰 클레임","plugin_ito_claim_all_status_unclaimed":"수령되지 않음","plugin_ito_claim_all_status_locked":"락","plugin_ito_claim_all_unlock_time":"언락 시간: {{time}}","plugin_ito_claim_all_dialog_title":"토큰 수령","plugin_ito_swapping":"운이 좋으면 {{amount}} {{symbol}} 획득 가능합니다. 아니면 ITO 종료된 후, 반환금을 받을 수 있습니다.","plugin_ito_advanced":"고급 옵션","plugin_ito_advanced_ip_region":"IP 지역 제한","plugin_ito_advanced_delay_unlocking":"언락 지연","plugin_ito_advanced_contract":"플러그인 컨트랙트","plugin_ito_select_existing":"이전","plugin_ito_display_name":"ITO 설정","plugin_ito_sell_token":"토큰","plugin_ito_sell_price":"가격","plugin_ito_sell_total_amount":"입력","plugin_ito_allocation_per_wallet":"스왑 제한 {{limit}} {{token}}","plugin_ito_wait_unlock_time":"{{unlockTime}}에 수령하기","plugin_ito_claim":"수령","plugin_ito_claiming":"수령 중","plugin_ito_claim_all":"모두 수령","plugin_ito_qualification_start_time":"자격 인정 시작 시간","plugin_ito_error_qualification_start_time":"주의: 자격 인정 시작 시간이 ITO 종료 시간보다 빨아야 합니다.","plugin_ito_error_invalid_qualification":"무효한 인증 주소입니다.","plugin_ito_unlock_time_cert":"ITO Mask 언락 시간은 {{date}}.","plugin_ito_unlock_time":"언락 시간 {{zone}}","plugin_ito_launch_campaign":"SocialFi Launch Campaign","plugin_ito_total_claimable_count":"전체: ","plugin_ito_qualification_label":"플러그인 컨트랙트","plugin_ito_message_label":"제목","plugin_ito_region_label":"IP 지역 선택","plugin_ito_region_confirm_label":"IP 지역","plugin_ito_region_list":"{{ select }} / {{ all }} 지역","plugin_ito_region_all":"전체 지역","plugin_ito_region_search":"지역 이름을 입력하여 검색하기","plugin_ito_region_ban":"이 풀은 해당 지역의 크리에이터에 의해 금지됩니다.","plugin_ito_next":"다음","plugin_ito_back":"뒤로","plugin_ito_transaction_dialog_summary":"{{amount}} {{symbol}}로 ITO를 만들기","plugin_ito_swap":"스왑","plugin_ito_send_tip":"이전 탭에서 과거의 ITO를 찾을 수 있습니다.","plugin_ito_send_text":"{{total}} {{symbol}} 발송하기","plugin_ito_error_enter_amount":"수액 입력","plugin_ito_error_select_token":"토큰 선택","plugin_ito_error_enter_amount_and_token":"수액을 입력하고 토큰을 선택하세요.","plugin_ito_error_allocation_absence":"스왑 제한 입력","plugin_ito_error_allocation_invalid":"무효 수액","plugin_ito_error_exchange_time":"주의: 시작 시간은 종료 시간보다 늦으면 안됩니다.","plugin_ito_error_unlock_time":"주의: 종료 시간은 언락 시간보다 늦으면 안됩니다.","plugin_ito_error_balance":"{{symbol}} 잔액 부족","plugin_ito_list_start_date":"시작 시간 {{date}}","plugin_ito_list_end_date":"종료 시간 {{date}}","plugin_ito_list_sold_total":"스왑됨","plugin_ito_list_total":"전체:","plugin_ito_list_table_type":"유형","plugin_ito_list_table_price":"스왑 비율","plugin_ito_no_claimable_token":"수령 가능 토큰이 없습니다.","plugin_ito_list_table_sold":"스왑됨","plugin_ito_list_table_got":"잔액","plugin_ito_list_button_send":"발송","plugin_ito_withdraw":"철회","plugin_ito_qualification_loading":"자격 인증...","plugin_ito_qualification_failed":"이 월렛 주소는 리스트에 없습니다.","plugin_ito_withdrawn":"철회됨","plugin_ito_your_swapped_amount":"{{amount}} {{symbol}} 스왑되었습니다.","plugin_ito_your_claimed_amount":"{{amount}} {{symbol}} 수령되었습니다.","plugin_ito_your_refund_amount":"{{amount}} {{symbol}} 반환하기","plugin_ito_unlock_in_advance":"미리 언락하기","plugin_ito_swapped_status":"{{remain}} / {{total}} {{token}} 스왑됨","plugin_ito_congratulations":"축하합니다!","plugin_ito_out_of_stock_hit":"다음에 운이 더 좋으시길 바랍니다","plugin_ito_claim_success_share":"제가 @{{account}} 로 @{{user}}\'s #ITO에 참여하여 ${{symbol}} 스왑을 했습니다. Mask.io를 설치하고 자기만의 ITO를 시작하세요! \\n {{link}}","plugin_ito_claim_success_share_no_official_account":"제가 @{{user}}\'s #ITO에 참여하여 ${{symbol}} 스왑을 했습니다. Mask.io를 설치하고 자기만의 ITO를 시작하세요! \\n {{link}}","plugin_ito_claim_foreshow_share":"{{symbol}}({{name}}) 새로운 #ITO를 진행하고 있습니다. 어서 참가하세요! @{{account}} (mask.io) 팔로우하여 더 많은 이벤트를 참여하세요! \\n {{link}}","plugin_ito_claim_foreshow_share_no_official_account":"{{symbol}}({{name}}) 님이 #ITO를 진행하고 있습니다. 어서 참여하세요! \\n {{link}}","plugin_ito_password":"비밀번호: {{password}}","plugin_ito_status_no_start":"아직 시작하지 않음","plugin_ito_status_ongoing":"진행 중","plugin_ito_status_out_of_stock":"매진됨","plugin_ito_loading":"ITO 로딩 중...","plugin_ito_amount_unlocked":"{{amount}} {{symbol}} 언락됨","plugin_ito_amount_unlocked_infinity":"언락된 인피니티 {{symbol}}","plugin_ito_unlocking_symbol":"{{symbol}} 언락 중","plugin_ito_continue":"다음","plugin_ito_view_on_explorer":"Explorer에서 보기","plugin_collectible_you":"You","plugin_collectible_done":"닫기","plugin_collectible_retry":"다시 시도하기","plugin_collectible_sell":"매도","plugin_collectible_checkout":"확인하기","plugin_collectible_place_bid":"입찰","plugin_collectible_buy_now":"바로 구매","plugin_collectible_make_offer":"오퍼하기","plugin_collectible_post_listing":"포스트 리스팅","plugin_collectible_description":"현재의 가격은 {{price}} {{symbol}}.","plugin_collectible_article":"글","plugin_collectible_overview":"오버뷰","plugin_collectible_details":"디테일","plugin_collectible_offers":"오퍼","plugin_collectible_listing":"리스팅","plugin_collectible_history":"역사 기록","plugin_collectible_event":"이벤트","plugin_collectible_unit_price":"단위 가격","plugin_collectible_price":"가격","plugin_collectible_from":"보낸 사람","plugin_collectible_to":"받는 사람","plugin_collectible_date":"날짜","plugin_collectible_quantity":"수령","plugin_collectible_expiration":"종료","plugin_collectible_no_offers":"오버 없음","plugin_collectible_no_listings":"리스팅 없음","plugin_collectible_base":"베이스","plugin_collectible_properties":"속성","plugin_collectible_about":"정보","plugin_collectible_chain_info":"체인 정보","plugin_collectible_contract_address":"컨트랙트 주소","plugin_collectible_token_id":"토큰 ID","plugin_collectible_block_chain":"불록체인","plugin_collectible_create_by":"만든사람:","plugin_collectible_owned_by":"소유자:","plugin_collectible_view_on":"View on","plugin_collectible_no_history":"기록없음","plugin_collectible_ensure_unreviewed_item":"리뷰되지 않는 아이템을 확인하세요","plugin_collectible_check_tos_document":"ToS 파일을 확인하세요","plugin_collectible_insufficient_offer":"오버 보족","plugin_collectible_not_been_reviewed_by_opensea":"해당 아이템은 OpenSea에게 리뷰하지 않습니다.","plugin_collectible_reviewed_tips":"주의: 블록체인에서 임의\\n 이름으로 디지털 아이템을 만드는 것을 누구나 할 수 있습니다(기존 아이템의 가짜 버전도 포함됨). 해당 아이템과 상호작용할 때 주의하시고 사전 조사\\n 많이 하셔야 합니다.","plugin_collectible_total":"전체","plugin_collectible_subtotal":"소계","plugin_collectible_item":"아이템","plugin_collectible_approved_tips":"이 박스를 체크하면 해당 아이템은 아직 OpenSea에게 리뷰\\n 되거나 인증되지 않는 것을 인정합니다.","plugin_collectible_agree_terms":"이 박스를 체크하면 OpenSea의 항목과 서비스 동의합니다.","plugin_collectible_convert_eth":" ETH 전환","plugin_collectible_sale_end":"세일 종료 시간: {{time}}","plugin_collectible_set_initial_price":"시작 가격 설치","plugin_collectible_ending_price_tip":"해당 아이템이 바뀌거나 취소되지 않으면 세일은 계속 진행하겠습니다.","plugin_collectible_starting_price":"시작 가격","plugin_collectible_ending_price":"종료 가격","plugin_collectible_ending_price_less_than_staring":"시작 가격보다 낮거나 같아야 합니다. 가격은 종료시간이 되기 전에 이 금액까지 선형적으로 진행됩니다.","plugin_collectible_expiration_date":"종료 시간","plugin_collectible_schedule_date":"예정 시간","plugin_collectible_auto_cancel_tip":"해당 리스팅은 이 시간에 작동적으로 종료됩니다. 취소 안 해도 됩니다.","plugin_collectible_schedule_future_date":"미래의 시간을 정하세요.","plugin_collectible_buyer_address":"구매자 주소","plugin_collectible_buyer_address_placeholder":"구매자 주소 입력","plugin_collectible_buyer_address_helper_text":"해당 상품은 저정된 구매자만 구매 가능합니다.","plugin_collectible_include_ending_price":"종료 가격 추가","plugin_collectible_include_ending_price_helper":"종료 가격을 추가하면 해당 리스팅의 만료가 가능하게 되거나 구매자를 찾을 때까지 가격이 지속적으로 낮아지게 됩니다.","plugin_collectible_schedule_for_a_future_time":"미래 시간 예정","plugin_collectible_schedule_for_a_future_time_helper":"해당 리스팅은 지정된 시간에만 구매될 수 있도록 설치할 수 있습니다.","plugin_collectible_privacy":"프라이버시","plugin_collectible_privacy_helper":"해당 리스팅은 모든 이용자에게 공개하거나 저정된 주소만 구매 가능하도록 설치할 수 있습니다.","plugin_collectible_enter_a_price":"가격 입력","plugin_collectible_insufficient_balance":"잔액 부족","plugin_collectible_invalid_schedule_date":"무효한 일정 날짜","plugin_collectible_invalid_ending_price":"무효한 종료 가격","plugin_collectible_invalid_expiration_date":"무효한 종료 시간","plugin_collectible_invalid_buyer_address":"무효한 구매자 주소","plugin_collectible_set_price":"가격 설정","plugin_collectible_highest_bid":"최고 비드","plugin_collectible_minimum_bid":"최저 비드","plugin_collectible_set_starting_bid_price":"시작 경매 가격 설정","plugin_collectible_reserve_price":"최저 경매 가격","plugin_collectible_reserve_price_helper":"최저 경매 가격을 설치하여 숨겨진 제한을 만듭니다. 최저 경매 가격은 시작 가격보다 낮거나 같아야 합니다.","plugin_collectible_auction_auto_end":"이 사간에 해당 경매은 자동적으로 종료되고 최고 경매자가 낙찰됩니다. 최소 안 해도 됩니다.","plugin_collectible_enter_minimum_bid":"최저 비드 입력","plugin_collectible_enter_reserve_price":"최저 경매 가격 입력","plugin_collectible_invalid_reserve_price":"무효한 최저 경매 가격입니다.","plugin_collectible_place_a_bid":"입찰","plugin_collectible_make_an_offer":"오퍼하기","plugin_collectible_approved_by_open_sea":"이 백스를 체크하면 OpenSea에서 이 항목을 리뷰받거나 승인받지 않았다는 것을 알 수 있습니다.","plugin_collectible_legal_text":"이 박스를 체크하면 OpenSea의 항목과 서비스 동의합니다.","plugin_cryptoartai_description_title":"설명","plugin_cryptoartai_edition":"Edition of","plugin_cryptoartai_operator":"오퍼레이터","plugin_cryptoartai_activity_type":"유형","plugin_cryptoartai_status":"상태","plugin_cryptoartai_time":"시간","plugin_cryptoartai_price":"가격","plugin_cryptoartai_tx":"Tx","plugin_cryptoartai_latest_bid":"최근 입찰","plugin_cryptoartai_description":"Current Bid is {{bidPrice}}{{symbol}}, price is {{price}}{{symbol}}. Edition {{soldNum}} of {{totalAvailable}} #{{editionNumber}}.","plugin_snapshot_info_title":"정보","plugin_snapshot_info_strategy":"전략","plugin_snapshot_info_author":"저자","plugin_snapshot_info_ipfs":"IPFS","plugin_snapshot_info_start":"시작 날짜","plugin_snapshot_info_end":"종료 날짜","plugin_snapshot_info_snapshot":"스냅숏","plugin_snapshot_result_title":"결과","plugin_snapshot_votes_title":"투표","plugin_snapshot_no_power":"파워없음","plugin_snapshot_vote_success":"투표가 시작되었습니다.","plugin_snapshot_vote":"투표","plugin_snapshot_vote_choice":"선택","plugin_snapshot_vote_power":"투표 파워","plugin_snapshot_vote_title":"투표하세요.","plugin_snapshot_vote_confirm_dialog_title":"투표 확인","plugin_snapshot_vote_confirm_dialog_choice":" 「{{ choiceText }}」 투표하시겠습니까?","plugin_snapshot_vote_confirm_dialog_warning":"이 조작은 취소할 수 없습니다.","plugin_snapshot_current_result_title":"현재 결과","plugin_snapshot_download_report":"다운로드 리포트","plugin_find_truman_no_participation_tip":"아직 아무 투표에 참여하지 않았습니다.","plugin_dhedge_managed_by":"관리자: {{managerName}}","plugin_dhedge_manager_share":"풀의 {{managerShare}}% 홀드합니다.","plugin_dhedge_manager_share_more_than_50":"이 풀의 50% 이상을 보유합니다","plugin_dhedge_value_managed":"VALUE MANAGED","plugin_dhedge_lifetime_return":"LIFETIME RETURN","plugin_dhedge_risk_factor":"RISK FACTOR","plugin_dhedge_tab_stats":"통계","plugin_dhedge_tab_chart":"차트","plugin_dhedge_strategy":"전략","plugin_dhedge_see_less":"접어 보기","plugin_dhedge_see_more":"더보기","plugin_dhedge_no_data":"데이터 없음","plugin_dhedge_fetch_error":"데이터를 불러올 수 없습니다. 다시 시도하세요!","plugin_dhedge_loading_chart":"로딩 중","plugin_dhedge_invest":"투자","plugin_dhedge_buy_token":"{{symbol}} 획득","plugin_dhedge_enter_an_amount":"수액 입력","plugin_dhedge_insufficient_balance":"{{symbol}} 잔액 부족","plugin_dhedge_loading":"로딩 중","plugin_dhedge_pool_not_found":"무효한 풀 주소!","plugin_dhedge_smt_wrong":"오류가 발생합니다.","plugin_pooltogether_tab_pools":"풀(Pools)","plugin_pooltogether_tab_account":"계정","plugin_pooltogether_no_pool":"해당 네트워크에서 풀이 없습니다.","plugin_pooltogether_pool_ended":"수상됨","plugin_pooltogether_deposit":"입금 {{token}}","plugin_pooltogether_apr":"{{token}} 로 {{apr}}% APR 받습니다","plugin_pooltogether_view_pool":"View pool","plugin_pooltogether_prize":"{{period}} 가격","plugin_pooltogether_share":"I just deposit {{amount}} {{cashTag}}{{symbol}} into the {{pool}}, can I win the lottery this week?\\nFollow @PoolTogether_ and @{{account}} (mask.io) to deposit in PoolTogether\'s pools.\\n#pooltogether #mask_io","plugin_pooltogether_share_no_official_account":"{{pool}} 에서 {{amount}} {{cashTag}}{{symbol}} 예금했습니다, 이번 주 당첨될 수 있을까요?","plugin_pooltogether_buy":"{{symbol}} 획득","plugin_pooltogether_enter_an_amount":"금액 입력","plugin_pooltogether_insufficient_balance":"{{symbol}} 잔액 부족","plugin_pooltogether_deposit_title":"{{token}} 입금","plugin_pooltogether_odds_title":"새로운 우승 확률:","plugin_pooltogether_odds_value":"1 in {{value}} {{period}}!","plugin_pooltogether_short_odds_value":"1 in {{value}}","plugin_pooltogether_my_deposits":"입금 총액","plugin_pooltogether_no_account_pool":"해당 네트워크에서 풀이 없습니다.","plugin_pooltogether_missing_pool":"입금 좀 놓쳤나요? 전체 목록 확인:\\n","plugin_pooltogether_winning_odds":"우승 확율:","plugin_pooltogether_in":"in","plugin_pooltogether_manage":"관리","plugin_pooltogether_token_not_found":"토큰 찾을 수 없음","plugin_good_ghosting_loading_other_player_stats":"다른 참여자 정보 로딩","plugin_good_ghosting_loading_game_stats":"게임 정보 로딩","plugin_good_ghosting_game_duration":"게임 기간","plugin_good_ghosting_current_round":"현재 라운드","plugin_good_ghosting_recurring_deposit":"라운드당 입금","plugin_good_ghosting_round_length":"라운드 기간","plugin_good_ghosting_pool_apy":"풀 APY","plugin_good_ghosting_pool_earnings":"풀 수익","plugin_good_ghosting_extra_rewards":"추가 보상","plugin_good_ghosting_total_saved":"입금 총량","plugin_good_ghosting_game_launched":"게임 런칭","plugin_good_ghosting_join_round":"라운드 참여","plugin_good_ghosting_join_deadline":"마감 시간","plugin_good_ghosting_deposit":"입금 {{index}}","plugin_good_ghosting_deposit_deadline":"입금 마감 시간 {{index}}","plugin_good_ghosting_waiting_round":"대기 라운드","plugin_good_ghosting_waiting_round_end":"대기 기간 종료","plugin_good_ghosting_withdraw":"철회","plugin_good_ghosting_all_players_status_winning":"우승","plugin_good_ghosting_all_players_status_waiting":"대기 중","plugin_good_ghosting_all_players_status_ghost":"Ghosts","plugin_good_ghosting_all_players_status_dropout":"탈퇴자","plugin_good_ghosting_status_winning":"우승","plugin_good_ghosting_status_waiting":"대기 중","plugin_good_ghosting_status_ghost":"Ghost","plugin_good_ghosting_status_dropout":"철회됨","plugin_good_ghosting_status_unknown":"미지","plugin_good_ghosting_status":"상태","plugin_good_ghosting_deposits":"입금 만들기","plugin_good_ghosting_total_deposited":"입금 총액","plugin_good_ghosting_address":"주소","plugin_good_ghosting_not_a_participant":"게임에 참여하지 않은 것 같습니다.","plugin_good_ghosting_next_event":"다음으로 넘어갑니다","plugin_good_ghosting_game_end":"게임이 종료되었습니다","plugin_good_ghosting_game_over":"게임 종료","plugin_good_ghosting_participants_withdraw":"참여자들이 수익을 받을 수 있습니다.","plugin_good_ghosting_join_game":"게임 참여","plugin_good_ghosting_make_deposit":"입금하기","plugin_good_ghosting_join_help_text":"{{amount}} {{token}} 입금하여 해당 저금 풀에 참여하세요. 우승하려면 마감 시간 전에 저금 풀에서 돈을 입금해야 됩니다.","plugin_good_ghosting_deposit_help_text":"우승 기회를 얻으려면 이 라운드에서 {{segmentPayment}} {{token}} 입금하세요.","plugin_good_ghosting_withdraw_help_text":"게임은 이미 종료되었습니다. 입금과 수익을 받을 수 있습니다.","plugin_good_ghosting_leave_game":"게임에서 나가기","plugin_good_ghosting_early_withdraw_info":"진행 중인 게임에서 탈퇴하려면 나머지 참여자에게 보상하기 위해 {{amount}} {{token}} 부과될 수 있습니다.","plugin_good_ghosting_rules":"규칙","plugin_good_ghosting_game_rules":"우승을 위해 {{roundCount}} 라운드 기간에 라운드마다 {{amount}} {{token}} 입금해야 합니다. 다른 참여자가 입금을 놓쳐서 ghost가 되면 그의 수익은 당신의 수익의 일부가 될 수 있습니다.","plugin_good_ghosting_tx_fail":"거래를 완료하지 못했습니다.","plugin_good_ghosting_tx_timeout":"거래 상태를 확인할 수 없습니다.","plugin_good_ghosting_something_went_wrong":"오류가 발생했습니다. 다시 시도해주세요.","plugin_good_ghosting_view_on_explorer":"Explorer에서 보기","plugin_good_ghosting_checking_balance":"잔액 확인","plugin_good_ghosting_insufficient_balance":"월렛에서 최소 {{amount}} {{token}} 필요합니다.","plugin_good_ghosting_balance_error":"잔액 확인 실패. 다시 시도하세요.","plugin_unlockprotocol_buy_lock":"Buy Lock","plugin_unlockprotocol_no_access":"해당 내용에 접근할 수 없습니다.","plugin_unlockprotocol_select_unlock_lock":"언락 락 선택","plugin_unlockprotocol_no_lock_found":"락을 찾을 수 없습니다. 크리에이터 대시보드에서 자기의 락을 만드세요.","plugin_unlockprotocol_submit_post":"포스트 제출","plugin_unlockprotocol_title":"언락 프로토콜","plugin_unlockprotocol_server_error":"서버 오류 발생했습니다. 다시 시도 하세요.","plugin_furucombo_tab_pool":"풀","plugin_furucombo_tab_investments":"전체 투자","plugin_furucombo_liquidity":"유동성","plugin_furucombo_annual_percentage_yield":"Apy","plugin_furucombo_rewards":"보상","plugin_furucombo_invest":"투자","plugin_furucombo_pool_not_found":"무효한 풀 주소.","plugin_furucombo_smt_wrong":"오류가 발생합니다!","plugin_furucombo_head_pools":"풀(Pools)","plugin_furucombo_head_action":"행동","popups_welcome":"환영합니다","popups_wallet_token":"토큰","popups_wallet_go_back":"돌아가기","popups_wallet_start_up_tip":"월렛 연결. 새로운 월렛을 만들거나 시드 문구로 기존 월렛을 복구하세요.","popups_wallet_name_placeholder":"1-12 자 입력하세요","popups_wallet_tab_assets":"자산","popups_wallet_tab_activity":"활동","popups_wallet_derivation_path":"파생 경로 ({{ path }})","popups_wallet_next":"다음","popups_wallet_backup_wallet":"월렛 백업","popups_wallet_backup_json_file":"JSON 파일","popups_wallet_backup_private_key":"개인 키","popups_wallet_backup_json_file_confirm_password_tip":"이 파일은 현재의 비밀번호로 암호화되어 저장되었습니다. 월렛을 불러올 때 이 파일 해독을 위해 현재의 비밀번호가 필요합니다.","popups_wallet_backup_private_key_tip":"다른 사람에게 개인 키를 보여주면 안됩니다. 개인 키은 EVM 호환 체인을 지원하는 모든 월렛에서 해독없이 사용할 수 있습니다.","popups_wallet_backup_input_password":"비밀번호 입력","popups_wallet_backup_json_file_drag_tip":"파일은 여기서 끌어들이세요.","popups_wallet_backup_json_file_click_tip":"클릭 또는 파일을 여기로 끌어들이세요","popups_wallet_enter_your_wallet_name":"월렛 이름 입력","popups_wallet_delete_tip":"이 월렛을 삭제하시겠습니까? 시드 문구가 없으면 월렛을 복구할 수 없습니다.","popups_wallet_confirm_payment_password":"지불 비밀번호로 확인하세요.","popups_wallet_token_buy":"구매","popups_wallet_token_send":"발송","popups_wallet_token_swap":"스왑","popups_wallet_view_on_explorer":"Explorer에서 보기","popups_wallet_gas_fee_settings":"기스비 설정","popups_wallet_gas_fee_settings_description":"기스비는 이더리움의 마이너에게 지불하는 겁니다. 마이너가 더 높은 가스비로 거래를 포장하기를 선호합니다. 낮은 가스비로 거래가 실패될 수 있고 지불된 가스비 반환될 수 없습니다.","popups_wallet_gas_fee_settings_low":"낮음","popups_wallet_gas_fee_settings_medium":"보통","popups_wallet_gas_fee_settings_high":"높음","popups_wallet_gas_fee_settings_usd":" ≈ ${{usd}}","popups_wallet_gas_fee_settings_gas_limit":"가스 한도","popups_wallet_gas_fee_settings_max_priority_fee":"최대 우선 가스비","popups_wallet_gas_fee_settings_max_fee":"최대 가스비","popups_wallet_gas_fee_settings_min_gas_limit_tips":"최소한 가스비는 {{limit}} 입니다","popups_wallet_unsupported_network":"지원되지 않는 네트워크","popups_wallet_signature_request":"서명","popups_wallet_signature_request_message":"메시지","popups_wallet_contract_interaction":"컨트렉트 인터액션","popups_wallet_contract_interaction_transfer":"전송","popups_wallet_contract_interaction_gas_fee":"기스비","popups_wallet_contract_interaction_edit":"수정","popups_wallet_contract_interaction_total":"총액","popups_wallet_unlock_wallet":"월렛 언락","popups_wallet_unlock_error_password":"잘못된 비밀번호","popups_wallet_activity_to_address":"받는 주소: {{address}}","popups_wallet_transfer_error_tip":"네트워크 연결 실패나 컨트렉트 오류때문에 발송 거래가 실패되었습니다.","popups_wallet_transactions_pending":"대기중...","popups_wallet_re_send":"다시 보내기","popups_wallet_choose_token":"토큰 선택","popups_wallet_gas_price":"가스 가격","popups_missing_parameter_caption":"이 페이지를 닫아세요.","popups_persona_connect_to":"{{type}} 에 연결하기","popups_persona_disconnect":"연결 끊기","popups_persona_logout":"로그아웃","popups_persona_disconnect_tip":"로그아웃 후, 연결된 소셜 계정은 더 이상 암호화하거나 해독할 수 없습나다. 계정을 다시 이용하려면 아이덴티티, 개인 키, 로컬이나 클라우드 백업으로 복원할 수 있습니다.","popups_persona_persona_name_exists":"이미 존재된 페르소나입니다","popups_password_do_not_match":"잘못된 백업 비밀번호","popups_backup_password":"백업 비밀번호","popups_rename_error_tip":"최대 길이는 {{length}} 자입니다.","nft_button_set_avatar":"NFT 아바타 설정"}'); -;// CONCATENATED MODULE: ./shared-ui/locales/qya-AA.json -const qya_AA_namespaceObject = JSON.parse('{"database_backup":"crwdns10051:0crwdne10051:0","database_overwrite":"crwdns10053:0crwdne10053:0","database_clear":"crwdns10055:0crwdne10055:0","debug_new_bug_issue":"crwdns10057:0crwdne10057:0","debug_metadata_title":"crwdns10059:0crwdne10059:0","debug_metadata_put_metadata":"crwdns10061:0crwdne10061:0","edit":"crwdns10063:0crwdne10063:0","clear":"crwdns10065:0crwdne10065:0","more":"crwdns10067:0crwdne10067:0","approve":"crwdns10069:0crwdne10069:0","address":"crwdns10071:0crwdne10071:0","operation":"crwdns10075:0crwdne10075:0","gas_limit":"crwdns10077:0crwdne10077:0","gas_price":"crwdns10079:0crwdne10079:0","redirect_to":"crwdns10081:0crwdne10081:0","sign":"crwdns10085:0crwdne10085:0","reload":"crwdns10087:0crwdne10087:0","load":"crwdns10089:0crwdne10089:0","load_all":"crwdns10093:0crwdne10093:0","no_data":"crwdns10097:0crwdne10097:0","tip":"crwdns10105:0crwdne10105:0","tags":"crwdns10107:0crwdne10107:0","contract":"crwdns10109:0crwdne10109:0","initializing":"crwdns10111:0crwdne10111:0","redirect_alert":"crwdns10113:0crwdne10113:0","typed_message_text_alert":"crwdns10117:0crwdne10117:0","badge_renderer_provided_by_plugin":"crwdns10119:0crwdne10119:0","add_token":"crwdns3983:0crwdne3983:0","add_nft_contract_search_hint":"crwdns8123:0crwdne8123:0","applications":"crwdns9513:0crwdne9513:0","additional_post_box__encrypted_post_pre":"crwdns3991:0{{encrypted}}crwdne3991:0","additional_post_box__encrypted_post_pre_red_packet_twitter_official_account":"crwdns9169:0{{account}}crwdnd9169:0{{encrypted}}crwdne9169:0","additional_post_box__encrypted_post_pre_red_packet":"crwdns3995:0{{encrypted}}crwdne3995:0","additional_post_box__steganography_post_pre":"crwdns3997:0{{random}}crwdne3997:0","auto_paste_failed_dialog_title":"crwdns3999:0crwdne3999:0","auto_paste_failed_dialog_content":"crwdns4001:0crwdne4001:0","auto_paste_failed_dialog_image_caption":"crwdns4003:0crwdne4003:0","auto_paste_failed_snackbar":"crwdns4005:0crwdne4005:0","auto_paste_failed_snackbar_action":"crwdns4007:0crwdne4007:0","auto_paste_failed_snackbar_action_close":"crwdns9363:0crwdne9363:0","automation_request_click_post_button":"crwdns4009:0crwdne4009:0","try_again":"crwdns8125:0crwdne8125:0","ok":"crwdns12997:0crwdne12997:0","start":"crwdns12999:0crwdne12999:0","cancel":"crwdns4025:0crwdne4025:0","twitter_account":"crwdns9171:0crwdne9171:0","facebook_account":"crwdns9173:0crwdne9173:0","comment_box__placeholder":"crwdns4027:0crwdne4027:0","confirm":"crwdns4029:0crwdne4029:0","copy_text":"crwdns4031:0crwdne4031:0","loading_failed":"crwdns8127:0crwdne8127:0","copy_image":"crwdns4033:0crwdne4033:0","copy_success_of_wallet_addr":"crwdns4035:0crwdne4035:0","copy_success_of_text":"crwdns4037:0crwdne4037:0","copy_success_of_image":"crwdns4039:0crwdne4039:0","connecting":"crwdns4043:0crwdne4043:0","create":"crwdns4047:0crwdne4047:0","copied":"crwdns9361:0crwdne9361:0","daily":"crwdns4057:0crwdne4057:0","dashboard_tab_collectibles":"crwdns4063:0crwdne4063:0","dashboard_no_collectible_found":"crwdns4105:0crwdne4105:0","dashboard_collectible_menu_all":"crwdns14532:0{{count}}crwdne14532:0","days":"crwdns4107:0{{days}}crwdne4107:0","decrypted_postbox_add_recipients":"crwdns4109:0crwdne4109:0","decrypted_postbox_decrypting":"crwdns4111:0crwdne4111:0","decrypted_postbox_decoding":"crwdns4113:0crwdne4113:0","decrypted_postbox_decrypting_finding_person_key":"crwdns4115:0crwdne4115:0","decrypted_postbox_decrypting_finding_post_key":"crwdns4117:0crwdne4117:0","decrypted_postbox_author_mismatch":"crwdns4119:0{{name}}crwdne4119:0","decrypted_postbox_title":"crwdns4121:0crwdne4121:0","dismiss":"crwdns4123:0crwdne4123:0","delete":"crwdns4127:0crwdne4127:0","delete_wallet":"crwdns4135:0crwdne4135:0","hide_token":"crwdns4139:0crwdne4139:0","hide_token_hint":"crwdns4141:0{{token}}crwdne4141:0","done":"crwdns4145:0crwdne4145:0","download":"crwdns4147:0crwdne4147:0","failed":"crwdns9389:0crwdne9389:0","buy_now":"crwdns4169:0crwdne4169:0","setup_guide_login":"crwdns13001:0crwdne13001:0","setup_guide_find_username_text":"crwdns4175:0crwdne4175:0","setup_guide_connect_auto":"crwdns4177:0crwdne4177:0","setup_guide_connect_failed":"crwdns4179:0crwdne4179:0","setup_guide_verify":"crwdns14586:0crwdne14586:0","setup_guide_verify_should_change_profile":"crwdns14798:0crwdne14798:0","setup_guide_verify_dismiss":"crwdns14588:0crwdne14588:0","setup_guide_verify_checking":"crwdns14590:0crwdne14590:0","setup_guide_verify_post_not_found":"crwdns14592:0crwdne14592:0","setup_guide_verifying":"crwdns14594:0crwdne14594:0","setup_guide_verifying_failed":"crwdns14596:0crwdne14596:0","user_guide_tip_connected":"crwdns9081:0crwdne9081:0","user_guide_tip_need_verify_on_next_id":"crwdns14598:0crwdne14598:0","setup_guide_say_hello_content":"crwdns13003:0crwdne13003:0","setup_guide_say_hello_follow":"crwdns13167:0{{account}}crwdne13167:0","setup_guide_pin_tip":"crwdns14600:0crwdne14600:0","setup_guide_pin_tip_step_click_left":"crwdns14602:0crwdne14602:0","setup_guide_pin_tip_step_click_right":"crwdns14604:0crwdne14604:0","setup_guide_pin_tip_step_find_left":"crwdns14606:0crwdne14606:0","setup_guide_pin_tip_step_find_right":"crwdns14608:0crwdne14608:0","setup_guide_pin_tip_successfully":"crwdns14610:0crwdne14610:0","user_guide_tip_1":"crwdns9059:0crwdne9059:0","user_guide_tip_2":"crwdns9061:0crwdne9061:0","user_guide_tip_3":"crwdns13019:0crwdne13019:0","create_persona":"crwdns10317:0crwdne10317:0","connect_persona":"crwdns10319:0crwdne10319:0","please_create_persona":"crwdns10807:0crwdne10807:0","please_connect_persona":"crwdns10809:0crwdne10809:0","mask_network":"crwdns10321:0crwdne10321:0","import":"crwdns4193:0crwdne4193:0","no_search_result":"crwdns4217:0crwdne4217:0","set_nft_profile_photo":"crwdns14582:0crwdne14582:0","use_nft":"crwdns14584:0crwdne14584:0","loading":"crwdns8031:0crwdne8031:0","unlock":"crwdns8033:0crwdne8033:0","payload_bad":"crwdns4227:0crwdne4227:0","payload_incomplete":"crwdns4229:0crwdne4229:0","payload_not_found":"crwdns4231:0crwdne4231:0","payload_throw_in_alpha41":"crwdns4233:0crwdne4233:0","personas":"crwdns4237:0crwdne4237:0","browser_action_enter_dashboard":"crwdns4247:0crwdne4247:0","pending":"crwdns9391:0crwdne9391:0","popups_initial_tips":"crwdns7755:0{{type}}crwdne7755:0","beta_sup":"crwdns10125:0crwdne10125:0","post_dialog_plugins_experimental":"crwdns10127:0crwdne10127:0","post_dialog__button":"crwdns4257:0crwdne4257:0","post_dialog__image_payload":"crwdns4261:0crwdne4261:0","post_dialog__more_options_title":"crwdns4263:0crwdne4263:0","post_dialog__placeholder":"crwdns4265:0crwdne4265:0","post_dialog__select_recipients_end_to_end":"crwdns7719:0crwdne7719:0","post_dialog__select_recipients_share_to_everyone":"crwdns4269:0crwdne4269:0","post_dialog__select_recipients_title":"crwdns4271:0crwdne4271:0","post_dialog__select_specific_e2e_target_title":"crwdns7721:0{{selected}}crwdne7721:0","post_dialog__title":"crwdns4275:0crwdne4275:0","post_dialog_enable_paste_auto":"crwdns10129:0crwdne10129:0","post_modal_hint__button":"crwdns4277:0crwdne4277:0","hide":"crwdns4293:0crwdne4293:0","reset":"crwdns4301:0crwdne4301:0","editor":"crwdns10131:0crwdne10131:0","retry":"crwdns4303:0crwdne4303:0","rename":"crwdns4309:0crwdne4309:0","search":"crwdns4327:0crwdne4327:0","go_wrong":"crwdns10133:0crwdne10133:0","search_box_placeholder":"crwdns4331:0crwdne4331:0","select_all":"crwdns4333:0crwdne4333:0","select_none":"crwdns4335:0crwdne4335:0","all_friends":"crwdns4337:0crwdne4337:0","select_specific_friends_dialog__button":"crwdns4339:0crwdne4339:0","select_specific_friends_dialog__title":"crwdns4341:0crwdne4341:0","service_decryption_failed":"crwdns4343:0crwdne4343:0","service_invalid_backup_file":"crwdns4345:0crwdne4345:0","service_unknown_payload":"crwdns4357:0crwdne4357:0","service_username_invalid":"crwdns4359:0crwdne4359:0","speed_up":"crwdns9393:0crwdne9393:0","save":"crwdns10439:0crwdne10439:0","skip":"crwdns4463:0crwdne4463:0","next":"crwdns9067:0crwdne9067:0","try":"crwdns9083:0crwdne9083:0","share":"crwdns4465:0crwdne4465:0","share_to":"crwdns4467:0crwdne4467:0","sharing":"crwdns4469:0crwdne4469:0","transfer":"crwdns4471:0crwdne4471:0","export":"crwdns9305:0crwdne9305:0","wallet_load_retry":"crwdns10135:0{{symbol}}crwdne10135:0","wallet_name":"crwdns4487:0crwdne4487:0","wallet_rename":"crwdns4489:0crwdne4489:0","wallet_add_nft_invalid_owner":"crwdns7723:0crwdne7723:0","wallet_add_nft_already_added":"crwdns8131:0crwdne8131:0","wallet_loading_token":"crwdns8133:0crwdne8133:0","wallet_loading_nft_contract":"crwdns8135:0crwdne8135:0","wallet_search_contract_no_result":"crwdns8137:0crwdne8137:0","wallet_search_no_result":"crwdns8139:0crwdne8139:0","wallet_confirm_with_password":"crwdns10141:0crwdne10141:0","wallet_airdrop_nft_unclaimed_title":"crwdns8093:0crwdne8093:0","plugin_not_enabled":"crwdns10811:0{{plugin}}crwdne10811:0","plugin_external_unknown_plugin":"crwdns10143:0crwdne10143:0","plugin_external_loader_search_holder":"crwdns10145:0crwdne10145:0","plugin_external_loader_search_button":"crwdns10147:0crwdne10147:0","plugin_external_loader_search_sub_title":"crwdns10149:0crwdne10149:0","plugin_external_loader_alert":"crwdns10151:0crwdne10151:0","plugin_external_loader_example_github":"crwdns10153:0crwdne10153:0","plugin_external_loader_intro":"crwdns10155:0crwdne10155:0","plugin_external_loader_alert_title":"crwdns10157:0crwdne10157:0","plugin_external_plugin_url":"crwdns10159:0crwdne10159:0","plugin_external_unverified_publisher":"crwdns10161:0{{publisher}}crwdne10161:0","plugin_external_entry_title":"crwdns10163:0crwdne10163:0","plugin_external_name":"crwdns10165:0crwdne10165:0","plugin_external_get_started":"crwdns10167:0crwdne10167:0","plugin_airdrop_nft_start_time":"crwdns8095:0{{date}}crwdne8095:0","plugin_airdrop_nft_end_time":"crwdns8097:0{{date}}crwdne8097:0","plugin_airdrop_nft_expired":"crwdns8099:0crwdne8099:0","plugin_airdrop_nft_claim":"crwdns8101:0crwdne8101:0","plugin_airdrop_nft_claimed":"crwdns8103:0crwdne8103:0","plugin_airdrop_nft_check":"crwdns8105:0crwdne8105:0","plugin_airdrop_nft_check_address":"crwdns8107:0crwdne8107:0","plugin_airdrop_nft_none_to_claim":"crwdns8111:0crwdne8111:0","plugin_airdrop_nft_number_to_claim":"crwdns8115:0{{count}}crwdnd8115:0{{name}}crwdne8115:0","plugin_airdrop_nft_claim_all":"crwdns8117:0crwdne8117:0","plugin_airdrop_nft_claim_successful":"crwdns8119:0crwdne8119:0","plugin_airdrop_nft_claim_failed":"crwdns8121:0crwdne8121:0","wallet_balance":"crwdns4505:0crwdne4505:0","wallet_balance_eth":"crwdns10189:0crwdne10189:0","wallet_new":"crwdns4511:0crwdne4511:0","wallets":"crwdns4515:0crwdne4515:0","wallet_status_button_change":"crwdns4519:0crwdne4519:0","wallet_status_button_disconnect":"crwdns4521:0crwdne4521:0","wallet_status_button_disconnecting":"crwdns10415:0crwdne10415:0","wallet_status_button_copy_address":"crwdns4523:0crwdne4523:0","wallet_transfer_account":"crwdns10191:0crwdne10191:0","wallet_transfer_receiving_account":"crwdns10193:0crwdne10193:0","wallet_transfer_to_address":"crwdns4529:0crwdne4529:0","wallet_transfer_send":"crwdns4539:0crwdne4539:0","wallet_transfer_1559_placeholder":"crwdns10433:0crwdne10433:0","wallet_transfer_title":"crwdns4541:0crwdne4541:0","wallet_transfer_error_amount_absence":"crwdns4543:0crwdne4543:0","wallet_transfer_error_address_absence":"crwdns4545:0crwdne4545:0","wallet_transfer_error_same_address_with_current_account":"crwdns11863:0crwdne11863:0","wallet_transfer_error_is_contract_address":"crwdns11865:0crwdne11865:0","wallet_transfer_error_invalid_address":"crwdns4547:0crwdne4547:0","wallet_transfer_error_no_address_has_been_set_name":"crwdns10435:0crwdne10435:0","wallet_transfer_error_no_support_ens":"crwdns10437:0crwdne10437:0","wallet_transfer_error_insufficient_balance":"crwdns7961:0{{symbol}}crwdne7961:0","wallet_transfer_error_gas_price_absence":"crwdns9051:0crwdne9051:0","wallet_transfer_error_gas_limit_absence":"crwdns9053:0crwdne9053:0","wallet_transfer_error_max_fee_absence":"crwdns9055:0crwdne9055:0","wallet_transfer_error_max_priority_fee_absence":"crwdns9057:0crwdne9057:0","wallet_transfer_error_max_fee_too_low":"crwdns8043:0crwdne8043:0","wallet_transfer_error_max_fee_too_high":"crwdns8045:0crwdne8045:0","wallet_transfer_error_max_priority_gas_fee_positive":"crwdns8047:0crwdne8047:0","wallet_transfer_error_max_priority_gas_fee_too_low":"crwdns8049:0crwdne8049:0","wallet_transfer_error_max_priority_gas_fee_too_high":"crwdns8051:0crwdne8051:0","wallet_transfer_error_max_priority_gas_fee_imbalance":"crwdns8053:0crwdne8053:0","wallet_transfer_gwei":"crwdns8055:0crwdne8055:0","wallet_transfer_between_my_accounts":"crwdns10195:0crwdne10195:0","wallet_risk_warning_dialog_title":"crwdns4561:0crwdne4561:0","wallet_risk_warning_no_select_wallet":"crwdns4563:0crwdne4563:0","wallet_risk_warning_content":"crwdns4565:0crwdne4565:0","weekly":"crwdns4567:0crwdne4567:0","wallet_risk_confirm_confirming":"crwdns4569:0crwdne4569:0","wallet_risk_confirm_failed":"crwdns4571:0crwdne4571:0","relative_time_days_ago":"crwdns4575:0{{days}}crwdne4575:0","relative_time_hours_ago":"crwdns4577:0{{hours}}crwdne4577:0","relative_time_minutes_ago":"crwdns4579:0{{minutes}}crwdne4579:0","relative_time_months_ago":"crwdns4581:0{{months}}crwdne4581:0","relative_time_seconds_ago":"crwdns4583:0{{seconds}}crwdne4583:0","relative_time_years_ago":"crwdns4585:0{{years}}crwdne4585:0","plugin_chain_not_supported":"crwdns10689:0{{chain}}crwdne10689:0","plugin_wallet_snackbar_wait_for_confirming":"crwdns10629:0crwdne10629:0","plugin_wallet_snackbar_hash":"crwdns10631:0crwdne10631:0","plugin_wallet_snackbar_confirmed":"crwdns10633:0crwdne10633:0","plugin_wallet_snackbar_success":"crwdns10635:0crwdne10635:0","plugin_wallet_snackbar_failed":"crwdns10637:0crwdne10637:0","plugin_wallet_snackbar_swap_successful":"crwdns10639:0crwdne10639:0","plugin_wallet_snackbar_swap_token":"crwdns10641:0crwdne10641:0","plugin_wallet_guiding_step_1":"crwdns10197:0crwdne10197:0","plugin_wallet_guiding_step_2":"crwdns10199:0crwdne10199:0","plugin_wallet_connect_with":"crwdns12981:0crwdne12981:0","plugin_wallet_connect_with_retry":"crwdns12983:0crwdne12983:0","plugin_wallet_connected_with":"crwdns12985:0crwdne12985:0","plugin_wallet_connecting_with":"crwdns14612:0crwdne14612:0","plugin_wallet_metamask_error_already_request":"crwdns12987:0crwdne12987:0","plugin_wallet_connect_tip":"crwdns12989:0{{providerName}}crwdnd12989:0{{providerShortenLink}}crwdne12989:0","plugin_wallet_collections":"crwdns8141:0crwdne8141:0","plugin_wallet_select_a_token":"crwdns4589:0crwdne4589:0","plugin_wallet_select_a_nft_contract":"crwdns7923:0crwdne7923:0","plugin_wallet_select_a_nft_owner":"crwdns7925:0crwdne7925:0","plugin_wallet_select_a_nft_operator":"crwdns7927:0crwdne7927:0","plugin_wallet_fail_to_load_nft_contract":"crwdns7929:0crwdne7929:0","plugin_wallet_nft_approving_all":"crwdns7931:0{{symbol}}crwdne7931:0","plugin_wallet_approve_all_nft":"crwdns7933:0{{symbol}}crwdne7933:0","plugin_wallet_approve_all_nft_successfully":"crwdns7935:0{{symbol}}crwdne7935:0","plugin_wallet_connect_a_wallet":"crwdns4591:0crwdne4591:0","plugin_wallet_confirm_risk_warning":"crwdns4593:0crwdne4593:0","plugin_wallet_no_gas_fee":"crwdns4595:0crwdne4595:0","plugin_wallet_update_gas_fee":"crwdns4597:0crwdne4597:0","plugin_wallet_invalid_network":"crwdns4599:0crwdne4599:0","plugin_wallet_select_a_wallet":"crwdns4601:0crwdne4601:0","plugin_wallet_transaction":"crwdns4603:0crwdne4603:0","plugin_wallet_transaction_wait_for_confirmation":"crwdns4605:0crwdne4605:0","plugin_wallet_transaction_submitted":"crwdns4607:0crwdne4607:0","plugin_wallet_transaction_confirmed":"crwdns4609:0crwdne4609:0","plugin_wallet_transaction_reverted":"crwdns4611:0crwdne4611:0","plugin_wallet_transaction_rejected":"crwdns4613:0crwdne4613:0","plugin_wallet_transaction_underpriced":"crwdns11871:0crwdne11871:0","plugin_wallet_transaction_server_error":"crwdns4615:0crwdne4615:0","plugin_wallet_view_on_explorer":"crwdns4617:0crwdne4617:0","plugin_ito_placeholder_when_token_unselected":"crwdns4619:0crwdne4619:0","plugin_wallet_wrong_network_tip":"crwdns4621:0crwdne4621:0","plugin_wallet_on_create":"crwdns4627:0crwdne4627:0","plugin_wallet_on_connect":"crwdns4629:0crwdne4629:0","plugin_wallet_wrong_network":"crwdns4631:0crwdne4631:0","plugin_wallet_pending_transactions":"crwdns7717:0{{count}}crwdne7717:0","plugin_wallet_import_wallet":"crwdns4641:0crwdne4641:0","plugin_wallet_select_provider_dialog_title":"crwdns4663:0crwdne4663:0","plugin_wallet_qr_code_with_wallet_connect":"crwdns4665:0crwdne4665:0","plugin_wallet_token_unlock":"crwdns4667:0crwdne4667:0","plugin_wallet_token_infinite_unlock":"crwdns4669:0crwdne4669:0","plugin_wallet_connect_dialog_title":"crwdns4671:0crwdne4671:0","plugin_wallet_connect_safari_metamask":"crwdns4673:0crwdne4673:0","plugin_wallet_connect_safari_rainbow":"crwdns4675:0crwdne4675:0","plugin_wallet_connect_safari_trust":"crwdns4677:0crwdne4677:0","plugin_wallet_connect_safari_im_token":"crwdns4679:0crwdne4679:0","plugin_wallet_on_connect_in_firefox":"crwdns4681:0crwdne4681:0","plugin_wallet_return_mobile_wallet_options":"crwdns4683:0crwdne4683:0","plugin_wallet_view_qr_code":"crwdns4685:0crwdne4685:0","plugin_wallet_switch_network":"crwdns4687:0{{network}}crwdne4687:0","plugin_wallet_switch_network_under_going":"crwdns4689:0{{network}}crwdne4689:0","plugin_wallet_not_available_on":"crwdns7913:0{{network}}crwdne7913:0","plugin_wallet_connect_wallet":"crwdns4693:0crwdne4693:0","plugin_wallet_connect_wallet_tip":"crwdns4695:0crwdne4695:0","plugin_wallet_name_placeholder":"crwdns4705:0crwdne4705:0","plugin_wallet_fail_to_sign":"crwdns4707:0crwdne4707:0","plugin_wallet_cancel_sign":"crwdns4709:0crwdne4709:0","plugin_red_packet_display_name":"crwdns4711:0crwdne4711:0","plugin_red_packet_claimed":"crwdns10205:0crwdne10205:0","plugin_red_packet_erc20_tab_title":"crwdns8143:0crwdne8143:0","plugin_red_packet_erc721_tab_title":"crwdns8145:0crwdne8145:0","plugin_red_packet_erc721_insufficient_balance":"crwdns8147:0crwdne8147:0","plugin_red_packet_details":"crwdns9071:0crwdne9071:0","plugin_red_packet_split_mode":"crwdns4713:0crwdne4713:0","plugin_red_packet_average":"crwdns4715:0crwdne4715:0","plugin_red_packet_random":"crwdns4717:0crwdne4717:0","plugin_red_packet_shares":"crwdns4719:0crwdne4719:0","plugin_red_packet_best_wishes":"crwdns4721:0crwdne4721:0","plugin_red_packet_create_new":"crwdns4723:0crwdne4723:0","plugin_red_packet_claim":"crwdns4725:0crwdne4725:0","plugin_red_packet_claiming":"crwdns4727:0crwdne4727:0","plugin_red_packet_refund":"crwdns4729:0crwdne4729:0","plugin_red_packet_empty":"crwdns4731:0crwdne4731:0","plugin_red_packet_data_broken":"crwdns7999:0{{duration}}crwdne7999:0","plugin_red_packet_refunding":"crwdns4733:0crwdne4733:0","plugin_red_packet_select_existing":"crwdns4735:0crwdne4735:0","plugin_red_packet_share_unclaimed_message_official_account":"crwdns14614:0{{sender}}crwdnd14614:0{{network}}crwdnd14614:0{{account}}crwdnd14614:0{{payload}}crwdne14614:0","plugin_red_packet_share_unclaimed_message_not_twitter":"crwdns14616:0{{sender}}crwdnd14616:0{{network}}crwdnd14616:0{{payload}}crwdne14616:0","plugin_red_packet_share_message_official_account":"crwdns9175:0{{sender}}crwdnd9175:0{{network}}crwdnd9175:0{{account}}crwdnd9175:0{{payload}}crwdne9175:0","plugin_red_packet_share_message_not_twitter":"crwdns9177:0{{sender}}crwdnd9177:0{{network}}crwdnd9177:0{{payload}}crwdne9177:0","plugin_red_packet_nft_share_foreshow_message":"crwdns8151:0{{sender}}crwdnd8151:0{{network}}crwdnd8151:0{{account}}crwdnd8151:0{{payload}}crwdne8151:0","plugin_red_packet_nft_share_foreshow_message_not_twitter":"crwdns9011:0{{sender}}crwdnd9011:0{{network}}crwdnd9011:0{{payload}}crwdne9011:0","plugin_red_packet_nft_share_claimed_message":"crwdns8153:0{{sender}}crwdnd8153:0{{network}}crwdnd8153:0{{account}}crwdnd8153:0{{payload}}crwdne8153:0","plugin_red_packet_nft_share_claimed_message_not_twitter":"crwdns9013:0{{sender}}crwdnd9013:0{{network}}crwdnd9013:0{{payload}}crwdne9013:0","plugin_red_packet_nft_tip":"crwdns8155:0crwdne8155:0","plugin_red_packet_nft_no_history":"crwdns12991:0crwdne12991:0","plugin_red_packet_attached_message":"crwdns4739:0crwdne4739:0","plugin_red_packet_from":"crwdns4741:0{{name}}crwdne4741:0","plugin_red_packet_description_claimed":"crwdns4743:0{{amount}}crwdnd4743:0{{symbol}}crwdne4743:0","plugin_red_packet_description_expired":"crwdns4745:0crwdne4745:0","plugin_red_packet_description_refunded":"crwdns4747:0crwdne4747:0","plugin_red_packet_description_refund":"crwdns4749:0{{balance}}crwdnd4749:0{{symbol}}crwdne4749:0","plugin_red_packet_description_empty":"crwdns4751:0crwdne4751:0","plugin_red_packet_description_broken":"crwdns4753:0crwdne4753:0","plugin_red_packet_description_failover":"crwdns4755:0{{shares}}crwdnd4755:0{{total}}crwdnd4755:0{{symbol}}crwdne4755:0","plugin_red_packet_claiming_from":"crwdns4757:0{{name}}crwdne4757:0","plugin_red_packet_amount_per_share":"crwdns4761:0crwdne4761:0","plugin_red_packet_send_symbol":"crwdns4763:0{{amount}}crwdnd4763:0{{symbol}}crwdne4763:0","plugin_red_packet_amount_total":"crwdns4765:0crwdne4765:0","plugin_red_packet_next":"crwdns4767:0crwdne4767:0","plugin_red_packet_back":"crwdns4769:0crwdne4769:0","plugin_red_packet_hint":"crwdns4771:0crwdne4771:0","plugin_red_packet_token":"crwdns4773:0crwdne4773:0","plugin_red_packet_message_label":"crwdns8157:0crwdne8157:0","plugin_red_packet_create":"crwdns11873:0crwdne11873:0","plugin_red_packet_create_with_token":"crwdns4775:0{{amount}}crwdnd4775:0{{symbol}}crwdne4775:0","plugin_red_packet_history_duration":"crwdns4777:0{{startTime}}crwdnd4777:0{{endTime}}crwdne4777:0","plugin_red_packet_history_total_amount":"crwdns4779:0{{amount}}crwdnd4779:0{{symbol}}crwdne4779:0","plugin_red_packet_history_total_claimed_amount":"crwdns4781:0{{claimedAmount}}crwdnd4781:0{{amount}}crwdnd4781:0{{symbol}}crwdne4781:0","plugin_red_packet_history_claimed":"crwdns4783:0{{claimedShares}}crwdnd4783:0{{shares}}crwdne4783:0","plugin_red_packet_history_split_mode":"crwdns4785:0{{mode}}crwdne4785:0","plugin_red_packet_history_send":"crwdns4787:0crwdne4787:0","plugin_nft_red_packet_create":"crwdns11875:0crwdne11875:0","plugin_red_packet_nft_account_name":"crwdns8159:0crwdne8159:0","plugin_red_packet_nft_attached_message":"crwdns8161:0crwdne8161:0","plugin_red_packet_nft_total_amount":"crwdns8163:0crwdne8163:0","plugin_red_packet_nft_select_collection":"crwdns10813:0crwdne10813:0","plugin_red_packet_nft_max_shares":"crwdns10815:0{{amount}}crwdne10815:0","plugin_red_packet_nft_max_shares_tip":"crwdns10817:0{{amount}}crwdne10817:0","plugin_red_packet_nft_shift_select_tip":"crwdns10819:0{{text}}crwdne10819:0","plugin_red_packet_nft_non_existed_tip":"crwdns10821:0crwdne10821:0","plugin_red_packet_nft_select_all_option":"crwdns10823:0{{total}}crwdne10823:0","plugin_red_packet_nft_select_partially_option":"crwdns10825:0crwdne10825:0","plugin_red_packet_nft_unapproved_tip":"crwdns14622:0crwdne14622:0","plugin_red_packet_nft_approve_all_tip":"crwdns10827:0crwdne10827:0","plugin_red_packet_completed":"crwdns8165:0crwdne8165:0","plugin_red_packet_expired":"crwdns8167:0crwdne8167:0","plugin_red_packet_indivisible":"crwdns10621:0{{amount}}crwdnd10621:0{{symbol}}crwdne10621:0","plugin_nft_red_packet_data_broken":"crwdns8169:0crwdne8169:0","plugin_gitcoin_readme":"crwdns4789:0crwdne4789:0","plugin_gitcoin_readme_fund_link":"crwdns4791:0crwdne4791:0","plugin_gitcoin_select_a_token":"crwdns4793:0crwdne4793:0","plugin_gitcoin_enter_an_amount":"crwdns4795:0crwdne4795:0","plugin_gitcoin_grant_not_available":"crwdns4797:0crwdne4797:0","plugin_gitcoin_insufficient_balance":"crwdns4799:0{{symbol}}crwdne4799:0","plugin_gitcoin_donate":"crwdns4801:0crwdne4801:0","plugin_gitcoin_last_updated":"crwdns4803:0crwdne4803:0","plugin_gitcoin_by":"crwdns4805:0crwdne4805:0","plugin_gitcoin_view_on":"crwdns4807:0crwdne4807:0","plugin_trader_fail_to_load":"crwdns10207:0crwdne10207:0","plugin_trader_lbp_pool_in_balancer":"crwdns10209:0crwdne10209:0","plugin_trader_tutorial":"crwdns10211:0crwdne10211:0","plugin_trader_what_is_lbp":"crwdns10213:0crwdne10213:0","plugin_trader_lbp_intro":"crwdns10215:0{{symbol}}crwdnd10215:0{{symbol}}crwdne10215:0","plugin_trader_no_pools_found":"crwdns10217:0crwdne10217:0","plugin_trader_safety_agree":"crwdns10219:0crwdne10219:0","plugin_trader_view_on_etherscan":"crwdns10221:0crwdne10221:0","plugin_trader_safety_alert_title":"crwdns10223:0crwdne10223:0","plugin_trader_safety_alert":"crwdns10225:0crwdne10225:0","plugin_trader_total_supply":"crwdns10227:0crwdne10227:0","plugin_trader_circulating_supply":"crwdns10229:0crwdne10229:0","plugin_trader_volume_24":"crwdns10231:0crwdne10231:0","plugin_trader_market_cap":"crwdns10233:0crwdne10233:0","plugin_trader_data_source":"crwdns10235:0crwdne10235:0","plugin_trader_price_updated":"crwdns10237:0crwdne10237:0","plugin_savings":"crwdns13250:0crwdne13250:0","plugin_savings_asset":"crwdns14804:0crwdne14804:0","plugin_no_protocol_available":"crwdns13254:0crwdne13254:0","plugin_savings_apr":"crwdns13256:0crwdne13256:0","plugin_savings_wallet":"crwdns13258:0crwdne13258:0","plugin_savings_operation":"crwdns13260:0crwdne13260:0","plugin_savings_amount":"crwdns13262:0crwdne13262:0","plugin_savings_deposit":"crwdns13264:0crwdne13264:0","plugin_savings_withdraw":"crwdns13266:0crwdne13266:0","plugin_savings_process_deposit":"crwdns13268:0crwdne13268:0","plugin_savings_process_withdraw":"crwdns13270:0crwdne13270:0","plugin_trader_swap":"crwdns4881:0crwdne4881:0","plugin_trader_wrap":"crwdns4883:0crwdne4883:0","plugin_trader_unwrap":"crwdns4885:0crwdne4885:0","plugin_trader_buy":"crwdns4887:0crwdne4887:0","plugin_trader_no_data":"crwdns4889:0crwdne4889:0","plugin_trader_tab_market":"crwdns4891:0crwdne4891:0","plugin_trader_tab_price":"crwdns4893:0crwdne4893:0","plugin_trader_tab_exchange":"crwdns4895:0crwdne4895:0","plugin_trader_tab_swap":"crwdns4897:0crwdne4897:0","plugin_trader_table_exchange":"crwdns4899:0crwdne4899:0","plugin_trader_table_pair":"crwdns4901:0crwdne4901:0","plugin_trader_table_price":"crwdns4903:0crwdne4903:0","plugin_trader_table_volume":"crwdns4905:0crwdne4905:0","plugin_trader_table_updated":"crwdns4907:0crwdne4907:0","plugin_trader_error_amount_absence":"crwdns4915:0crwdne4915:0","plugin_trader_error_insufficient_balance":"crwdns4917:0{{symbol}}crwdne4917:0","plugin_trader_error_insufficient_lp":"crwdns4919:0crwdne4919:0","plugin_trade_error_input_amount_less_minimum_amount":"crwdns4923:0crwdne4923:0","plugin_trader_slippage_tolerance":"crwdns7917:0crwdne7917:0","plugin_trader_swap_from":"crwdns10441:0crwdne10441:0","plugin_trader_swap_to":"crwdns10443:0crwdne10443:0","plugin_trader_gas_fee":"crwdns10445:0crwdne10445:0","plugin_trader_unlock_symbol":"crwdns10447:0{{symbol}}crwdne10447:0","plugin_trader_unlock_tips":"crwdns10449:0{{provider}}crwdnd10449:0{{symbol}}crwdne10449:0","plugin_trader_swap_amount_symbol":"crwdns10451:0{{amount}}crwdnd10451:0{{symbol}}crwdne10451:0","plugin_trader_confirm_from":"crwdns10453:0crwdne10453:0","plugin_trader_confirm_to":"crwdns10455:0crwdne10455:0","plugin_trader_confirm_max_price_slippage":"crwdns10457:0crwdne10457:0","plugin_trader_confirm_minimum_received":"crwdns10459:0crwdne10459:0","plugin_trader_confirm_tips":"crwdns10461:0crwdne10461:0","plugin_trader_price_impact_warning_tips":"crwdns13021:0crwdne13021:0","plugin_trader_confirm_swap":"crwdns13023:0crwdne13023:0","plugin_trader_accept":"crwdns13025:0crwdne13025:0","plugin_trader_price_impact":"crwdns13027:0crwdne13027:0","plugin_trader_price_image_value":"crwdns13029:0{{percent}}crwdne13029:0","plugin_trader_slippage_warning":"crwdns13031:0crwdne13031:0","plugin_trader_confirm_price_impact":"crwdns13033:0{{percent}}crwdne13033:0","plugin_trader_max_slippage":"crwdns10463:0crwdne10463:0","plugin_trader_gas_setting_instant":"crwdns10465:0crwdne10465:0","plugin_trader_gas_setting_high":"crwdns10467:0crwdne10467:0","plugin_trader_gas_setting_medium":"crwdns10469:0crwdne10469:0","plugin_trader_gas_setting_standard":"crwdns10471:0crwdne10471:0","plugin_trader_gas_setting_fast":"crwdns10473:0crwdne10473:0","plugin_trader_gas_setting_custom":"crwdns10475:0crwdne10475:0","plugin_trader_tx_cost_usd":"crwdns10477:0{{usd}}crwdne10477:0","plugin_trader_gas_option":"crwdns10479:0{{option}}crwdnd10479:0{{value}}crwdne10479:0","plugin_trader_no_enough_liquidity":"crwdns10481:0crwdne10481:0","plugin_trader_no_trade":"crwdns10483:0crwdne10483:0","plugin_trader_gas":"crwdns10485:0crwdne10485:0","plugin_poll_display_name":"crwdns4941:0crwdne4941:0","plugin_poll_question_hint":"crwdns4943:0crwdne4943:0","plugin_poll_options_hint":"crwdns4945:0crwdne4945:0","plugin_poll_length":"crwdns4947:0crwdne4947:0","plugin_poll_length_days":"crwdns4949:0crwdne4949:0","plugin_poll_length_hours":"crwdns4951:0crwdne4951:0","plugin_poll_length_minutes":"crwdns4953:0crwdne4953:0","plugin_poll_length_unknown":"crwdns4955:0crwdne4955:0","plugin_poll_create_new":"crwdns4957:0crwdne4957:0","plugin_poll_select_existing":"crwdns4959:0crwdne4959:0","plugin_poll_send_poll":"crwdns4961:0crwdne4961:0","plugin_poll_status_closed":"crwdns4963:0crwdne4963:0","plugin_poll_status_voting":"crwdns4965:0crwdne4965:0","plugin_poll_status_voted":"crwdns4967:0crwdne4967:0","plugin_poll_deadline":"crwdns4969:0{{time}}crwdne4969:0","plugin_ito_empty_token":"crwdns10241:0crwdne10241:0","plugin_ito_locked":"crwdns10243:0crwdne10243:0","plugin_ito_share":"crwdns4971:0crwdne4971:0","plugin_ito_enter":"crwdns4973:0crwdne4973:0","plugin_ito_dialog_swap_title":"crwdns4975:0{{token}}crwdne4975:0","plugin_ito_dialog_swap_reminder_title":"crwdns4977:0crwdne4977:0","plugin_ito_dialog_swap_unlock_title":"crwdns4979:0crwdne4979:0","plugin_ito_dialog_swap_share_title":"crwdns4981:0crwdne4981:0","plugin_ito_dialog_swap_exchange":"crwdns4983:0crwdne4983:0","plugin_ito_dialog_swap_panel_title":"crwdns4985:0crwdne4985:0","plugin_ito_dialog_swap_exceed_wallet_limit":"crwdns4987:0crwdne4987:0","plugin_ito_swap_ration_label":"crwdns4989:0crwdne4989:0","plugin_ito_swap_unlucky_fail":"crwdns4991:0crwdne4991:0","plugin_ito_swap_only_once_remind":"crwdns4993:0crwdne4993:0","plugin_ito_swap_title":"crwdns4995:0{{amount}}crwdnd4995:0{{token}}crwdnd4995:0{{swap}}crwdne4995:0","plugin_ito_swap_end_date":"crwdns4997:0{{date}}crwdne4997:0","plugin_ito_dialog_claim_reminder_agree":"crwdns4999:0crwdne4999:0","plugin_ito_dialog_claim_reminder_text1":"crwdns5001:0{{networkType}}crwdne5001:0","plugin_ito_dialog_claim_reminder_text2":"crwdns5003:0crwdne5003:0","plugin_ito_dialog_claim_reminder_text3":"crwdns5005:0crwdne5005:0","plugin_ito_dialog_claim_reminder_text4":"crwdns5007:0crwdne5007:0","plugin_ito_expired":"crwdns5009:0crwdne5009:0","plugin_ito_create_new":"crwdns5011:0crwdne5011:0","plugin_ito_claim_all_title":"crwdns5013:0crwdne5013:0","plugin_ito_claim_all_status_unclaimed":"crwdns5015:0crwdne5015:0","plugin_ito_claim_all_status_locked":"crwdns5017:0crwdne5017:0","plugin_ito_claim_all_unlock_time":"crwdns5019:0{{time}}crwdne5019:0","plugin_ito_claim_all_dialog_title":"crwdns5021:0crwdne5021:0","plugin_ito_swapping":"crwdns5023:0{{amount}}crwdnd5023:0{{symbol}}crwdne5023:0","plugin_ito_advanced":"crwdns5025:0crwdne5025:0","plugin_ito_advanced_ip_region":"crwdns5027:0crwdne5027:0","plugin_ito_advanced_delay_unlocking":"crwdns5029:0crwdne5029:0","plugin_ito_advanced_contract":"crwdns5031:0crwdne5031:0","plugin_ito_select_existing":"crwdns5033:0crwdne5033:0","plugin_ito_display_name":"crwdns5035:0crwdne5035:0","plugin_ito_sell_token":"crwdns5037:0crwdne5037:0","plugin_ito_sell_price":"crwdns5039:0crwdne5039:0","plugin_ito_sell_total_amount":"crwdns5041:0crwdne5041:0","plugin_ito_allocation_per_wallet":"crwdns5043:0{{limit}}crwdnd5043:0{{token}}crwdne5043:0","plugin_ito_allocation_per_wallet_title":"crwdns13169:0crwdne13169:0","plugin_ito_begin_time_title":"crwdns13171:0crwdne13171:0","plugin_ito_wait_unlock_time":"crwdns5047:0{{unlockTime}}crwdne5047:0","plugin_ito_claim":"crwdns5049:0crwdne5049:0","plugin_ito_claiming":"crwdns5051:0crwdne5051:0","plugin_ito_claim_all":"crwdns5053:0crwdne5053:0","plugin_ito_qualification_start_time":"crwdns5061:0crwdne5061:0","plugin_ito_error_qualification_start_time":"crwdns5063:0crwdne5063:0","plugin_ito_end_time_title":"crwdns13173:0crwdne13173:0","plugin_ito_error_invalid_qualification":"crwdns5067:0crwdne5067:0","plugin_ito_unlock_time_cert":"crwdns10245:0{{date}}crwdne10245:0","plugin_ito_unlock_time":"crwdns5069:0crwdne5069:0","plugin_ito_launch_campaign":"crwdns10247:0crwdne10247:0","plugin_ito_total_claimable_count":"crwdns10249:0crwdne10249:0","plugin_ito_qualification_label":"crwdns5071:0crwdne5071:0","plugin_ito_message_label":"crwdns5073:0crwdne5073:0","plugin_ito_region_label":"crwdns5075:0crwdne5075:0","plugin_ito_region_confirm_label":"crwdns7919:0crwdne7919:0","plugin_ito_region_list":"crwdns5079:0{{ select }}crwdnd5079:0{{ all }}crwdne5079:0","plugin_ito_region_all":"crwdns5081:0crwdne5081:0","plugin_ito_region_search":"crwdns5083:0crwdne5083:0","plugin_ito_region_ban":"crwdns5085:0crwdne5085:0","plugin_ito_next":"crwdns5087:0crwdne5087:0","plugin_ito_back":"crwdns5089:0crwdne5089:0","plugin_ito_transaction_dialog_summary_with_no_token":"crwdns11877:0crwdne11877:0","plugin_ito_transaction_dialog_summary":"crwdns5091:0{{amount}}crwdnd5091:0{{symbol}}crwdne5091:0","plugin_ito_swap":"crwdns5093:0crwdne5093:0","plugin_ito_send_tip":"crwdns5095:0crwdne5095:0","plugin_ito_send_text":"crwdns5097:0{{total}}crwdnd5097:0{{symbol}}crwdne5097:0","plugin_ito_error_enter_amount":"crwdns5099:0crwdne5099:0","plugin_ito_error_select_token":"crwdns5101:0crwdne5101:0","plugin_ito_error_enter_amount_and_token":"crwdns5103:0crwdne5103:0","plugin_ito_error_allocation_absence":"crwdns5105:0crwdne5105:0","plugin_ito_error_allocation_invalid":"crwdns5107:0crwdne5107:0","plugin_ito_error_exchange_time":"crwdns5109:0crwdne5109:0","plugin_ito_error_unlock_time":"crwdns5111:0crwdne5111:0","plugin_ito_error_balance":"crwdns5113:0{{symbol}}crwdne5113:0","plugin_ito_list_start_date":"crwdns5115:0{{date}}crwdne5115:0","plugin_ito_list_end_date":"crwdns5117:0{{date}}crwdne5117:0","plugin_ito_list_sold_total":"crwdns5119:0crwdne5119:0","plugin_ito_list_total":"crwdns5121:0crwdne5121:0","plugin_ito_list_table_type":"crwdns5123:0crwdne5123:0","plugin_ito_list_table_price":"crwdns5125:0crwdne5125:0","plugin_ito_no_claimable_token":"crwdns5127:0crwdne5127:0","plugin_ito_list_table_sold":"crwdns5129:0crwdne5129:0","plugin_ito_list_table_got":"crwdns5131:0crwdne5131:0","plugin_ito_list_button_send":"crwdns5133:0crwdne5133:0","plugin_ito_withdraw":"crwdns5135:0crwdne5135:0","plugin_ito_qualification_loading":"crwdns5137:0crwdne5137:0","plugin_ito_qualification_failed":"crwdns5139:0crwdne5139:0","plugin_ito_withdrawn":"crwdns5141:0crwdne5141:0","plugin_ito_your_swapped_amount":"crwdns5143:0{{amount}}crwdnd5143:0{{symbol}}crwdne5143:0","plugin_ito_your_claimed_amount":"crwdns5145:0{{amount}}crwdnd5145:0{{symbol}}crwdne5145:0","plugin_ito_your_refund_amount":"crwdns5147:0{{amount}}crwdnd5147:0{{symbol}}crwdne5147:0","plugin_ito_unlock_in_advance":"crwdns5149:0crwdne5149:0","plugin_ito_swapped_status":"crwdns5151:0{{remain}}crwdnd5151:0{{total}}crwdnd5151:0{{token}}crwdne5151:0","plugin_ito_congratulations":"crwdns5153:0crwdne5153:0","plugin_ito_out_of_stock_hit":"crwdns5155:0crwdne5155:0","plugin_ito_claim_success_share":"crwdns5157:0{{user}}crwdnd5157:0{{account}}crwdnd5157:0{{symbol}}crwdnd5157:0{{link}}crwdne5157:0","plugin_ito_claim_success_share_no_official_account":"crwdns9179:0{{user}}crwdnd9179:0{{symbol}}crwdnd9179:0{{link}}crwdne9179:0","plugin_ito_claim_foreshow_share":"crwdns5159:0{{symbol}}crwdnd5159:0{{name}}crwdnd5159:0{{account}}crwdnd5159:0{{link}}crwdne5159:0","plugin_ito_claim_foreshow_share_no_official_account":"crwdns9181:0{{symbol}}crwdnd9181:0{{name}}crwdnd9181:0{{link}}crwdne9181:0","plugin_ito_password":"crwdns5161:0{{password}}crwdne5161:0","plugin_ito_status_no_start":"crwdns5163:0crwdne5163:0","plugin_ito_status_ongoing":"crwdns5165:0crwdne5165:0","plugin_ito_status_out_of_stock":"crwdns5167:0crwdne5167:0","plugin_ito_loading":"crwdns5169:0crwdne5169:0","plugin_ito_amount_unlocked":"crwdns5175:0{{amount}}crwdnd5175:0{{symbol}}crwdne5175:0","plugin_ito_amount_unlocked_infinity":"crwdns5177:0{{symbol}}crwdne5177:0","plugin_ito_unlocking_symbol":"crwdns5179:0{{symbol}}crwdne5179:0","plugin_ito_continue":"crwdns5181:0crwdne5181:0","plugin_ito_view_on_explorer":"crwdns5183:0crwdne5183:0","plugin_ito_unlock_tip":"crwdns10829:0{{address}}crwdnd10829:0{{symbol}}crwdne10829:0","plugin_collectible_you":"crwdns5185:0crwdne5185:0","plugin_collectible_done":"crwdns5187:0crwdne5187:0","plugin_collectible_retry":"crwdns5189:0crwdne5189:0","plugin_collectible_get_more_token":"crwdns10805:0{{token}}crwdne10805:0","plugin_collectible_sell":"crwdns5191:0crwdne5191:0","plugin_collectible_checkout":"crwdns5193:0crwdne5193:0","plugin_collectible_place_bid":"crwdns5195:0crwdne5195:0","plugin_collectible_buy_now":"crwdns5197:0crwdne5197:0","plugin_collectible_make_offer":"crwdns5199:0crwdne5199:0","plugin_collectible_post_listing":"crwdns5201:0crwdne5201:0","plugin_collectible_description":"crwdns5203:0{{price}}crwdnd5203:0{{symbol}}crwdne5203:0","plugin_collectible_article":"crwdns5205:0crwdne5205:0","plugin_collectible_overview":"crwdns10523:0crwdne10523:0","plugin_collectible_details":"crwdns5207:0crwdne5207:0","plugin_collectible_offers":"crwdns5209:0crwdne5209:0","plugin_collectible_listing":"crwdns5211:0crwdne5211:0","plugin_collectible_history":"crwdns5213:0crwdne5213:0","plugin_collectible_event":"crwdns5215:0crwdne5215:0","plugin_collectible_unit_price":"crwdns5217:0crwdne5217:0","plugin_collectible_price":"crwdns5219:0crwdne5219:0","plugin_collectible_from":"crwdns5221:0crwdne5221:0","plugin_collectible_to":"crwdns5223:0crwdne5223:0","plugin_collectible_date":"crwdns5225:0crwdne5225:0","plugin_collectible_quantity":"crwdns5227:0crwdne5227:0","plugin_collectible_expiration":"crwdns5229:0crwdne5229:0","plugin_collectible_no_offers":"crwdns5231:0crwdne5231:0","plugin_collectible_no_listings":"crwdns5233:0crwdne5233:0","plugin_collectible_base":"crwdns5235:0crwdne5235:0","plugin_collectible_properties":"crwdns5237:0crwdne5237:0","plugin_collectible_about":"crwdns5239:0crwdne5239:0","plugin_collectible_chain_info":"crwdns5241:0crwdne5241:0","plugin_collectible_contract_address":"crwdns5243:0crwdne5243:0","plugin_collectible_token_id":"crwdns5245:0crwdne5245:0","plugin_collectible_block_chain":"crwdns5247:0crwdne5247:0","plugin_collectible_create_by":"crwdns5249:0crwdne5249:0","plugin_collectible_owned_by":"crwdns5251:0crwdne5251:0","plugin_collectible_view_on":"crwdns10525:0crwdne10525:0","plugin_collectible_no_history":"crwdns5253:0crwdne5253:0","plugin_collectible_ensure_unreviewed_item":"crwdns5255:0crwdne5255:0","plugin_collectible_check_tos_document":"crwdns5257:0crwdne5257:0","plugin_collectible_insufficient_offer":"crwdns10615:0crwdne10615:0","plugin_collectible_not_been_reviewed_by_opensea":"crwdns5259:0crwdne5259:0","plugin_collectible_reviewed_tips":"crwdns5261:0crwdne5261:0","plugin_collectible_total":"crwdns5263:0crwdne5263:0","plugin_collectible_subtotal":"crwdns5265:0crwdne5265:0","plugin_collectible_item":"crwdns5267:0crwdne5267:0","plugin_collectible_approved_tips":"crwdns5269:0crwdne5269:0","plugin_collectible_agree_terms":"crwdns5271:0crwdne5271:0","plugin_collectible_convert_eth":"crwdns5273:0crwdne5273:0","plugin_collectible_sale_end":"crwdns5275:0{{time}}crwdne5275:0","plugin_collectible_set_initial_price":"crwdns5277:0crwdne5277:0","plugin_collectible_ending_price_tip":"crwdns5279:0crwdne5279:0","plugin_collectible_starting_price":"crwdns5281:0crwdne5281:0","plugin_collectible_ending_price":"crwdns5283:0crwdne5283:0","plugin_collectible_ending_price_less_than_staring":"crwdns5285:0crwdne5285:0","plugin_collectible_expiration_date":"crwdns5287:0crwdne5287:0","plugin_collectible_schedule_date":"crwdns5289:0crwdne5289:0","plugin_collectible_auto_cancel_tip":"crwdns5291:0crwdne5291:0","plugin_collectible_schedule_future_date":"crwdns5293:0crwdne5293:0","plugin_collectible_buyer_address":"crwdns5295:0crwdne5295:0","plugin_collectible_buyer_address_placeholder":"crwdns5297:0crwdne5297:0","plugin_collectible_buyer_address_helper_text":"crwdns5299:0crwdne5299:0","plugin_collectible_include_ending_price":"crwdns5301:0crwdne5301:0","plugin_collectible_include_ending_price_helper":"crwdns5303:0crwdne5303:0","plugin_collectible_schedule_for_a_future_time":"crwdns5305:0crwdne5305:0","plugin_collectible_schedule_for_a_future_time_helper":"crwdns5307:0crwdne5307:0","plugin_collectible_privacy":"crwdns5309:0crwdne5309:0","plugin_collectible_privacy_helper":"crwdns5311:0crwdne5311:0","plugin_collectible_enter_a_price":"crwdns5313:0crwdne5313:0","plugin_collectible_insufficient_balance":"crwdns7963:0crwdne7963:0","plugin_collectible_invalid_schedule_date":"crwdns5317:0crwdne5317:0","plugin_collectible_invalid_ending_price":"crwdns5319:0crwdne5319:0","plugin_collectible_invalid_expiration_date":"crwdns5321:0crwdne5321:0","plugin_collectible_invalid_buyer_address":"crwdns5323:0crwdne5323:0","plugin_collectible_set_price":"crwdns5325:0crwdne5325:0","plugin_collectible_highest_bid":"crwdns5327:0crwdne5327:0","plugin_collectible_minimum_bid":"crwdns5329:0crwdne5329:0","plugin_collectible_set_starting_bid_price":"crwdns5331:0crwdne5331:0","plugin_collectible_reserve_price":"crwdns5333:0crwdne5333:0","plugin_collectible_reserve_price_helper":"crwdns5335:0crwdne5335:0","plugin_collectible_auction_auto_end":"crwdns5337:0crwdne5337:0","plugin_collectible_enter_minimum_bid":"crwdns5339:0crwdne5339:0","plugin_collectible_enter_reserve_price":"crwdns5341:0crwdne5341:0","plugin_collectible_invalid_reserve_price":"crwdns5343:0crwdne5343:0","plugin_collectible_place_a_bid":"crwdns5345:0crwdne5345:0","plugin_collectible_make_an_offer":"crwdns5347:0crwdne5347:0","plugin_collectible_approved_by_open_sea":"crwdns5349:0crwdne5349:0","plugin_collectible_legal_text":"crwdns5351:0crwdne5351:0","plugin_cryptoartai_description_title":"crwdns10527:0crwdne10527:0","plugin_cryptoartai_edition":"crwdns10529:0crwdne10529:0","plugin_cryptoartai_operator":"crwdns10531:0crwdne10531:0","plugin_cryptoartai_activity_type":"crwdns10533:0crwdne10533:0","plugin_cryptoartai_status":"crwdns10535:0crwdne10535:0","plugin_cryptoartai_time":"crwdns10537:0crwdne10537:0","plugin_cryptoartai_price":"crwdns10539:0crwdne10539:0","plugin_cryptoartai_tx":"crwdns10541:0crwdne10541:0","plugin_cryptoartai_latest_bid":"crwdns10543:0crwdne10543:0","plugin_cryptoartai_description":"crwdns10545:0{{bidPrice}}crwdnd10545:0{{symbol}}crwdnd10545:0{{price}}crwdnd10545:0{{symbol}}crwdnd10545:0{{soldNum}}crwdnd10545:0{{totalAvailable}}crwdnd10545:0{{editionNumber}}crwdne10545:0","plugin_cryptoartai_no_price_description":"crwdns10547:0{{bidPrice}}crwdnd10547:0{{symbol}}crwdnd10547:0{{soldNum}}crwdnd10547:0{{totalAvailable}}crwdnd10547:0{{editionNumber}}crwdne10547:0","plugin_cryptoartai_sold_description":"crwdns10549:0{{soldPrice}}crwdnd10549:0{{symbol}}crwdnd10549:0{{soldNum}}crwdnd10549:0{{totalAvailable}}crwdnd10549:0{{editionNumber}}crwdne10549:0","plugin_cryptoartai_buy":"crwdns10551:0crwdne10551:0","plugin_cryptoartai_buy_now":"crwdns10553:0crwdne10553:0","plugin_cryptoartai_current_balance":"crwdns10555:0crwdne10555:0","plugin_cryptoartai_current_highest_offer":"crwdns10557:0crwdne10557:0","plugin_cryptoartai_bid_least":"crwdns10559:0crwdne10559:0","plugin_cryptoartai_escrowed":"crwdns10561:0crwdne10561:0","plugin_cryptoartai_current_balance_is":"crwdns10563:0crwdne10563:0","plugin_cryptoartai_auction_end":"crwdns10565:0crwdne10565:0","plugin_cryptoartai_auction_end_time":"crwdns10567:0crwdne10567:0","plugin_cryptoartai_share":"crwdns10569:0{{amount}}crwdnd10569:0{{symbol}}crwdnd10569:0{{title}}crwdnd10569:0{{assetLink}}crwdnd10569:0{{account}}crwdne10569:0","plugin_cryptoartai_share_no_official_account":"crwdns10571:0{{amount}}crwdnd10571:0{{symbol}}crwdnd10571:0{{title}}crwdnd10571:0{{assetLink}}crwdne10571:0","plugin_cryptoartai_offer_share":"crwdns10573:0{{amount}}crwdnd10573:0{{symbol}}crwdnd10573:0{{title}}crwdnd10573:0{{assetLink}}crwdnd10573:0{{account}}crwdne10573:0","plugin_cryptoartai_offer_share_no_official_account":"crwdns10575:0{{amount}}crwdnd10575:0{{symbol}}crwdnd10575:0{{title}}crwdnd10575:0{{assetLink}}crwdne10575:0","plugin_snapshot_info_title":"crwdns5353:0crwdne5353:0","plugin_snapshot_info_strategy":"crwdns5355:0crwdne5355:0","plugin_snapshot_info_author":"crwdns5357:0crwdne5357:0","plugin_snapshot_info_ipfs":"crwdns5359:0crwdne5359:0","plugin_snapshot_info_start":"crwdns5361:0crwdne5361:0","plugin_snapshot_info_end":"crwdns5363:0crwdne5363:0","plugin_snapshot_info_snapshot":"crwdns5365:0crwdne5365:0","plugin_snapshot_result_title":"crwdns5367:0crwdne5367:0","plugin_snapshot_votes_title":"crwdns5369:0crwdne5369:0","plugin_snapshot_no_power":"crwdns5371:0crwdne5371:0","plugin_snapshot_vote_success":"crwdns5373:0crwdne5373:0","plugin_snapshot_vote":"crwdns5375:0crwdne5375:0","plugin_snapshot_vote_choice":"crwdns5377:0crwdne5377:0","plugin_snapshot_vote_power":"crwdns5379:0crwdne5379:0","plugin_snapshot_vote_title":"crwdns5381:0crwdne5381:0","plugin_snapshot_vote_confirm_dialog_title":"crwdns5383:0crwdne5383:0","plugin_snapshot_vote_confirm_dialog_choice":"crwdns5385:0{{ choiceText }}crwdne5385:0","plugin_snapshot_vote_confirm_dialog_warning":"crwdns5387:0crwdne5387:0","plugin_snapshot_current_result_title":"crwdns5389:0crwdne5389:0","plugin_snapshot_download_report":"crwdns5391:0crwdne5391:0","plugin_find_truman_display_name":"crwdns10343:0crwdne10343:0","plugin_find_truman_status_puzzle":"crwdns10345:0crwdne10345:0","plugin_find_truman_status_poll":"crwdns10347:0crwdne10347:0","plugin_find_truman_status_result":"crwdns10349:0crwdne10349:0","plugin_find_truman_status_puzzle_result":"crwdns10351:0crwdne10351:0","plugin_find_truman_status_poll_result":"crwdns10353:0crwdne10353:0","plugin_find_truman_puzzle_to_be_revealed":"crwdns10355:0crwdne10355:0","plugin_find_truman_puzzles_to_be_revealed":"crwdns10357:0crwdne10357:0","plugin_find_truman_poll_to_be_revealed":"crwdns10359:0crwdne10359:0","plugin_find_truman_polls_to_be_revealed":"crwdns10361:0crwdne10361:0","plugin_find_truman_puzzle_underway":"crwdns10365:0crwdne10365:0","plugin_find_truman_puzzle_rate":"crwdns10367:0crwdne10367:0","plugin_find_truman_voting_underway":"crwdns10369:0crwdne10369:0","plugin_find_truman_voting_rate":"crwdns10371:0crwdne10371:0","plugin_find_truman_submit_failed":"crwdns10375:0crwdne10375:0","plugin_find_truman_vote":"crwdns10377:0crwdne10377:0","plugin_find_truman_votes":"crwdns10379:0crwdne10379:0","plugin_find_truman_selected":"crwdns10385:0crwdne10385:0","plugin_find_truman_unselect":"crwdns10387:0crwdne10387:0","plugin_find_truman_answer":"crwdns10389:0crwdne10389:0","plugin_find_truman_result":"crwdns10391:0crwdne10391:0","plugin_find_truman_buy":"crwdns10393:0crwdne10393:0","plugin_find_truman_decrypted_by":"crwdns10397:0crwdne10397:0","plugin_find_truman_insufficient_nft":"crwdns10405:0crwdne10405:0","plugin_find_truman_buy_nft_tip":"crwdns10407:0{{count}}crwdne10407:0","plugin_find_truman_connect_wallet_tip":"crwdns10411:0crwdne10411:0","plugin_find_truman_no_participation_tip":"crwdns10413:0crwdne10413:0","plugin_dhedge_managed_by":"crwdns5393:0{{managerName}}crwdne5393:0","plugin_dhedge_manager_share":"crwdns5395:0{{managerShare}}crwdne5395:0","plugin_dhedge_manager_share_more_than_50":"crwdns5397:0crwdne5397:0","plugin_dhedge_value_managed":"crwdns5399:0crwdne5399:0","plugin_dhedge_lifetime_return":"crwdns5401:0crwdne5401:0","plugin_dhedge_risk_factor":"crwdns5403:0crwdne5403:0","plugin_dhedge_tab_stats":"crwdns5405:0crwdne5405:0","plugin_dhedge_tab_chart":"crwdns5407:0crwdne5407:0","plugin_dhedge_strategy":"crwdns5409:0crwdne5409:0","plugin_dhedge_see_less":"crwdns5411:0crwdne5411:0","plugin_dhedge_see_more":"crwdns5413:0crwdne5413:0","plugin_dhedge_no_data":"crwdns5415:0crwdne5415:0","plugin_dhedge_fetch_error":"crwdns5417:0crwdne5417:0","plugin_dhedge_loading_chart":"crwdns5419:0crwdne5419:0","plugin_dhedge_invest":"crwdns5421:0crwdne5421:0","plugin_dhedge_buy_token":"crwdns5423:0{{symbol}}crwdne5423:0","plugin_dhedge_enter_an_amount":"crwdns5425:0crwdne5425:0","plugin_dhedge_insufficient_balance":"crwdns5427:0{{symbol}}crwdne5427:0","plugin_dhedge_loading":"crwdns5429:0crwdne5429:0","plugin_dhedge_pool_not_found":"crwdns5431:0crwdne5431:0","plugin_dhedge_smt_wrong":"crwdns5433:0crwdne5433:0","plugin_pooltogether_tab_pools":"crwdns5435:0crwdne5435:0","plugin_pooltogether_tab_account":"crwdns5437:0crwdne5437:0","plugin_pooltogether_no_pool":"crwdns5439:0crwdne5439:0","plugin_pooltogether_pool_ended":"crwdns5441:0crwdne5441:0","plugin_pooltogether_deposit":"crwdns5443:0{{token}}crwdne5443:0","plugin_pooltogether_deposit_msg":"crwdns13175:0crwdne13175:0","plugin_pooltogether_apr":"crwdns5445:0{{apr}}crwdnd5445:0{{token}}crwdne5445:0","plugin_pooltogether_view_pool":"crwdns5447:0crwdne5447:0","plugin_pooltogether_prize":"crwdns5449:0{{period}}crwdne5449:0","plugin_pooltogether_share":"crwdns5451:0{{amount}}crwdnd5451:0{{cashTag}}crwdnd5451:0{{symbol}}crwdnd5451:0{{pool}}crwdnd5451:0{{account}}crwdne5451:0","plugin_pooltogether_share_no_official_account":"crwdns9183:0{{amount}}crwdnd9183:0{{cashTag}}crwdnd9183:0{{symbol}}crwdnd9183:0{{pool}}crwdne9183:0","plugin_pooltogether_buy":"crwdns5453:0{{symbol}}crwdne5453:0","plugin_pooltogether_enter_an_amount":"crwdns5455:0crwdne5455:0","plugin_pooltogether_insufficient_balance":"crwdns5457:0{{symbol}}crwdne5457:0","plugin_pooltogether_deposit_title":"crwdns5459:0{{token}}crwdne5459:0","plugin_pooltogether_odds_title":"crwdns5461:0crwdne5461:0","plugin_pooltogether_odds_value":"crwdns5463:0{{value}}crwdnd5463:0{{period}}crwdne5463:0","plugin_pooltogether_short_odds_value":"crwdns5465:0{{value}}crwdne5465:0","plugin_pooltogether_my_deposits":"crwdns5467:0crwdne5467:0","plugin_pooltogether_no_account_pool":"crwdns5469:0crwdne5469:0","plugin_pooltogether_missing_pool":"crwdns5471:0crwdne5471:0","plugin_pooltogether_winning_odds":"crwdns5473:0crwdne5473:0","plugin_pooltogether_in":"crwdns5475:0crwdne5475:0","plugin_pooltogether_manage":"crwdns5477:0crwdne5477:0","plugin_pooltogether_token_not_found":"crwdns5479:0crwdne5479:0","plugin_good_ghosting_loading_other_player_stats":"crwdns10253:0crwdne10253:0","plugin_good_ghosting_loading_game_stats":"crwdns10255:0crwdne10255:0","plugin_good_ghosting_game_duration":"crwdns5481:0crwdne5481:0","plugin_good_ghosting_current_round":"crwdns5483:0crwdne5483:0","plugin_good_ghosting_recurring_deposit":"crwdns5485:0crwdne5485:0","plugin_good_ghosting_round_length":"crwdns5487:0crwdne5487:0","plugin_good_ghosting_pool_apy":"crwdns5489:0crwdne5489:0","plugin_good_ghosting_pool_earnings":"crwdns5491:0crwdne5491:0","plugin_good_ghosting_extra_rewards":"crwdns5493:0crwdne5493:0","plugin_good_ghosting_total_saved":"crwdns5495:0crwdne5495:0","plugin_good_ghosting_game_launched":"crwdns5497:0crwdne5497:0","plugin_good_ghosting_join_round":"crwdns5499:0crwdne5499:0","plugin_good_ghosting_join_deadline":"crwdns5501:0crwdne5501:0","plugin_good_ghosting_deposit":"crwdns5503:0{{index}}crwdne5503:0","plugin_good_ghosting_deposit_deadline":"crwdns5505:0{{index}}crwdne5505:0","plugin_good_ghosting_waiting_round":"crwdns5507:0crwdne5507:0","plugin_good_ghosting_waiting_round_end":"crwdns5509:0crwdne5509:0","plugin_good_ghosting_withdraw":"crwdns5511:0crwdne5511:0","plugin_good_ghosting_all_players_status_winning":"crwdns5513:0crwdne5513:0","plugin_good_ghosting_all_players_status_waiting":"crwdns5515:0crwdne5515:0","plugin_good_ghosting_all_players_status_ghost":"crwdns5517:0crwdne5517:0","plugin_good_ghosting_all_players_status_dropout":"crwdns5519:0crwdne5519:0","plugin_good_ghosting_status_winning":"crwdns5521:0crwdne5521:0","plugin_good_ghosting_status_waiting":"crwdns5523:0crwdne5523:0","plugin_good_ghosting_status_ghost":"crwdns5525:0crwdne5525:0","plugin_good_ghosting_status_dropout":"crwdns5527:0crwdne5527:0","plugin_good_ghosting_status_unknown":"crwdns5529:0crwdne5529:0","plugin_good_ghosting_status":"crwdns5531:0crwdne5531:0","plugin_good_ghosting_deposits":"crwdns5533:0crwdne5533:0","plugin_good_ghosting_total_deposited":"crwdns5535:0crwdne5535:0","plugin_good_ghosting_address":"crwdns5537:0crwdne5537:0","plugin_good_ghosting_not_a_participant":"crwdns5539:0crwdne5539:0","plugin_good_ghosting_next_event":"crwdns5541:0crwdne5541:0","plugin_good_ghosting_game_end":"crwdns5543:0crwdne5543:0","plugin_good_ghosting_game_over":"crwdns5545:0crwdne5545:0","plugin_good_ghosting_participants_withdraw":"crwdns5547:0crwdne5547:0","plugin_good_ghosting_join_game":"crwdns5549:0crwdne5549:0","plugin_good_ghosting_make_deposit":"crwdns5551:0crwdne5551:0","plugin_good_ghosting_join_help_text":"crwdns5553:0{{amount}}crwdnd5553:0{{token}}crwdne5553:0","plugin_good_ghosting_deposit_help_text":"crwdns5555:0{{segmentPayment}}crwdnd5555:0{{token}}crwdne5555:0","plugin_good_ghosting_withdraw_help_text":"crwdns5557:0crwdne5557:0","plugin_good_ghosting_leave_game":"crwdns5559:0crwdne5559:0","plugin_good_ghosting_early_withdraw_info":"crwdns5561:0{{amount}}crwdnd5561:0{{token}}crwdne5561:0","plugin_good_ghosting_rules":"crwdns5563:0crwdne5563:0","plugin_good_ghosting_game_rules":"crwdns5565:0{{amount}}crwdnd5565:0{{token}}crwdnd5565:0{{roundCount}}crwdne5565:0","plugin_good_ghosting_tx_fail":"crwdns5567:0crwdne5567:0","plugin_good_ghosting_tx_timeout":"crwdns5569:0crwdne5569:0","plugin_good_ghosting_something_went_wrong":"crwdns5571:0crwdne5571:0","plugin_good_ghosting_view_on_explorer":"crwdns5573:0crwdne5573:0","plugin_good_ghosting_checking_balance":"crwdns5575:0crwdne5575:0","plugin_good_ghosting_insufficient_balance":"crwdns5577:0{{amount}}crwdnd5577:0{{token}}crwdne5577:0","plugin_good_ghosting_balance_error":"crwdns5579:0crwdne5579:0","plugin_unlockprotocol_buy_lock":"crwdns10257:0crwdne10257:0","plugin_unlockprotocol_buy_lock_alert":"crwdns10259:0crwdne10259:0","plugin_unlockprotocol_no_access":"crwdns10261:0crwdne10261:0","plugin_unlockprotocol_select_unlock_lock":"crwdns7983:0crwdne7983:0","plugin_unlockprotocol_no_lock_found":"crwdns7985:0crwdne7985:0","plugin_unlockprotocol_submit_post":"crwdns7987:0crwdne7987:0","plugin_unlockprotocol_title":"crwdns7989:0crwdne7989:0","plugin_unlockprotocol_server_error":"crwdns7991:0crwdne7991:0","plugin_furucombo_tab_pool":"crwdns9113:0crwdne9113:0","plugin_furucombo_tab_investments":"crwdns9115:0crwdne9115:0","plugin_furucombo_liquidity":"crwdns9117:0crwdne9117:0","plugin_furucombo_annual_percentage_yield":"crwdns9119:0crwdne9119:0","plugin_furucombo_rewards":"crwdns9121:0crwdne9121:0","plugin_furucombo_invest":"crwdns9123:0crwdne9123:0","plugin_furucombo_pool_not_found":"crwdns9125:0crwdne9125:0","plugin_furucombo_smt_wrong":"crwdns9127:0crwdne9127:0","plugin_furucombo_head_pools":"crwdns9129:0crwdne9129:0","plugin_furucombo_head_action":"crwdns9131:0crwdne9131:0","plugin_pets_dialog_title":"crwdns13145:0crwdne13145:0","plugin_pets_dialog_title_share":"crwdns13272:0crwdne13272:0","plugin_pets_dialog_contract":"crwdns13147:0crwdne13147:0","plugin_pets_dialog_token":"crwdns13149:0crwdne13149:0","plugin_pets_dialog_msg":"crwdns13151:0crwdne13151:0","plugin_pets_dialog_msg_optional":"crwdns13153:0crwdne13153:0","plugin_pets_dialog_btn":"crwdns13155:0crwdne13155:0","plugin_pets_dialog_btn_share":"crwdns13274:0crwdne13274:0","plugin_pets_dialog_preview":"crwdns13157:0crwdne13157:0","plugin_pets_dialog_created":"crwdns13159:0crwdne13159:0","plugin_pets_dialog_powered":"crwdns13161:0crwdne13161:0","plugin_pets_dialog_success":"crwdns13163:0crwdne13163:0","plugin_pets_dialog_fail":"crwdns13165:0crwdne13165:0","plugin_pets_dialog_check_title":"crwdns13245:0crwdne13245:0","popups_following_permissions":"crwdns10271:0{{pluginName}}crwdnd10271:0{{pluginURL}}crwdne10271:0","popups_permissions":"crwdns10281:0crwdne10281:0","popups_sites":"crwdns10283:0crwdne10283:0","popups_mask_requests_permission":"crwdns10285:0crwdne10285:0","popups_grant":"crwdns10287:0crwdne10287:0","popups_permission_request":"crwdns10289:0crwdne10289:0","popups_permission_request_content":"crwdns10291:0crwdne10291:0","popups_permission_request_content2":"crwdns10293:0crwdne10293:0","popups_welcome":"crwdns7757:0crwdne7757:0","popups_wallet_token":"crwdns7759:0crwdne7759:0","popups_wallet_dialog_legacy_wallet_tip":"crwdns9463:0crwdne9463:0","popups_wallet_set_payment_password":"crwdns9307:0crwdne9307:0","popups_wallet_payment_password":"crwdns9309:0crwdne9309:0","popups_wallet_re_payment_password":"crwdns10749:0crwdne10749:0","popups_wallet_set_up_payment_password":"crwdns9311:0crwdne9311:0","popups_wallet_payment_password_tip":"crwdns9313:0crwdne9313:0","popups_wallet_go_back":"crwdns7761:0crwdne7761:0","popups_wallet_start_up_tip":"crwdns7763:0crwdne7763:0","popups_wallet_name_placeholder":"crwdns7777:0crwdne7777:0","popups_wallet_name_mnemonic":"crwdns10751:0crwdne10751:0","popups_wallet_name_json_file":"crwdns10753:0crwdne10753:0","popups_wallet_name_private_key":"crwdns10755:0crwdne10755:0","popups_wallet_name_mnemonic_placeholder":"crwdns10757:0crwdne10757:0","popups_wallet_name_origin_password":"crwdns10759:0crwdne10759:0","popups_wallet_tab_assets":"crwdns7781:0crwdne7781:0","popups_wallet_tab_activity":"crwdns7783:0crwdne7783:0","popups_wallet_derivation_path":"crwdns7785:0{{ path }}crwdne7785:0","popups_wallet_next":"crwdns7789:0crwdne7789:0","popups_wallet_backup_wallet":"crwdns7797:0crwdne7797:0","popups_wallet_backup_json_file":"crwdns7799:0crwdne7799:0","popups_wallet_backup_private_key":"crwdns7801:0crwdne7801:0","popups_wallet_backup_json_file_confirm_password_tip":"crwdns7803:0crwdne7803:0","popups_wallet_backup_private_key_tip":"crwdns7805:0crwdne7805:0","popups_wallet_backup_input_password":"crwdns7807:0crwdne7807:0","popups_wallet_backup_json_file_drag_tip":"crwdns7809:0crwdne7809:0","popups_wallet_backup_json_file_click_tip":"crwdns7811:0crwdne7811:0","popups_wallet_enter_your_wallet_name":"crwdns7813:0crwdne7813:0","popups_wallet_delete_tip":"crwdns7815:0crwdne7815:0","popups_wallet_confirm_payment_password":"crwdns7817:0crwdne7817:0","popups_wallet_token_buy":"crwdns7819:0crwdne7819:0","popups_wallet_token_send":"crwdns7821:0crwdne7821:0","popups_wallet_token_swap":"crwdns7823:0crwdne7823:0","popups_wallet_view_on_explorer":"crwdns8057:0crwdne8057:0","popups_wallet_gas_fee_settings":"crwdns7837:0crwdne7837:0","popups_wallet_gas_fee_settings_description":"crwdns7839:0crwdne7839:0","popups_wallet_gas_fee_settings_low":"crwdns7841:0crwdne7841:0","popups_wallet_gas_fee_settings_medium":"crwdns7843:0crwdne7843:0","popups_wallet_gas_fee_settings_high":"crwdns7845:0crwdne7845:0","popups_wallet_gas_fee_settings_usd":"crwdns7847:0{{usd}}crwdne7847:0","popups_wallet_gas_fee_settings_gas_limit":"crwdns7855:0crwdne7855:0","popups_wallet_gas_fee_settings_max_priority_fee":"crwdns7857:0crwdne7857:0","popups_wallet_gas_fee_settings_max_fee":"crwdns7859:0crwdne7859:0","popups_wallet_gas_fee_settings_min_gas_limit_tips":"crwdns8993:0{{limit}}crwdne8993:0","popups_wallet_unsupported_network":"crwdns8995:0crwdne8995:0","popups_wallet_signature_request":"crwdns7861:0crwdne7861:0","popups_wallet_signature_request_message":"crwdns8059:0crwdne8059:0","popups_wallet_contract_interaction":"crwdns8061:0crwdne8061:0","popups_wallet_token_unlock_permission":"crwdns13035:0crwdne13035:0","popups_wallet_token_infinite_unlock":"crwdns13037:0crwdne13037:0","popups_wallet_contract_interaction_transfer":"crwdns8065:0crwdne8065:0","popups_wallet_contract_interaction_gas_fee":"crwdns8067:0crwdne8067:0","popups_wallet_contract_interaction_edit":"crwdns8069:0crwdne8069:0","popups_wallet_contract_interaction_total":"crwdns8071:0crwdne8071:0","popups_wallet_password_dont_match":"crwdns9315:0crwdne9315:0","popups_wallet_password_satisfied_requirement":"crwdns9317:0crwdne9317:0","popups_wallet_password_length_error":"crwdns9319:0crwdne9319:0","popups_wallet_unlock_wallet":"crwdns8073:0crwdne8073:0","popups_wallet_unlock_error_password":"crwdns8075:0crwdne8075:0","popups_wallet_activity_to_address":"crwdns8211:0{{address}}crwdne8211:0","popups_wallet_transfer_error_tip":"crwdns8997:0crwdne8997:0","popups_wallet_transactions_pending":"crwdns9005:0crwdne9005:0","popups_wallet_re_send":"crwdns8999:0crwdne8999:0","popups_wallet_choose_token":"crwdns9001:0crwdne9001:0","popups_wallet_gas_price":"crwdns9003:0crwdne9003:0","popups_wallet_done":"crwdns9321:0crwdne9321:0","popups_wallet_recovered":"crwdns9323:0crwdne9323:0","popups_wallet_no_transactions":"crwdns9325:0crwdne9325:0","popups_missing_parameter_caption":"crwdns7827:0crwdne7827:0","popups_persona_connect_to":"crwdns8973:0{{type}}crwdne8973:0","popups_persona_to_be_verified":"crwdns14716:0crwdne14716:0","popups_persona_disconnect":"crwdns8975:0crwdne8975:0","popups_persona_disconnect_confirmation":"crwdns14718:0crwdne14718:0","popups_persona_disconnect_confirmation_description":"crwdns14720:0crwdne14720:0","popups_persona":"crwdns14722:0crwdne14722:0","popups_twitter_id":"crwdns14724:0crwdne14724:0","popups_persona_logout":"crwdns8977:0crwdne8977:0","popups_persona_disconnect_tip":"crwdns8979:0crwdne8979:0","popups_persona_persona_name_exists":"crwdns8981:0crwdne8981:0","popups_persona_sign_request_title":"crwdns13137:0crwdne13137:0","popups_persona_sign_request_message":"crwdns13139:0crwdne13139:0","popups_password_do_not_match":"crwdns8983:0crwdne8983:0","popups_backup_password":"crwdns8985:0crwdne8985:0","popups_rename_error_tip":"crwdns8987:0{{length}}crwdne8987:0","nft_wallet_label":"crwdns9205:0crwdne9205:0","plugin_profile_no_wallets":"crwdns9327:0crwdne9327:0","plugin_vcent_last_offer_at":"crwdns10295:0crwdne10295:0","nft_input_address_label":"crwdns9193:0crwdne9193:0","nft_input_tokenid_label":"crwdns9195:0crwdne9195:0","nft_owner_hint":"crwdns9197:0crwdne9197:0","nft_add_dialog_title":"crwdns9199:0crwdne9199:0","nft_add_button_label":"crwdns9201:0crwdne9201:0","nft_list_title":"crwdns9203:0crwdne9203:0","nft_wallet_change":"crwdns9207:0crwdne9207:0","nft_button_add_collectible":"crwdns9209:0crwdne9209:0","nft_avatar":"crwdns9211:0crwdne9211:0","web3_tab_hint":"crwdns14544:0crwdne14544:0","plugin_artblocks_not_active":"crwdns14480:0crwdne14480:0","plugin_artblocks_completed":"crwdns14482:0crwdne14482:0","plugin_artblocks_paused":"crwdns14484:0crwdne14484:0","plugin_artblocks_collection":"crwdns14486:0crwdne14486:0","plugin_artblocks_details":"crwdns14488:0crwdne14488:0","plugin_artblocks_created_by":"crwdns14490:0crwdne14490:0","plugin_artblocks_purchase":"crwdns14492:0crwdne14492:0","plugin_artblocks_purchasing":"crwdns14494:0crwdne14494:0","plugin_artblocks_legal_text":"crwdns14496:0crwdne14496:0","plugin_artblocks_check_tos_document":"crwdns14498:0crwdne14498:0","plugin_artblocks_price_per_mint":"crwdns14500:0crwdne14500:0","plugin_artblocks_price_row":"crwdns14502:0crwdne14502:0","plugin_artblocks_minted_row":"crwdns14504:0crwdne14504:0","plugin_artblocks_license_row":"crwdns14506:0crwdne14506:0","plugin_artblocks_library_row":"crwdns14508:0crwdne14508:0","plugin_artblocks_website":"crwdns14510:0crwdne14510:0","plugin_artblocks_infos":"crwdns14512:0crwdne14512:0","plugin_artblocks_chain":"crwdns14514:0crwdne14514:0","plugin_artblocks_blockchain_row":"crwdns14516:0crwdne14516:0","plugin_artblocks_contract_row":"crwdns14518:0crwdne14518:0","plugin_artblocks_smt_wrong":"crwdns14520:0crwdne14520:0","plugin_artblocks_share":"crwdns14522:0{{name}}crwdnd14522:0{{price}}crwdnd14522:0{{symbol}}crwdne14522:0","plugin_artblocks_share_no_official_account":"crwdns14524:0{{name}}crwdnd14524:0{{price}}crwdnd14524:0{{symbol}}crwdne14524:0","nft_button_set_avatar":"crwdns9191:0crwdne9191:0"}'); -;// CONCATENATED MODULE: ./shared-ui/locales/zh-CN.json -const zh_CN_namespaceObject = JSON.parse('{"database_backup":"备份数据库","database_overwrite":"使用备份覆盖数据库","database_clear":"清空数据库","debug_new_bug_issue":"新问题","debug_metadata_title":"添加新元数据或替换现有元数据","debug_metadata_put_metadata":"放入元数据","edit":"编辑","clear":"清空","more":"更多","approve":"批准","address":"地址","operation":"操作","gas_limit":"Gas 上限","gas_price":"Gas 价格","redirect_to":"跳转至","sign":"签名","reload":"重新加载","load":"加载","load_all":"加载全部","no_data":"暂无数据","tip":"小费","tags":"标签","contract":"合约","initializing":"初始化中...","redirect_alert":"如果您的浏览器没有重新跳转,请 点击这里。","typed_message_text_alert":"当前只支持输入消息文本。","badge_renderer_provided_by_plugin":"插件提供:","add_token":"添加代币","add_nft_contract_search_hint":"搜索 NFT 合约名称或地址","applications":"应用程序","additional_post_box__encrypted_post_pre":"安装 #mask_io 解密此贴文 ! {{encrypted}}","additional_post_box__encrypted_post_pre_red_packet_twitter_official_account":"使用 #mask_io 来认领这个红包!@{{account}} {{encrypted}}","additional_post_box__encrypted_post_pre_red_packet":"使用 #mask_io 来认领这个红包!@{{encrypted}}","additional_post_box__steganography_post_pre":"此图片使用#mask_io加密。📪🔑 安装mask.io解密它。 {{random}}","auto_paste_failed_dialog_title":"手动粘贴","auto_paste_failed_dialog_content":"请复制下面的文本和图片(如果有的话)再进行发布。","auto_paste_failed_dialog_image_caption":"在新分页中打开","auto_paste_failed_snackbar":"您需要手动粘贴加密内容吗?","auto_paste_failed_snackbar_action":"教我怎么做","auto_paste_failed_snackbar_action_close":"关闭","automation_request_click_post_button":"请点击“Post”按钮打开贴文发送框。","try_again":"再试一次","ok":"好的","start":"开始","cancel":"取消","twitter_account":"realMaskNetwork","facebook_account":"masknetwork","comment_box__placeholder":"添加加密评论…","confirm":"确认","copy_text":"复制文本","loading_failed":"加载失败","copy_image":"复制图片","copy_success_of_wallet_addr":"复制钱包地址成功!","copy_success_of_text":"复制文本成功!","copy_success_of_image":"复制图片成功!","connecting":"正在连接…","create":"创建","copied":"已复制","daily":"每日","dashboard_tab_collectibles":"收藏品","dashboard_no_collectible_found":"未找到任何收藏品","dashboard_collectible_menu_all":"全部 ({{count}})","days":"每隔 {{days}} 天","decrypted_postbox_add_recipients":"追加收件人","decrypted_postbox_decrypting":"Mask正在解密中…","decrypted_postbox_decoding":"Mask正在解码中…","decrypted_postbox_decrypting_finding_person_key":"Mask 正在寻找作者的公钥…","decrypted_postbox_decrypting_finding_post_key":"Mask 正在获取贴文密钥以解密此贴文…","decrypted_postbox_author_mismatch":"最初发布于 {{name}}","decrypted_postbox_title":"由Mask解密:","dismiss":"忽略","delete":"删除","delete_wallet":"删除钱包","hide_token":"隐藏代币","hide_token_hint":"您将来可以通过钱包页面中的“添加代币”重新添加 {{token}} 。","done":"完成!","download":"下载","failed":"失败","buy_now":"立即购买","setup_guide_login":"请注册或登录以连接Mask Network。","setup_guide_find_username_text":"Mask需要用户名来连接您的身份。
请确保正确无误。","setup_guide_connect_auto":"连接","setup_guide_connect_failed":"失败。请再试一次。","setup_guide_verify":"验证","setup_guide_verify_dismiss":"不再提醒","setup_guide_verify_checking":"正在检查","setup_guide_verifying":"正在验证","setup_guide_verifying_failed":"重新验证","user_guide_tip_connected":"您已成功连接到此帐户。","setup_guide_say_hello_content":"你好,Mask世界。这是我发的第一条加密信息。安装 https://mask.io来给我发送加密贴文吧。 ","setup_guide_say_hello_follow":"关注 {{account}} 来探索Web 3.0。","user_guide_tip_1":"点击这里快速访问主要功能。","user_guide_tip_2":"点击这里连接您的钱包。您可以在此选择网络或更改您的钱包。","user_guide_tip_3":"点击这里快速开始。","create_persona":"创建身份","connect_persona":"连接身份","please_create_persona":"请创建身份","please_connect_persona":"请连接身份","mask_network":"Mask Network","import":"导入","no_search_result":"没有任何结果。","set_nft_profile_photo":"设置NFT头像","use_nft":"设置NFT头像","loading":"加载中","unlock":"解锁","payload_bad":"这个贴文似乎已损坏。Mask无法解密它。","payload_incomplete":"此贴文不完整。您需要查看完整贴文才能解密。","payload_not_found":"未找到Payload。","payload_throw_in_alpha41":"不支持Alpha41 。告诉您的朋友升级Mask!","personas":"身份","browser_action_enter_dashboard":"进入控制面板","pending":"待定中...","popups_initial_tips":"请登录或注册以使用 {{type}}。","beta_sup":"(测试版)","post_dialog_plugins_experimental":"插件 (体验版)","post_dialog__button":"加密","post_dialog__image_payload":"图片Payload","post_dialog__more_options_title":"更多选项","post_dialog__placeholder":"文本在此处…","post_dialog__select_recipients_end_to_end":"仅本人","post_dialog__select_recipients_share_to_everyone":"任何人","post_dialog__select_recipients_title":"选择接收者","post_dialog__select_specific_e2e_target_title":"和Mask Network用户 ({{selected}} 已选择)","post_dialog__title":"Mask:编辑","post_dialog_enable_paste_auto":"启用自动粘贴","post_modal_hint__button":"编辑加密贴文","hide":"隐藏","reset":"重置","editor":"编辑器","retry":"重试","rename":"重命名","search":"搜索","go_wrong":"出现了一些问题。","search_box_placeholder":"输入要搜索的内容","select_all":"全选","select_none":"全不选","all_friends":"全部好友","select_specific_friends_dialog__button":"完成","select_specific_friends_dialog__title":"选择特定联系人","service_decryption_failed":"解密失败","service_invalid_backup_file":"这似乎不是Mask的备份。","service_unknown_payload":"未知的贴文版本。您可能需要更新Mask。","service_username_invalid":"无效的用户名","speed_up":"加速","save":"保存","skip":"跳过","next":"下一步","try":"试一下","share":"分享","share_to":"分享到...","sharing":"分享中","transfer":"转账","export":"导出","wallet_load_retry":"加载 {{symbol}} 失败,请点击重试。","wallet_name":"钱包名称","wallet_rename":"重新命名钱包","wallet_add_nft_invalid_owner":"此收藏品不属于您。","wallet_add_nft_already_added":"此收藏品已被添加。","wallet_loading_token":"正在加载代币","wallet_loading_nft_contract":"正在加载 NFT 合约...","wallet_search_contract_no_result":"没有结果或合同地址不符合查询标准。","wallet_search_no_result":"没有任何结果。","wallet_confirm_with_password":"使用密码确认","wallet_airdrop_nft_unclaimed_title":"未认领的NFT Airdrop:","plugin_not_enabled":"{{plugin}} (未启用)","plugin_external_unknown_plugin":"发现新的未知Mask插件,您想要加载它们吗?","plugin_external_loader_search_holder":"查找外部插件","plugin_external_loader_search_button":"查找插件","plugin_external_loader_search_sub_title":"每个外部插件必须托管在一个 URL 上。","plugin_external_loader_example_github":"官方插件示例可在 GitHub 找到。","plugin_external_loader_intro":"Mask外部插件是Mask Network的早期功能,其允许任何人开发外部Mask插件。","plugin_external_loader_alert_title":"外部插件:实验性Mask Network功能!","plugin_external_plugin_url":"插件 URL:","plugin_external_unverified_publisher":"发布者: {{publisher}} (未验证)","plugin_external_entry_title":"🧩 加载外部插件","plugin_external_name":"外部插件","plugin_external_get_started":"让我们开始吧!","plugin_airdrop_nft_start_time":"开始时间: {{date}}","plugin_airdrop_nft_end_time":"结束时间: {{date}}","plugin_airdrop_nft_expired":"已过期","plugin_airdrop_nft_claim":"认领","plugin_airdrop_nft_claimed":"已认领","plugin_airdrop_nft_check":"查看","plugin_airdrop_nft_check_address":"请检查您的地址","plugin_airdrop_nft_none_to_claim":"你没有可认领的空投。","plugin_airdrop_nft_number_to_claim":"您有 {{count}} {{name}} 可以认领。","plugin_airdrop_nft_claim_all":"认领代币","plugin_airdrop_nft_claim_successful":"代币已成功认领","plugin_airdrop_nft_claim_failed":"代币认领失败","wallet_balance":"余额","wallet_balance_eth":"余额(ETH)","wallet_new":"新建钱包","wallets":"钱包","wallet_status_button_change":"切换","wallet_status_button_disconnect":"断开连接","wallet_status_button_disconnecting":"正在断开连接","wallet_status_button_copy_address":"复制地址","wallet_transfer_account":"转账账户","wallet_transfer_receiving_account":"收款账户","wallet_transfer_to_address":"发送到地址","wallet_transfer_send":"发送","wallet_transfer_1559_placeholder":"ENS或地址(0x...)","wallet_transfer_title":"转账","wallet_transfer_error_amount_absence":"输入数额","wallet_transfer_error_address_absence":"输入收款人地址","wallet_transfer_error_same_address_with_current_account":"此接收地址与发送地址相同,请重新检查。","wallet_transfer_error_is_contract_address":"此接收地址为合约地址,请重新检查。","wallet_transfer_error_invalid_address":"收款人地址无效","wallet_transfer_error_no_address_has_been_set_name":"接收人地址无效。","wallet_transfer_error_no_support_ens":"网络不支持 ENS。","wallet_transfer_error_insufficient_balance":"{{symbol}} 余额不足","wallet_transfer_error_gas_price_absence":"输入Gas费","wallet_transfer_error_gas_limit_absence":"输入Gas Limit","wallet_transfer_error_max_fee_absence":"请输入Max fee","wallet_transfer_error_max_priority_fee_absence":"请输入Max priority fee","wallet_transfer_error_max_fee_too_low":"Max fee 在当前网络环境下过低","wallet_transfer_error_max_fee_too_high":"Max fee 高于必要值","wallet_transfer_error_max_priority_gas_fee_positive":"Max priority fee必须大于 0 GWEI","wallet_transfer_error_max_priority_gas_fee_too_low":"Max pirority fee 在当前网络环境下过低","wallet_transfer_error_max_priority_gas_fee_too_high":"Max priority fee过高。您或许支付了超过需要的费用。","wallet_transfer_error_max_priority_gas_fee_imbalance":"Max fee 不能低于 Max priority fee","wallet_transfer_gwei":"GWEI","wallet_transfer_between_my_accounts":"我的账户之间转账","wallet_risk_warning_dialog_title":"风险提示","wallet_risk_warning_no_select_wallet":"尚未选择钱包。","wallet_risk_warning_content":"亲爱的用户,

当再使用Mask Network中任何与钱包相关的插件时,请确认以下使用风险:

Mask Network提供非商业性免费服务。 该插件由社区成员和其他优秀的第三方去中心化应用团队提供。 由于去中心化网络的自由性和其他不确定的风险因素, 用户被要求适当地保护他们的敏感信息,例如钱包助记词和私钥。 请谨慎进行任何区块链合同交互。任何第三方去中心化应用(插件)造成的风险都由第三方去中心化应用自身承担。 点击确认按钮意味着您同意承担上述风险。","weekly":"每周","wallet_risk_confirm_confirming":"确认中","wallet_risk_confirm_failed":"确认失败","relative_time_days_ago":"{{days}} 天前","relative_time_hours_ago":"{{hours}} 小时前","relative_time_minutes_ago":"{{minutes}} 分钟前","relative_time_months_ago":"{{months}} 个月前","relative_time_seconds_ago":"{{seconds}} 秒前","relative_time_years_ago":"{{years}} 年前","plugin_chain_not_supported":"尚未在 {{chain}} 上支持。","plugin_wallet_snackbar_wait_for_confirming":"请在您的钱包中确认这笔交易","plugin_wallet_snackbar_hash":"交易已提交","plugin_wallet_snackbar_confirmed":"交易已确认","plugin_wallet_snackbar_success":"交易成功","plugin_wallet_snackbar_failed":"交易失败","plugin_wallet_snackbar_swap_successful":"已成功兑换代币","plugin_wallet_snackbar_swap_token":"兑换代币","plugin_wallet_guiding_step_1":"1. 选择网络","plugin_wallet_guiding_step_2":"2. 选择钱包","plugin_wallet_connect_with":"连接到","plugin_wallet_connect_with_retry":"再试一次","plugin_wallet_connected_with":"连接到","plugin_wallet_connecting_with":"连接到","plugin_wallet_metamask_error_already_request":"您已打开弹出窗口,请确认。","plugin_wallet_connect_tip":"请确保您的 {{providerName}} 钱包是由官方 {{providerShortenLink}} 提供的。","plugin_wallet_collections":"收藏品","plugin_wallet_select_a_token":"选择代币","plugin_wallet_select_a_nft_contract":"选择 NFT 合约","plugin_wallet_select_a_nft_owner":"选择 NFT 合约持有者","plugin_wallet_select_a_nft_operator":"选择 NFT 合约","plugin_wallet_fail_to_load_nft_contract":"加载 NFT 合约失败。请点击重试。","plugin_wallet_nft_approving_all":"正在解锁 {{symbol}}...","plugin_wallet_approve_all_nft":"解锁 {{symbol}}","plugin_wallet_approve_all_nft_successfully":"解锁 {{symbol}} 成功","plugin_wallet_connect_a_wallet":"连接钱包","plugin_wallet_confirm_risk_warning":"确认风险提示","plugin_wallet_no_gas_fee":"不够Gas费用","plugin_wallet_update_gas_fee":"Gas费用更新中…","plugin_wallet_invalid_network":"网络无效","plugin_wallet_select_a_wallet":"选择一个钱包","plugin_wallet_transaction":"交易记录","plugin_wallet_transaction_wait_for_confirmation":"等待确认中…","plugin_wallet_transaction_submitted":"您的交易已提交!","plugin_wallet_transaction_confirmed":"您的交易已确认!","plugin_wallet_transaction_reverted":"您的交易已被回退!","plugin_wallet_transaction_rejected":"您的交易已拒绝。","plugin_wallet_transaction_underpriced":"交易价格过低。","plugin_wallet_transaction_server_error":"由于JSON-RPC服务器内部出错,交易失败。","plugin_wallet_view_on_explorer":"区块链浏览器查看","plugin_ito_placeholder_when_token_unselected":"请先选择一个代币","plugin_wallet_wrong_network_tip":"请连接到一个适当的网络。","plugin_wallet_on_create":"创建钱包","plugin_wallet_on_connect":"连接钱包","plugin_wallet_wrong_network":"网络错误","plugin_wallet_pending_transactions":"{{count}} 个待定","plugin_wallet_import_wallet":"导入钱包","plugin_wallet_select_provider_dialog_title":"连接钱包","plugin_wallet_qr_code_with_wallet_connect":"使用WalletConnect兼容的钱包扫描二维码","plugin_wallet_token_unlock":"精确解锁","plugin_wallet_token_infinite_unlock":"无限解锁","plugin_wallet_connect_dialog_title":"WalletConnect","plugin_wallet_connect_safari_metamask":"连接到 MetaMask","plugin_wallet_connect_safari_rainbow":"连接到 Rainbow","plugin_wallet_connect_safari_trust":"连接到 Trust","plugin_wallet_connect_safari_im_token":"连接到 imToken","plugin_wallet_on_connect_in_firefox":"连接","plugin_wallet_return_mobile_wallet_options":"返回到移动钱包选项","plugin_wallet_view_qr_code":"查看二维码","plugin_wallet_switch_network":"切换到 {{network}} 网络","plugin_wallet_switch_network_under_going":"正在切换到 {{network}} 网络…","plugin_wallet_not_available_on":"在 {{network}} 网络上不可用。","plugin_wallet_connect_wallet":"连接钱包","plugin_wallet_connect_wallet_tip":"请连接钱包","plugin_wallet_name_placeholder":"输入1-12 个字符","plugin_wallet_fail_to_sign":"无法签名密码。","plugin_wallet_cancel_sign":"签名已取消。","plugin_red_packet_display_name":"插件:红包","plugin_red_packet_claimed":"已认领","plugin_red_packet_erc20_tab_title":"代币","plugin_red_packet_erc721_tab_title":"收藏品","plugin_red_packet_erc721_insufficient_balance":"余额不足","plugin_red_packet_details":"红包详情","plugin_red_packet_split_mode":"分享模式","plugin_red_packet_average":"平均","plugin_red_packet_random":"随机","plugin_red_packet_shares":"份额","plugin_red_packet_best_wishes":"祝好运!","plugin_red_packet_create_new":"新建","plugin_red_packet_claim":"认领","plugin_red_packet_claiming":"认领中...","plugin_red_packet_refund":"退款","plugin_red_packet_empty":"空的","plugin_red_packet_data_broken":"由于数据损坏,此红包无法发送。请在 {{duration}} 之后申请退款。","plugin_red_packet_refunding":"退款中","plugin_red_packet_select_existing":"历史红包","plugin_red_packet_share_unclaimed_message_official_account":"朋友们,我刚刚发现 @{{sender}} 在 {{network}} 网络发送了一个红包。 关注 @{{account}} (mask.io) 以获取红包。\\n#mask_io #LuckyDrop\\n{{payload}}","plugin_red_packet_share_unclaimed_message_not_twitter":"朋友们,我刚刚发现 @{{sender}} 在 {{network}} 网络发送了一个红包。\\n{{payload}}","plugin_red_packet_share_message_official_account":"我刚从@{{sender}} 在 {{network}} 网络上认领了一个红包。关注@{{account}} (mask.io) 来获取红包。\\n#mask_io #LuckyDrop\\n{{payload}}","plugin_red_packet_share_message_not_twitter":"我刚从@{{sender}} 在 {{network}} 网络上认领了一个红包。\\n{{payload}}","plugin_red_packet_nft_share_foreshow_message":"@{{sender}} 正在 {{network}} 网络上发送一个 NFT 红包。关注@{{account}} (mask.io) 以获取NFT 红包。\\n#mask_io #LuckyDrop\\n{{payload}}","plugin_red_packet_nft_share_foreshow_message_not_twitter":"@{{sender}} 正在 {{network}} 网络上发送一个 NFT 红包。 \\n{{payload}}","plugin_red_packet_nft_share_claimed_message":"我刚从@{{sender}} 在 {{network}} 网络上认领了一个 NFT 红包。关注@{{account}} (mask.io) 来获取红包。\\n#mask_io #LuckyDrop\\n{{payload}}","plugin_red_packet_nft_share_claimed_message_not_twitter":"我刚从@{{sender}} 在 {{network}} 网络上认领了一个 NFT 红包。\\n{{payload}}","plugin_red_packet_nft_tip":"这是一个 NFT 红包。","plugin_red_packet_nft_no_history":"您还没有创建任何NFT红包。尝试创建红包并与您的朋友分享。","plugin_red_packet_attached_message":"附加信息","plugin_red_packet_from":"来自:@{{name}}","plugin_red_packet_description_claimed":"你获得了 {{amount}} {{symbol}}","plugin_red_packet_description_expired":"此红包已过期。","plugin_red_packet_description_refunded":"此红包已退款。","plugin_red_packet_description_refund":"您可以退回 {{balance}} {{symbol}}。","plugin_red_packet_description_empty":"此红包是空的。","plugin_red_packet_description_broken":"此红包已被损坏。","plugin_red_packet_description_failover":"{{shares}} 份额 / {{total}} {{symbol}} 总金额","plugin_red_packet_claiming_from":"正在认领来自 {{name}} 的红包","plugin_red_packet_amount_per_share":"单个份额","plugin_red_packet_send_symbol":"发送 {{amount}} {{symbol}}","plugin_red_packet_amount_total":"总额","plugin_red_packet_next":"下一步","plugin_red_packet_back":"返回","plugin_red_packet_hint":"你可以在红包发送的24小时后提取红包余额。","plugin_red_packet_token":"代币","plugin_red_packet_message_label":"标题","plugin_red_packet_create":"创建一个红包","plugin_red_packet_create_with_token":"使用 {{symbol}} 创建红包","plugin_red_packet_history_duration":"时间: {{startTime}} ~ {{endTime}} (UTC+8)","plugin_red_packet_history_total_amount":"总额: {{amount}} {{symbol}}","plugin_red_packet_history_total_claimed_amount":"总额: {{claimedAmount}}/{{amount}} {{symbol}}","plugin_red_packet_history_claimed":"已认领: {{claimedShares}}/{{shares}} 份额","plugin_red_packet_history_split_mode":"分享模式:{{mode}}","plugin_red_packet_history_send":"发送","plugin_nft_red_packet_create":"创建一个NFT红包","plugin_red_packet_nft_account_name":"钱包账户","plugin_red_packet_nft_attached_message":"附加信息","plugin_red_packet_nft_total_amount":"总数","plugin_red_packet_nft_select_collection":"选择您的收藏品系列","plugin_red_packet_nft_max_shares":"NFT红包合约最多支持 {{amount}} 个NFT投放。","plugin_red_packet_nft_max_shares_tip":"NFT红包合约最多支持 {{amount}} 个NFT投放。","plugin_red_packet_nft_shift_select_tip":"您也可以使用 {{text}} 选择多个NFT。","plugin_red_packet_nft_non_existed_tip":"Token ID 不存在或不属于您。","plugin_red_packet_nft_select_all_option":"全部 ({{total}} NFT)","plugin_red_packet_nft_select_partially_option":"选择部分","plugin_red_packet_nft_approve_all_tip":"注意:在选择批准所有NFT时,合约中的所有NFT都将被授权默认销售,包括随后转移的NFT。","plugin_red_packet_completed":"已完成","plugin_red_packet_expired":"已过期","plugin_red_packet_indivisible":"每个份额的最小金额为 {{amount}} {{symbol}}","plugin_nft_red_packet_data_broken":"由于数据损坏,红包无法发送。","plugin_gitcoin_readme":"通过使用此服务,您将同时向 Gitcoin grants development fund 捐赠您5%捐款。","plugin_gitcoin_readme_fund_link":"https://gitcoin.co/gitcoin-sustainability-fund","plugin_gitcoin_select_a_token":"选择代币","plugin_gitcoin_enter_an_amount":"输入数额","plugin_gitcoin_grant_not_available":"授权不可用","plugin_gitcoin_insufficient_balance":"{{symbol}} 余额不足","plugin_gitcoin_donate":"捐赠","plugin_gitcoin_last_updated":"最新更新:","plugin_gitcoin_by":"提供者为:","plugin_gitcoin_view_on":"在 Gitcoin 上查看","plugin_trader_fail_to_load":"无法加载趋势信息自 ","plugin_trader_lbp_pool_in_balancer":"Balancer 的 LBP 池","plugin_trader_tutorial":"教程","plugin_trader_what_is_lbp":"什么是LBP?","plugin_trader_lbp_intro":"蓝色实线表示在{{symbol}}\'s LBP上的{{symbol}} 的历史价格。如果没有人购买,价格可能会继续下降。请理性进行投资决策。","plugin_trader_no_pools_found":"未找到池。","plugin_trader_safety_agree":"我已知悉","plugin_trader_view_on_etherscan":"在 Etherscan 上查看","plugin_trader_safety_alert_title":"代币安全警告","plugin_trader_safety_alert":"任何人都可以在Etherum上创建和命名任何ERC20代币, 包括创建假冒的现有代币和假冒是已声称没有发行代币的项目方发行的代币。 与以太坊相似,这个网站自动跟踪所有ERC20代币,不受密码完整性的影响。 请在与任何ERC20 令牌交互之前进行您自己的研究。","plugin_trader_total_supply":"总供应量","plugin_trader_circulating_supply":"流通总量","plugin_trader_volume_24":"交易量 (24h)","plugin_trader_market_cap":"市值","plugin_trader_data_source":"数据源","plugin_trader_price_updated":"价格已更新","plugin_savings":"储蓄","plugin_no_protocol_available":"储蓄功能尚未在此网络支持。","plugin_savings_wallet":"钱包","plugin_savings_operation":"操作","plugin_savings_amount":"数额","plugin_savings_deposit":"存入","plugin_savings_withdraw":"取出","plugin_savings_process_deposit":"存入操作处理中","plugin_savings_process_withdraw":"取出操作处理中","plugin_trader_swap":"兑换","plugin_trader_wrap":"包装","plugin_trader_unwrap":"去包装","plugin_trader_buy":"买入","plugin_trader_no_data":"暂无数据","plugin_trader_tab_market":"概况","plugin_trader_tab_price":"价格","plugin_trader_tab_exchange":"交易","plugin_trader_tab_swap":"兑换 🔥","plugin_trader_table_exchange":"交易所","plugin_trader_table_pair":"交易对","plugin_trader_table_price":"价格","plugin_trader_table_volume":"交易量 (24h)","plugin_trader_table_updated":"更新时间","plugin_trader_error_amount_absence":"输入数额","plugin_trader_error_insufficient_balance":"{{symbol}} 余额不足","plugin_trader_error_insufficient_lp":"该交易的流动性不足","plugin_trade_error_input_amount_less_minimum_amount":"提交兑换的数额低于最低数额","plugin_trader_slippage_tolerance":"滑点容许值","plugin_trader_swap_from":"从","plugin_trader_swap_to":"至(预计)","plugin_trader_gas_fee":"Gas 费用","plugin_trader_unlock_symbol":"解锁 {{symbol}}","plugin_trader_unlock_tips":"您必须授予 {{provider}} 智能合约使用您的 {{symbol}} 的权限。每个代币只需要授权一次。","plugin_trader_swap_amount_symbol":"兑换 {{amount}} {{symbol}} ","plugin_trader_confirm_from":"从","plugin_trader_confirm_to":"至","plugin_trader_confirm_max_price_slippage":"最大价格滑点","plugin_trader_confirm_minimum_received":"收到的最低数额","plugin_trader_confirm_tips":"最大价格滑点设置过低可能会导致因价格波动而交易失败","plugin_trader_price_impact_warning_tips":"最大价格滑点设置过高可能会导致最低返回数额低于期望数额。","plugin_trader_confirm_swap":"确认兑换","plugin_trader_accept":"同意","plugin_trader_price_impact":"价格影响","plugin_trader_price_image_value":"价格影响({{percent}})","plugin_trader_slippage_warning":"在当前滑点设置下,您可能会少接收10%的期待值。","plugin_trader_confirm_price_impact":"确认价格影响 {{percent}}","plugin_trader_max_slippage":"最大滑点","plugin_trader_gas_setting_instant":"即时","plugin_trader_gas_setting_high":"高速","plugin_trader_gas_setting_medium":"中等","plugin_trader_gas_setting_standard":"标准","plugin_trader_gas_setting_fast":"快速","plugin_trader_gas_setting_custom":"自定义","plugin_trader_tx_cost_usd":"(~{{usd}} 美元)","plugin_trader_gas_option":"{{option}} ({{value}}) Gwei","plugin_trader_no_enough_liquidity":"流动性不足","plugin_trader_no_trade":"请选择一个交易","plugin_poll_display_name":"插件:投票","plugin_poll_question_hint":"询问...","plugin_poll_options_hint":"选项","plugin_poll_length":"投票时长","plugin_poll_length_days":"天","plugin_poll_length_hours":"小时","plugin_poll_length_minutes":"分钟","plugin_poll_length_unknown":"未知","plugin_poll_create_new":"创建新的","plugin_poll_send_poll":"发送投票","plugin_poll_status_voting":"正在投票中","plugin_poll_status_voted":"已投票。","plugin_poll_deadline":"距离投票结束还有{{time}}","plugin_ito_empty_token":"无需解锁此ITO上的任何代币。","plugin_ito_locked":"ITO 已锁定","plugin_ito_share":"分享","plugin_ito_enter":"参加","plugin_ito_dialog_swap_title":"兑换 {{token}}","plugin_ito_dialog_swap_reminder_title":"兑换提醒","plugin_ito_dialog_swap_unlock_title":"提前解锁代币","plugin_ito_dialog_swap_share_title":"分享","plugin_ito_dialog_swap_exchange":"以兑换","plugin_ito_dialog_swap_panel_title":"兑换","plugin_ito_dialog_swap_exceed_wallet_limit":"超过单个钱包限制","plugin_ito_swap_ration_label":"兑换率","plugin_ito_swap_unlucky_fail":"抱歉运气不够,请到区块链浏览器查找原因,再重试一遍。","plugin_ito_swap_only_once_remind":"每个钱包只能参与一次.","plugin_ito_swap_title":"{{amount}} {{token}} / {{swap}} ","plugin_ito_swap_end_date":"在 {{date}} 后结束。","plugin_ito_dialog_claim_reminder_agree":"我理解","plugin_ito_dialog_claim_reminder_text1":"任何人都可以在 {{networkType}} 上创建自命名名称的代币。 包括创建虚假版本的已有代币,以及没有任何实际项目的代币。","plugin_ito_dialog_claim_reminder_text2":"此接口可以通过代币地址加载任意代币。与任意代币进行交互前,请格外小心并对此进行研究确认。","plugin_ito_dialog_claim_reminder_text3":"如果您从这此处购买一些代币,您可能无法再将其售出。","plugin_ito_dialog_claim_reminder_text4":"该等权利并未在司法管辖区域内全部或部分,直接或间接提供出售,向其提供或出售该等权利将是非法的。","plugin_ito_expired":"已过期","plugin_ito_create_new":"新建","plugin_ito_claim_all_title":"认领代币","plugin_ito_claim_all_status_unclaimed":"未认领","plugin_ito_claim_all_status_locked":"被锁定","plugin_ito_claim_all_unlock_time":"解锁时间: {{time}}","plugin_ito_claim_all_dialog_title":"认领您的代币","plugin_ito_swapping":"如果幸运之神眷顾,您将获得 {{amount}} {{symbol}} 。可如果不幸 ITO 已经没有库存了,您将收到退款。","plugin_ito_advanced":"高级选项","plugin_ito_advanced_ip_region":"IP 地区限制","plugin_ito_advanced_delay_unlocking":"延迟解锁代币","plugin_ito_advanced_contract":"插件合约","plugin_ito_select_existing":"历史","plugin_ito_display_name":"插件:ITO","plugin_ito_sell_token":"代币","plugin_ito_sell_price":"价格","plugin_ito_sell_total_amount":"输入","plugin_ito_allocation_per_wallet":"兑换限制 {{limit}} {{token}}","plugin_ito_wait_unlock_time":"在 {{unlockTime}} 后认领。","plugin_ito_claim":"认领","plugin_ito_claiming":"认领中...","plugin_ito_claim_all":"认领全部","plugin_ito_qualification_start_time":"资格认证开始时间:","plugin_ito_error_qualification_start_time":"无效:资格认证开始时间应该早于ITO结束时间","plugin_ito_error_invalid_qualification":"无效的资格认证地址","plugin_ito_unlock_time_cert":"ITO Mask 解锁时间为 {{date}}。","plugin_ito_unlock_time":"解锁时间 {{zone}}","plugin_ito_total_claimable_count":"总计: ","plugin_ito_qualification_label":"插件合约","plugin_ito_message_label":"标题","plugin_ito_region_label":"IP 地区选择","plugin_ito_region_confirm_label":"IP 地区","plugin_ito_region_list":"{{ select }} / {{ all }} 地区","plugin_ito_region_all":"全部地区","plugin_ito_region_search":"输入要搜索的地区名称","plugin_ito_region_ban":"这个池被禁止对您所在区域开放","plugin_ito_next":"下一步","plugin_ito_back":"返回","plugin_ito_transaction_dialog_summary_with_no_token":"创建一个ITO。","plugin_ito_transaction_dialog_summary":"使用 {{amount}} {{symbol}} 创建一个 ITO","plugin_ito_swap":"兑换","plugin_ito_send_tip":"您可以在历史标签页中找到您过去的 ITO。","plugin_ito_send_text":"发送 {{total}} {{symbol}}","plugin_ito_error_enter_amount":"输入数额","plugin_ito_error_select_token":"选择代币","plugin_ito_error_enter_amount_and_token":"输入数额并选择一个代币","plugin_ito_error_allocation_absence":"请输入兑换限制","plugin_ito_error_allocation_invalid":"无效的数额","plugin_ito_error_exchange_time":"无效:开始时间不能晚于结束时间","plugin_ito_error_unlock_time":"无效:结束时间不能晚于解锁时间","plugin_ito_error_balance":"{{symbol}} 余额不足","plugin_ito_list_start_date":"开始时间 {{date}}","plugin_ito_list_end_date":"结束时间 {{date}}","plugin_ito_list_sold_total":"已兑换:","plugin_ito_list_total":"总共:","plugin_ito_list_table_type":"类型","plugin_ito_list_table_price":"兑换率","plugin_ito_no_claimable_token":"您的钱包地址没有任何可以认领的代币。","plugin_ito_list_table_sold":"已兑换","plugin_ito_list_table_got":"余额","plugin_ito_list_button_send":"发送","plugin_ito_withdraw":"提取","plugin_ito_qualification_loading":"资格认证中…","plugin_ito_qualification_failed":"钱包地址不在列表内。","plugin_ito_withdrawn":"已提取","plugin_ito_your_swapped_amount":"你兑换了 {{amount}} {{symbol}}","plugin_ito_your_claimed_amount":"你认领了 {{amount}} {{symbol}}","plugin_ito_your_refund_amount":"退回 {{amount}} {{symbol}}.","plugin_ito_unlock_in_advance":"提前解锁","plugin_ito_swapped_status":"{{remain}} / {{total}} {{token}} 已兑换","plugin_ito_congratulations":"祝贺您!","plugin_ito_out_of_stock_hit":"祝您下次好运","plugin_ito_claim_success_share":"我刚刚用 @{{account}} 来交换${{symbol}},参加了 @{{user}}的 #ITO。 安装mask.io并开始您的初次推特优惠! \\n {{link}}","plugin_ito_claim_success_share_no_official_account":"我刚刚交换了${{symbol}} 并参加了 @{{user}}的 #ITO。 安装mask.io并开始您的初次推特优惠! \\n {{link}}","plugin_ito_claim_foreshow_share":"{{symbol}}({{name}}) 正在发布一个新的 #ITO。快来加入吧!关注 @{{account}} (mask.io) 来查找更多活动! \\n {{link}}","plugin_ito_claim_foreshow_share_no_official_account":"{{symbol}}({{name}}) 正在发布一个新的 #ITO。快来加入吧! \\n {{link}}","plugin_ito_password":"密码:{{password}}","plugin_ito_status_no_start":"尚未开始","plugin_ito_status_ongoing":"进行中","plugin_ito_status_out_of_stock":"售罄","plugin_ito_loading":"ITO 加载中...","plugin_ito_amount_unlocked":"已解锁 {{amount}} {{symbol}}","plugin_ito_amount_unlocked_infinity":"解锁无限的 {{symbol}}","plugin_ito_unlocking_symbol":"正在解锁 {{symbol}}","plugin_ito_continue":"继续","plugin_ito_view_on_explorer":"在区块链浏览器查看","plugin_ito_unlock_tip":"允许合约 {{address}} 在新的 ITO 回合开始时使用您的 {{symbol}} 代币。","plugin_collectible_you":"您","plugin_collectible_done":"完成","plugin_collectible_retry":"重试","plugin_collectible_get_more_token":"获取更多 {{token}}","plugin_collectible_sell":"出售","plugin_collectible_checkout":"付款","plugin_collectible_place_bid":"出价","plugin_collectible_buy_now":"立即购买","plugin_collectible_make_offer":"发出报价","plugin_collectible_post_listing":"上架","plugin_collectible_description":"当前价格是 {{price}} {{symbol}}","plugin_collectible_article":"文章","plugin_collectible_overview":"简介","plugin_collectible_details":"详情","plugin_collectible_offers":"报价","plugin_collectible_listing":"上架列表","plugin_collectible_history":"历史","plugin_collectible_event":"事项","plugin_collectible_unit_price":"单价","plugin_collectible_price":"价格","plugin_collectible_from":"从","plugin_collectible_to":"至","plugin_collectible_date":"日期","plugin_collectible_quantity":"数量","plugin_collectible_expiration":"有效期至","plugin_collectible_no_offers":"没有任何报价","plugin_collectible_no_listings":"没有任何上架历史","plugin_collectible_base":"底价","plugin_collectible_properties":"属性","plugin_collectible_about":"关于","plugin_collectible_chain_info":"区块链信息","plugin_collectible_contract_address":"合约地址","plugin_collectible_token_id":"Token ID","plugin_collectible_block_chain":"区块链","plugin_collectible_create_by":"创建者","plugin_collectible_owned_by":"持有者","plugin_collectible_view_on":"查看于","plugin_collectible_no_history":"无历史记录","plugin_collectible_ensure_unreviewed_item":"请确保未经审核的收藏品","plugin_collectible_check_tos_document":"请查阅 ToS 文档","plugin_collectible_not_been_reviewed_by_opensea":"此收藏品尚未经 OpenSea 审查。","plugin_collectible_reviewed_tips":"你需要格外谨慎。 任何人都可以在区块链上创建一个带有任何名称的收藏品。 包括现有收藏品的假版本。 请在与这个收藏品交互时格外小心并进行研究,以确保它是您想要的收藏品。","plugin_collectible_total":"总共","plugin_collectible_subtotal":"小计","plugin_collectible_item":"收藏品","plugin_collectible_approved_tips":"通过勾选此框,我承认此收藏品未经过OpenSeare审核\\n 或批准。","plugin_collectible_agree_terms":"通过勾选此框,我同意OpenSea的 服务条款。","plugin_collectible_convert_eth":"兑换 ETH","plugin_collectible_sale_end":"出售结束于 {{time}}","plugin_collectible_set_initial_price":"设置初始价格。","plugin_collectible_ending_price_tip":"在您转让或取消之前将会一直出售。","plugin_collectible_starting_price":"初始价格","plugin_collectible_ending_price":"结束价格","plugin_collectible_ending_price_less_than_staring":"必须小于或等于起始价格。价格将线性上升到此金额,直到失效日期为止。","plugin_collectible_expiration_date":"失效日期","plugin_collectible_schedule_date":"预定日期","plugin_collectible_auto_cancel_tip":"此时您上架的收藏品将自动结束。无需取消!","plugin_collectible_schedule_future_date":"预定一个未来日期。","plugin_collectible_buyer_address":"买家地址","plugin_collectible_buyer_address_placeholder":"请输入买家地址。","plugin_collectible_buyer_address_helper_text":"只允许买家购买。","plugin_collectible_include_ending_price":"包含结束价格","plugin_collectible_include_ending_price_helper":"添加一个结束价格将允许该上架收藏品过期,或允许降价,在找到买家为止。","plugin_collectible_schedule_for_a_future_time":"预定一个未来的日期","plugin_collectible_schedule_for_a_future_time_helper":"您可以将此上架收藏品预约为只能在未来的某个日期购买。","plugin_collectible_privacy":"隐私政策","plugin_collectible_privacy_helper":"您可以公开出售您上架的收藏品,或者指定一个买家地址允许购买您上架的收藏品。","plugin_collectible_enter_a_price":"请输入价格","plugin_collectible_insufficient_balance":"余额不足","plugin_collectible_invalid_schedule_date":"无效的预定日期","plugin_collectible_invalid_ending_price":"无效的结束价格","plugin_collectible_invalid_expiration_date":"无效的失效日期","plugin_collectible_invalid_buyer_address":"无效的买家地址","plugin_collectible_set_price":"设置价格","plugin_collectible_highest_bid":"最高竞价","plugin_collectible_minimum_bid":"最低出价","plugin_collectible_set_starting_bid_price":"设置您的起始竞价价格。","plugin_collectible_reserve_price":"底标价格","plugin_collectible_reserve_price_helper":"通过设置底标价格来建立一个隐形的限制。底标价格必须大于或等于起始价格。","plugin_collectible_auction_auto_end":"您的拍卖将在这个时候自动结束,最高出价者将将赢得拍卖。无需取消!","plugin_collectible_enter_minimum_bid":"输入最低出价","plugin_collectible_enter_reserve_price":"输入底标价格","plugin_collectible_invalid_reserve_price":"无效底标价格","plugin_collectible_place_a_bid":"出价","plugin_collectible_make_an_offer":"发出报价","plugin_collectible_approved_by_open_sea":"通过勾选此框,我确认此收藏品尚未被 OpenSea 审核或批准。","plugin_collectible_legal_text":"通过勾选此框,我同意OpenSea的 服务条款。","plugin_cryptoartai_description_title":"描述","plugin_cryptoartai_edition":"版本:","plugin_cryptoartai_activity_type":"类型","plugin_cryptoartai_status":"状态","plugin_cryptoartai_time":"时间","plugin_cryptoartai_price":"价格","plugin_cryptoartai_latest_bid":"最新的标价","plugin_cryptoartai_buy":"购买","plugin_cryptoartai_buy_now":"立即购买","plugin_cryptoartai_current_balance":"当前余额","plugin_cryptoartai_current_highest_offer":"当前最高报价为 ","plugin_cryptoartai_bid_least":"您必须至少出价 ","plugin_snapshot_info_title":"相关信息","plugin_snapshot_info_strategy":"策略","plugin_snapshot_info_author":"作者","plugin_snapshot_info_ipfs":"IPFS","plugin_snapshot_info_start":"开始日期","plugin_snapshot_info_end":"结束日期","plugin_snapshot_info_snapshot":"Snapshot","plugin_snapshot_result_title":"结果","plugin_snapshot_votes_title":"投票","plugin_snapshot_no_power":"没有投票权","plugin_snapshot_vote_success":"投票成功!","plugin_snapshot_vote":"投票","plugin_snapshot_vote_choice":"选项","plugin_snapshot_vote_power":"您的投票权","plugin_snapshot_vote_title":"投出您的票","plugin_snapshot_vote_confirm_dialog_title":"确认投票","plugin_snapshot_vote_confirm_dialog_choice":"您确定要投票给 \\"{{ choiceText }}\\" 吗?","plugin_snapshot_vote_confirm_dialog_warning":"此操作不可撤销。","plugin_snapshot_current_result_title":"当前结果","plugin_snapshot_download_report":"下载报告","plugin_find_truman_status_puzzle":"故事解谜","plugin_find_truman_status_poll":"情节发展投票","plugin_find_truman_status_result":"阶段性结果","plugin_find_truman_status_puzzle_result":"揭晓答案","plugin_find_truman_status_poll_result":"情节发展确认","plugin_find_truman_puzzle_to_be_revealed":"谜题等待揭晓。","plugin_find_truman_puzzles_to_be_revealed":"谜题等待揭晓。","plugin_find_truman_poll_to_be_revealed":"投票仍在进行。","plugin_find_truman_polls_to_be_revealed":"投票仍在进行","plugin_find_truman_puzzle_underway":"这个谜题尚未被揭晓。","plugin_find_truman_puzzle_rate":"准确度: ","plugin_find_truman_voting_underway":"此投票仍在进行。","plugin_find_truman_voting_rate":"点击率: ","plugin_find_truman_submit_failed":"提交失败。","plugin_find_truman_vote":"投票","plugin_find_truman_votes":"投票","plugin_find_truman_selected":"已选择","plugin_find_truman_unselect":"选择","plugin_find_truman_answer":"答案","plugin_find_truman_result":"结果","plugin_find_truman_buy":"购买","plugin_find_truman_decrypted_by":"由FindTruman解密:","plugin_find_truman_insufficient_nft":"本次投票需要以下指定的NFT。","plugin_find_truman_buy_nft_tip":"至少需要此 NFT的{{count}} 个副本。","plugin_find_truman_connect_wallet_tip":"请连接一个钱包。","plugin_find_truman_no_participation_tip":"您当前还没有参与任何投票。","plugin_dhedge_managed_by":"由 {{managerName}} 管理","plugin_dhedge_manager_share":"持有 {{managerShare}}%份额的池子","plugin_dhedge_manager_share_more_than_50":"持有超过50% 的池子","plugin_dhedge_value_managed":"管理的金额","plugin_dhedge_lifetime_return":"终生回报","plugin_dhedge_risk_factor":"风险因子","plugin_dhedge_tab_stats":"统计信息","plugin_dhedge_tab_chart":"图表","plugin_dhedge_strategy":"策略","plugin_dhedge_see_less":"显示更少","plugin_dhedge_see_more":"显示更多","plugin_dhedge_no_data":"暂无数据","plugin_dhedge_fetch_error":"无法获取数据,请重试!","plugin_dhedge_loading_chart":"加载中","plugin_dhedge_invest":"投资","plugin_dhedge_buy_token":"获得 {{symbol}}","plugin_dhedge_enter_an_amount":"输入数额","plugin_dhedge_insufficient_balance":"{{symbol}} 余额不足","plugin_dhedge_loading":"加载中...","plugin_dhedge_pool_not_found":"无效的池子地址。","plugin_dhedge_smt_wrong":"发生了一些错误!","plugin_pooltogether_tab_pools":"池子","plugin_pooltogether_tab_account":"账号","plugin_pooltogether_no_pool":"此网络上没有池。","plugin_pooltogether_pool_ended":"已获奖励","plugin_pooltogether_deposit":"存入 {{token}}","plugin_pooltogether_apr":"在 {{token}} 中获得 {{apr}} % 的 APR","plugin_pooltogether_view_pool":"查看池","plugin_pooltogether_prize":"{{period}} 奖励","plugin_pooltogether_share":"我刚刚把 {{amount}} {{cashTag}}{{symbol}} 存入 {{pool}},我能在本周赢得奖金吗?\\n跟随@PoolTogether_ 和 @{{account}} (mask.io)一起参与吧。\\n#pooltogether #mask_io","plugin_pooltogether_share_no_official_account":"我刚刚把 {{amount}} {{cashTag}}{{symbol}} 存入 {{pool}},我能在本周赢得奖金吗?","plugin_pooltogether_buy":"获得 {{symbol}}","plugin_pooltogether_enter_an_amount":"输入数额","plugin_pooltogether_insufficient_balance":"{{symbol}} 余额不足","plugin_pooltogether_deposit_title":"存入 {{token}} 以获胜。","plugin_pooltogether_odds_title":"新的奖励几率:","plugin_pooltogether_odds_value":"{{value}} {{period}} 中的 1 个!","plugin_pooltogether_short_odds_value":"{{value}} 中的 1 个!","plugin_pooltogether_my_deposits":"存款总数","plugin_pooltogether_no_account_pool":"您在此网络中没有任何池","plugin_pooltogether_missing_pool":"缺少一些存款?请检查完整的列表:\\n","plugin_pooltogether_winning_odds":"奖励几率:","plugin_pooltogether_manage":"管理","plugin_pooltogether_token_not_found":"未找到代币!","plugin_good_ghosting_loading_other_player_stats":"正在加载其他玩家的统计数据","plugin_good_ghosting_loading_game_stats":"正在加载游戏统计数据","plugin_good_ghosting_game_duration":"游戏时长","plugin_good_ghosting_current_round":"当前轮数","plugin_good_ghosting_recurring_deposit":"每轮存款量","plugin_good_ghosting_round_length":"每轮时长","plugin_good_ghosting_pool_apy":"池的年化收益率","plugin_good_ghosting_pool_earnings":"池中收益","plugin_good_ghosting_extra_rewards":"额外奖励","plugin_good_ghosting_game_launched":"游戏已开始","plugin_good_ghosting_join_round":"加入此轮","plugin_good_ghosting_join_deadline":"加入截止时间","plugin_good_ghosting_deposit":"存入 {{index}}","plugin_good_ghosting_deposit_deadline":"存款截止时间 {{index}}","plugin_good_ghosting_game_over":"游戏结束","plugin_good_ghosting_join_game":"加入游戏","plugin_good_ghosting_early_withdraw_info":"如果您想要退出正在进行的游戏,您可能会被收取一笔小额费用{{amount}} {{token}}, 以补偿储蓄池中剩余的玩家。","plugin_good_ghosting_rules":"规则","plugin_good_ghosting_something_went_wrong":"出现错误。请重试。","plugin_good_ghosting_view_on_explorer":"在浏览器查看","plugin_good_ghosting_checking_balance":"查询账户余额...","plugin_good_ghosting_insufficient_balance":"您的钱包中需要至少有{{amount}} {{token}} 才能执行此操作。","plugin_good_ghosting_balance_error":"查询余额失败。点击重试。","plugin_unlockprotocol_no_access":"您没有访问此内容的权限","plugin_unlockprotocol_no_lock_found":"未找到任何锁。请在 创建主面板 创建自己的锁。","plugin_unlockprotocol_server_error":"服务器出现错误,请稍后重试。","popups_following_permissions":"插件 ({{pluginName}}) (托管于{{pluginURL}}) 将请求以下权限:","popups_permissions":"许可权限","popups_mask_requests_permission":"Mask Network需要以下权限","popups_permission_request":"请求授权","popups_permission_request_content":"为继续后续操作,Mask Network需要获取权限以访问以下URL:","popups_welcome":"欢迎","popups_wallet_token":"代币","popups_wallet_dialog_legacy_wallet_tip":"已检测到旧钱包,请点击确认以恢复所有钱包。","popups_wallet_set_payment_password":"设置支付密码","popups_wallet_payment_password":"支付密码","popups_wallet_re_payment_password":"再次输入支付密码","popups_wallet_set_up_payment_password":"设置支付密码","popups_wallet_payment_password_tip":"支付密码必须是数字、大小写字母和特殊字符中的2个类别的组合,长度为 8-20 个字符。","popups_wallet_go_back":"返回","popups_wallet_start_up_tip":"请连接到您的钱包,可选择创建一个新钱包或使用助记词恢复一个旧钱包。","popups_wallet_name_placeholder":"输入1-12 个字符","popups_wallet_name_mnemonic":"助记词","popups_wallet_name_json_file":"Json文件","popups_wallet_name_private_key":"私钥","popups_wallet_name_mnemonic_placeholder":"请输入以空格分隔的助记词","popups_wallet_name_origin_password":"原密码","popups_wallet_tab_assets":"资产","popups_wallet_tab_activity":"交易动态","popups_wallet_derivation_path":"派生路径 ({{ path }})","popups_wallet_next":"下一步","popups_wallet_backup_wallet":"备份钱包","popups_wallet_backup_json_file":"JSON 文件","popups_wallet_backup_private_key":"私钥","popups_wallet_backup_json_file_confirm_password_tip":"此文件已使用您当前的支付密码加密保存。 导入钱包时请使用当前支付密码解密此文件。","popups_wallet_backup_private_key_tip":"请不要向任何人暴露您的私钥。私钥不需要解密即可在任何支持EVM兼容的链上钱包中使用。","popups_wallet_backup_input_password":"输入您的密码","popups_wallet_backup_json_file_drag_tip":"将您的文件拖动到这里…","popups_wallet_backup_json_file_click_tip":"点击选择或拖放文件到这里","popups_wallet_enter_your_wallet_name":"输入钱包名称","popups_wallet_delete_tip":"您确定要删除这个钱包吗?如果没有助记词或私钥,您的钱包将无法恢复。","popups_wallet_confirm_payment_password":"使用支付密码确认","popups_wallet_token_buy":"购买","popups_wallet_token_send":"发送","popups_wallet_token_swap":"兑换","popups_wallet_view_on_explorer":"在区块链浏览器查看","popups_wallet_gas_fee_settings":"设置Gas费用","popups_wallet_gas_fee_settings_description":"Gas是向以太坊矿工支付的费用,矿工们偏向以较高的Gas费用进行交易。 Gas费用过低的交易可能会失败,支付的Gas费用将不会退回。","popups_wallet_gas_fee_settings_low":"低","popups_wallet_gas_fee_settings_medium":"中","popups_wallet_gas_fee_settings_high":"高","popups_wallet_gas_fee_settings_usd":" ≈ {{usd}} 美元","popups_wallet_gas_fee_settings_gas_limit":"Gas Limit","popups_wallet_gas_fee_settings_max_priority_fee":"Max priority fee","popups_wallet_gas_fee_settings_max_fee":"Max fee","popups_wallet_gas_fee_settings_min_gas_limit_tips":"Gas limit 必须至少 {{limit}}","popups_wallet_unsupported_network":"不支持的网络类型","popups_wallet_signature_request":"签名请求","popups_wallet_signature_request_message":"信息","popups_wallet_contract_interaction":"合约交互","popups_wallet_token_unlock_permission":"代币解锁权限","popups_wallet_token_infinite_unlock":"无限解锁","popups_wallet_contract_interaction_transfer":"转账","popups_wallet_contract_interaction_gas_fee":"Gas fee","popups_wallet_contract_interaction_edit":"编辑","popups_wallet_contract_interaction_total":"总共","popups_wallet_password_dont_match":"密码不一致。","popups_wallet_password_satisfied_requirement":"密码格式不符合要求。","popups_wallet_password_length_error":"密码长度不符合要求。","popups_wallet_unlock_wallet":"解锁钱包","popups_wallet_unlock_error_password":"密码不正确","popups_wallet_activity_to_address":"至: {{address}}","popups_wallet_transfer_error_tip":"网络连接失败或合约交互错误导致发送交易失败。","popups_wallet_transactions_pending":"待定中...","popups_wallet_re_send":"重新发送","popups_wallet_choose_token":"选择代币","popups_wallet_gas_price":"Gas费","popups_wallet_done":"完成","popups_wallet_recovered":"恢复的钱包","popups_wallet_no_transactions":"你没有任何交易。","popups_missing_parameter_caption":"请关闭此页面。","popups_persona_connect_to":"连接到 {{type}}","popups_persona_disconnect":"断开连接","popups_persona_logout":"登出","popups_persona_disconnect_tip":"身份登出后,您所关联的社交网络账户将不能解密过去的加密消息。 如果您需要重新使用您的身份,您可以使用您的身份助记词,身份私钥,本地或云端备份进行恢复。","popups_persona_persona_name_exists":"此身份名称已存在","popups_persona_sign_request_title":"签名请求","popups_persona_sign_request_message":"信息","popups_password_do_not_match":"备份密码不正确","popups_backup_password":"备份密码","popups_rename_error_tip":"最大长度为 {{length}} 个字符。","nft_wallet_label":"钱包","plugin_profile_no_wallets":"在此连接您的钱包。
此部分将显示给您的加密朋友。
显示内容包括数字艺术、捐赠、徽章
和其他链上的公开信息。","plugin_vcent_last_offer_at":"最新的OFFER为","nft_input_address_label":"请输入合约地址","nft_input_tokenid_label":"请输入Token ID","nft_owner_hint":"此 NFT 不存在或不属于您。","nft_add_dialog_title":"添加收藏品","nft_add_button_label":"添加","nft_list_title":"NFT 头像","nft_wallet_change":"更改","nft_button_add_collectible":"添加收藏品","nft_avatar":"NFT 头像","web3_tab_hint":"未发现任何地址。","nft_button_set_avatar":"设置 NFT 头像"}'); -;// CONCATENATED MODULE: ./shared-ui/locales/zh-TW.json -const zh_TW_namespaceObject = JSON.parse('{"database_backup":"備份資料庫","database_clear":"清除資料庫","edit":"編輯","clear":"清除","more":"更多","approve":"同意","address":"地址","gas_price":"礦工費","redirect_to":"跳轉至","sign":"簽署","reload":"重新讀取","load":"加載","no_data":"查無數據","tags":"標記","contract":"合約","initializing":"初始化中...","redirect_alert":"如果你的瀏覽器沒有跳轉, 請點擊此處.","add_token":"新增代幣","add_nft_contract_search_hint":"檢索NFT合約名稱或地址","applications":"應用","additional_post_box__encrypted_post_pre":"使用 #mask_io 解密這篇貼文! {{encrypted}}","additional_post_box__encrypted_post_pre_red_packet_twitter_official_account":"用 #mask_io @{{account}} 開啟紅包 {{encrypted}}","additional_post_box__encrypted_post_pre_red_packet":"用 #mask_io 開啟紅包 {{encrypted}}","additional_post_box__steganography_post_pre":"這張圖片是使用 #mask_io 加密。 📪🔑 安裝 mask.io 解密。 {{random}}","auto_paste_failed_dialog_title":"手動貼上","auto_paste_failed_dialog_content":"請複製下方文章或圖片 (如果有的話) 然後發佈它","auto_paste_failed_dialog_image_caption":"在新分頁中開啟","auto_paste_failed_snackbar":"您需要手動貼上加密的內容嗎?","auto_paste_failed_snackbar_action":"告訴我怎麼做","auto_paste_failed_snackbar_action_close":"關閉","automation_request_click_post_button":"請按「發文」按鈕以開啟發文對話框","try_again":"再試一次","ok":"確認","cancel":"取消","comment_box__placeholder":"添加加密留言…","confirm":"確認","copy_text":"複製文字","loading_failed":"讀取失敗","copy_image":"複製圖片","copy_success_of_wallet_addr":"複製錢包地址成功!","copy_success_of_text":"複製文字成功!","copy_success_of_image":"圖片複製成功!","connecting":"正在連接…","create":"建立","copied":"已複製","dashboard_tab_collectibles":"收藏","dashboard_no_collectible_found":"找不到收藏品","decrypted_postbox_add_recipients":"新增收件人","decrypted_postbox_decrypting":"Mask 正在解密…","decrypted_postbox_decoding":"Mask 正在解碼…","decrypted_postbox_decrypting_finding_person_key":"Mask 正在尋找這個作者的公鑰…","decrypted_postbox_decrypting_finding_post_key":"Mask 正在取得貼文金鑰以解密此貼文…","decrypted_postbox_author_mismatch":"最初由 {{name}} 發佈","decrypted_postbox_title":"已由 Mask 解密:","dismiss":"取消","delete":"刪除","delete_wallet":"刪除錢包","hide_token":"隱藏代幣","hide_token_hint":"您可以在將來新增 {{token}} 藉由到錢包面板中的「新增代幣」。","done":"完成!","download":"下載","failed":"失敗","buy_now":"立即購買","setup_guide_find_username_text":"Mask 需要使用者名稱將您的個人資料連接到您的角色。
請確保它是正確的。","setup_guide_connect_auto":"連線","setup_guide_connect_failed":"連線失敗… 請再試一次。","user_guide_tip_connected":"已成功連接此帳號","import":"導入","no_search_result":"沒有結果","unlock":"解鎖","payload_bad":"這篇貼文似乎被破壞了。Mask 無法解密它。","payload_incomplete":"這篇貼文不完整。你需要查看全文才能解密。","payload_not_found":"找不到貼文。","payload_throw_in_alpha41":"不推薦使用 Alpha41。告訴你的朋友升級Mask!","personas":"角色","browser_action_enter_dashboard":"進入儀錶板","post_dialog__button":"完成","post_dialog__image_payload":"圖片","post_dialog__more_options_title":"更多選項","post_dialog__placeholder":"在這裡輸入文字…","post_dialog__select_recipients_share_to_everyone":"所有人","post_dialog__select_recipients_title":"選擇收件人","post_dialog__title":"Mask: 發表貼文","post_modal_hint__button":"發表加密貼文","hide":"隱藏","reset":"重設","editor":"編輯器","retry":"重試","rename":"重新命名","search":"搜尋","go_wrong":"出錯了","search_box_placeholder":"在這裡輸入以搜尋","select_all":"選擇全部","select_none":"取消選擇全部","select_specific_friends_dialog__button":"完成","select_specific_friends_dialog__title":"選擇特定聯絡人","service_decryption_failed":"解密失敗。","service_invalid_backup_file":"這不是一個 Mask 的備份檔。","service_unknown_payload":"未知的貼文版本。您或許需要升級 Mask。","service_username_invalid":"錯誤的使用者名稱","speed_up":"加速","save":"存檔","skip":"跳過","next":"下一個","try":"試一下","share":"分享","share_to":"分享至…","sharing":"分享中","transfer":"傳送","export":"導出","wallet_name":"錢包名稱","wallet_rename":"重新命名錢包","wallet_add_nft_invalid_owner":"此藏品不屬於你","wallet_add_nft_already_added":"此收藏品已被添加","wallet_loading_token":"讀取代幣中...","wallet_loading_nft_contract":"加載NFT合約中...","wallet_search_no_result":"無結果","wallet_confirm_with_password":"確認密碼","wallet_airdrop_nft_unclaimed_title":"尚未認領的NFT空投","plugin_external_loader_search_holder":"搜尋外部插件","plugin_external_loader_search_button":"搜尋插件","plugin_external_loader_example_github":"官方插件example??? GitHub.","plugin_external_plugin_url":"插件鏈接","plugin_external_unverified_publisher":"發佈者: {{publisher}} (Unverified)","plugin_external_name":"外部插件","plugin_external_get_started":"讓我們開始吧","plugin_airdrop_nft_start_time":"起始時間 {{date}}","plugin_airdrop_nft_end_time":"結束時間 {{date}}","plugin_airdrop_nft_expired":"已過期","plugin_airdrop_nft_claim":"認領","plugin_airdrop_nft_claimed":"已認領","plugin_airdrop_nft_check":"查看","plugin_airdrop_nft_check_address":"查看你的地址","plugin_airdrop_nft_none_to_claim":"尚無空投可認領","plugin_airdrop_nft_number_to_claim":"你有 {{count}} {{name}} 可認領","plugin_airdrop_nft_claim_all":"代幣認領","plugin_airdrop_nft_claim_successful":"代幣認領成功","plugin_airdrop_nft_claim_failed":"代幣認領失敗","wallet_balance":"餘額","wallet_balance_eth":"餘額(ETH)","wallet_new":"新錢包","wallets":"錢包","wallet_status_button_change":"更改","wallet_status_button_disconnect":"取消連接","wallet_status_button_disconnecting":"断开中","wallet_status_button_copy_address":"複製地址","wallet_transfer_receiving_account":"接收地址","wallet_transfer_to_address":"接收地址","wallet_transfer_send":"發送","wallet_transfer_title":"傳送","wallet_transfer_error_amount_absence":"輸入一個金額","wallet_transfer_error_address_absence":"輸入接收人地址","wallet_transfer_error_invalid_address":"錯誤的接收人地址","wallet_transfer_error_no_address_has_been_set_name":"接收者地址無效","wallet_transfer_error_no_support_ens":"ENS網路不被支持","wallet_transfer_error_gas_price_absence":"輸入礦工費","wallet_transfer_error_gas_limit_absence":"輸入礦工費上限","wallet_transfer_error_max_fee_absence":"輸入總交易費用","wallet_transfer_error_max_priority_fee_absence":"輸入優先交易費用","wallet_transfer_error_max_priority_gas_fee_imbalance":"總交易費用不能低於優先交易費用","wallet_transfer_gwei":"GWEI","wallet_transfer_between_my_accounts":"在我的帳戶間轉帳","wallet_risk_warning_dialog_title":"風險提示","wallet_risk_warning_no_select_wallet":"還沒有選擇錢包。","wallet_risk_warning_content":"尊敬的用户:
在使用任何 Mask Network 内任何跟钱包相关的插件,请确认以下使用风险。
Mask Network 提供非商业免费服务。接入的插件均为社区成员和其他优秀第三方DApps团队提供,由于去中心化网络的自由性和其他不确定风险因素,请用户妥善保护自己的钱包助记词、私钥等敏感信息,进行任何区块链合约交互,请谨慎操作。任何第三方 DApps 插件所带来的风险均由第三方 DApps 承担。点击确认按钮即代表同意承担以上可能带来的风险。","wallet_risk_confirm_confirming":"確認中","wallet_risk_confirm_failed":"確認失敗","relative_time_days_ago":"{{days}} 天前","relative_time_hours_ago":"{{hours}} 小時前","relative_time_minutes_ago":"{{minutes}} 分鐘前","relative_time_months_ago":"{{months}} 月前","relative_time_seconds_ago":"{{seconds}} 秒前","relative_time_years_ago":"{{years}} 年前","plugin_wallet_guiding_step_1":"1. 選擇網路","plugin_wallet_guiding_step_2":"2. 選擇錢包","plugin_wallet_collections":"收藏","plugin_wallet_select_a_token":"選擇一個代幣","plugin_wallet_select_a_nft_contract":"選擇一份NFT合約","plugin_wallet_select_a_nft_owner":"選擇一位NFT合約擁有者","plugin_wallet_select_a_nft_operator":"選擇一位NFT合約執行者","plugin_wallet_fail_to_load_nft_contract":"加載NFT合約失敗。點擊重試。","plugin_wallet_nft_approving_all":"解鎖 {{symbol}} 中...","plugin_wallet_approve_all_nft":"解鎖 {{symbol}}","plugin_wallet_approve_all_nft_successfully":"解鎖 {{symbol}} 成功","plugin_wallet_connect_a_wallet":"連接到錢包","plugin_wallet_confirm_risk_warning":"風險警告確認","plugin_wallet_no_gas_fee":"沒有 Gas 費用","plugin_wallet_update_gas_fee":"正在更新 Gas 費用…","plugin_wallet_invalid_network":"錯誤的網路","plugin_wallet_select_a_wallet":"選擇一個錢包","plugin_wallet_transaction":"交易","plugin_wallet_transaction_wait_for_confirmation":"等待確認中…","plugin_wallet_transaction_submitted":"你的交易已經被送出!","plugin_wallet_transaction_confirmed":"你的交易已經被確認!","plugin_wallet_transaction_reverted":"交易被復原!","plugin_wallet_transaction_rejected":"交易被拒絕!","plugin_wallet_transaction_server_error":"交易由於內部 JSON-RPC 伺服器錯誤而失敗。","plugin_wallet_view_on_explorer":"在區塊鏈瀏覽器上查看","plugin_ito_placeholder_when_token_unselected":"請先選擇一種代幣","plugin_wallet_wrong_network_tip":"請連接到適當的乙太坊網絡。","plugin_wallet_on_create":"建立錢包","plugin_wallet_on_connect":"連接錢包","plugin_wallet_wrong_network":"網路錯誤","plugin_wallet_import_wallet":"匯入錢包","plugin_wallet_select_provider_dialog_title":"連接錢包","plugin_wallet_qr_code_with_wallet_connect":"使用一個與 WalletConnect 相容的錢包掃描 QR code","plugin_wallet_token_unlock":"特定數量解鎖","plugin_wallet_token_infinite_unlock":"無限解鎖","plugin_wallet_connect_dialog_title":"WalletConnect","plugin_wallet_connect_safari_metamask":"連接到 MetaMask","plugin_wallet_connect_safari_rainbow":"連接到 Rainbow","plugin_wallet_connect_safari_trust":"連接到 Trust","plugin_wallet_connect_safari_im_token":"連接到 imToken","plugin_wallet_on_connect_in_firefox":"連接","plugin_wallet_return_mobile_wallet_options":"回到手機錢包選項","plugin_wallet_view_qr_code":"顯示 QR Code","plugin_wallet_switch_network":"切換至 {{network}}","plugin_wallet_switch_network_under_going":"切換至 {{network}} 中","plugin_wallet_not_available_on":"{{network}} 不可用","plugin_wallet_connect_wallet":"連接錢包","plugin_wallet_connect_wallet_tip":"請連接你的錢包","plugin_red_packet_display_name":"插件:紅包","plugin_red_packet_claimed":"已認領","plugin_red_packet_erc20_tab_title":"代幣","plugin_red_packet_erc721_tab_title":"收藏品","plugin_red_packet_erc721_insufficient_balance":"餘額不足","plugin_red_packet_details":"紅包詳情","plugin_red_packet_split_mode":"分割模式","plugin_red_packet_average":"平均","plugin_red_packet_random":"隨機","plugin_red_packet_shares":"分享數","plugin_red_packet_best_wishes":"祝好運!","plugin_red_packet_create_new":"建立新的","plugin_red_packet_claim":"認領","plugin_red_packet_claiming":"認領中...","plugin_red_packet_refund":"退款","plugin_red_packet_empty":"空的","plugin_red_packet_refunding":"退款中","plugin_red_packet_select_existing":"選擇已存在的","plugin_red_packet_nft_tip":"這是一個NFT紅包","plugin_red_packet_attached_message":"附加的訊息","plugin_red_packet_from":"寄送人:{{name}}","plugin_red_packet_description_claimed":"你已經認領了 {{amount}} {{symbol}}。","plugin_red_packet_description_expired":"這個紅包已過期。","plugin_red_packet_description_refunded":"這個紅包已經被退款了。","plugin_red_packet_description_refund":"你可以退款 {{balance}} {{symbol}}。","plugin_red_packet_description_empty":"這個紅包是空的。","plugin_red_packet_description_broken":"這個紅包壞了","plugin_red_packet_description_failover":"寄送人 {{name}} / {{shares}} 分享數 / {{total}} {{symbol}}","plugin_red_packet_claiming_from":"認領從 {{name}} 寄來的紅包","plugin_red_packet_amount_per_share":"每次分享總額","plugin_red_packet_send_symbol":"送出 {{symbol}}","plugin_red_packet_amount_total":"總額","plugin_red_packet_next":"繼續","plugin_red_packet_back":"返回","plugin_red_packet_token":"代幣","plugin_red_packet_message_label":"標題","plugin_red_packet_create_with_token":"使用 {{symbol}} 建立紅包","plugin_red_packet_history_duration":"時間: {{startTime}} ~ {{endTime}} (UTC+8)","plugin_red_packet_history_total_amount":"總額: {{amount}} {{symbol}}","plugin_red_packet_history_total_claimed_amount":"總共: {{claimedAmount}}/{{amount}} {{symbol}}","plugin_red_packet_history_claimed":"已認領: {{claimedShares}}/{{shares}} 分享數","plugin_red_packet_history_split_mode":"分割模式: {{mode}}","plugin_red_packet_history_send":"送出","plugin_red_packet_nft_total_amount":"總額","plugin_red_packet_completed":"已完成","plugin_red_packet_expired":"已過期","plugin_gitcoin_readme":"通過使用此服務,您還將向 Gitcoin grants development fund 捐款 5%","plugin_gitcoin_select_a_token":"選擇一個代幣","plugin_gitcoin_enter_an_amount":"輸入一個金額","plugin_gitcoin_grant_not_available":"Grant 無法使用","plugin_gitcoin_insufficient_balance":"{{symbol}} 餘額不足","plugin_gitcoin_donate":"捐款","plugin_gitcoin_last_updated":"最近更新:","plugin_gitcoin_by":"提供者為","plugin_gitcoin_view_on":"在 Gitcoin 觀看","plugin_trader_tutorial":"新手教學","plugin_trader_safety_agree":"我瞭解","plugin_trader_total_supply":"供應總量","plugin_trader_market_cap":"市值","plugin_trader_swap":"交換","plugin_trader_wrap":"包裹","plugin_trader_unwrap":"展開","plugin_trader_buy":"購買","plugin_trader_no_data":"沒有資料","plugin_trader_tab_market":"一般","plugin_trader_tab_price":"價格","plugin_trader_tab_exchange":"交易所","plugin_trader_tab_swap":"交換","plugin_trader_table_exchange":"交易所","plugin_trader_table_pair":"交易對","plugin_trader_table_price":"價格","plugin_trader_table_volume":"交易量 (24h)","plugin_trader_table_updated":"已更新","plugin_trader_error_amount_absence":"輸入一個金額","plugin_trader_error_insufficient_balance":"{{symbol}} 餘額不足","plugin_trader_error_insufficient_lp":"本次交易流動性不足","plugin_trade_error_input_amount_less_minimum_amount":"輸入金額低於最小值","plugin_trader_slippage_tolerance":"滑動容許值:","plugin_trader_swap_from":"來自","plugin_trader_gas_fee":"礦工費","plugin_trader_unlock_tips":"你必須授予 {{provider}} 智能合約權限去使用你的 {{symbol}} 。 每個代幣只需授權一次。","plugin_trader_gas_option":"{{option}} ({{value}}) Gwei","plugin_trader_no_enough_liquidity":"流通性不足","plugin_trader_gas":"礦工費","plugin_poll_display_name":"插件:投票","plugin_poll_question_hint":"提出一個問題…","plugin_poll_options_hint":"選擇","plugin_poll_length":"投票長度","plugin_poll_length_days":"天","plugin_poll_length_hours":"小時","plugin_poll_length_minutes":"分鐘","plugin_poll_length_unknown":"未知","plugin_poll_create_new":"建立新的","plugin_poll_select_existing":"選擇現有的","plugin_poll_send_poll":"送出投票","plugin_poll_status_closed":"已關閉","plugin_poll_status_voting":"投票中","plugin_poll_status_voted":"已投票。","plugin_poll_deadline":"距離投票結束還有 {{time}}","plugin_ito_share":"分享","plugin_ito_enter":"輸入","plugin_ito_dialog_swap_title":"交換 {{token}}","plugin_ito_dialog_swap_reminder_title":"交換提醒","plugin_ito_dialog_swap_unlock_title":"事先解鎖代幣","plugin_ito_dialog_swap_share_title":"分享","plugin_ito_dialog_swap_exchange":"以換取","plugin_ito_dialog_swap_panel_title":"交換","plugin_ito_dialog_swap_exceed_wallet_limit":"超過單個錢包限制","plugin_ito_swap_ration_label":"交換比例","plugin_ito_swap_unlucky_fail":"你運氣不夠好,請從 Etherscan 連結查詢原因,然後重試。","plugin_ito_swap_only_once_remind":"每個錢包只能參與一次。","plugin_ito_swap_title":"{{amount}} {{token}} 每 {{swap}} ","plugin_ito_swap_end_date":"於 {{date}} 結束。","plugin_ito_dialog_claim_reminder_agree":"我理解","plugin_ito_dialog_claim_reminder_text1":"任何人都可以用任何名稱在乙太坊上建立 ERC20 代幣,包括建立現有代幣的假版本,以及聲稱代表沒有代幣的項目的代幣。","plugin_ito_dialog_claim_reminder_text2":"此介面可以按代幣地址加載任意代幣。在與任意 ERC20 代幣互動時,請格外小心並了解相關資訊。","plugin_ito_dialog_claim_reminder_text3":"如果你購買了一個任意的代幣,你可能無法把它賣出去。","plugin_ito_dialog_claim_reminder_text4":"該等權利並未在司法管轄區內全部或部分提供或出售,也不得直接或間接提供或出售,或向其提供或出售該等權利將是非法的。","plugin_ito_expired":"已過期","plugin_ito_create_new":"新增","plugin_ito_claim_all_title":"認領代幣","plugin_ito_claim_all_status_unclaimed":"未被認領","plugin_ito_claim_all_status_locked":"已鎖定","plugin_ito_claim_all_unlock_time":"解鎖時間:{{time}}","plugin_ito_claim_all_dialog_title":"認領你的代幣","plugin_ito_swapping":"如果你運氣好的的話,你會得到 {{amount}} {{symbol}}。如果 ITO 賣光了,您將收到退款。","plugin_ito_advanced":"進階","plugin_ito_advanced_ip_region":"IP 區域限制","plugin_ito_advanced_delay_unlocking":"延時解鎖代幣","plugin_ito_advanced_contract":"插件合約","plugin_ito_select_existing":"過去的","plugin_ito_display_name":"ITO 競賽視窗","plugin_ito_sell_token":"代幣","plugin_ito_sell_price":"價格","plugin_ito_sell_total_amount":"輸入","plugin_ito_allocation_per_wallet":"交換限制 {{limit}} {{token}}","plugin_ito_wait_unlock_time":"認領於 {{unlockTime}}","plugin_ito_claim":"認領","plugin_ito_claiming":"認領中","plugin_ito_claim_all":"認領全部","plugin_ito_qualification_start_time":"資格開始時間:","plugin_ito_error_qualification_start_time":"錯誤:資格開始時間應早於 ITO 結束時間","plugin_ito_error_invalid_qualification":"錯誤的資格地址","plugin_ito_unlock_time":"解鎖時間 {{zone}}","plugin_ito_total_claimable_count":"總計: ","plugin_ito_qualification_label":"插件合約","plugin_ito_message_label":"標題","plugin_ito_region_label":"IP 區域選擇","plugin_ito_region_confirm_label":"IP 區域","plugin_ito_region_list":"{{ select }} / {{ all }} 區域","plugin_ito_region_all":"所有區域","plugin_ito_region_search":"輸入區域名稱以搜尋","plugin_ito_region_ban":"此池已被您所在區域的建立者禁用","plugin_ito_next":"下一個","plugin_ito_back":"上一個","plugin_ito_transaction_dialog_summary":"使用 {{amount}} {{symbol}} 建立一個 ITO","plugin_ito_swap":"交換","plugin_ito_send_tip":"你可以在過去分頁中找到你的 ITO","plugin_ito_send_text":"送出 {{total}} {{symbol}}","plugin_ito_error_enter_amount":"輸入一個金額","plugin_ito_error_select_token":"選擇一個代幣","plugin_ito_error_enter_amount_and_token":"輸入一個金額和選擇一個代幣","plugin_ito_error_allocation_absence":"輸入交換限制","plugin_ito_error_allocation_invalid":"錯誤的金額","plugin_ito_error_exchange_time":"錯誤:開始時間不能晚於結束時間","plugin_ito_error_unlock_time":"錯誤:結束時間不能晚於解鎖時間","plugin_ito_error_balance":"{{symbol}} 餘額不足","plugin_ito_list_start_date":"開始時間 {{date}}","plugin_ito_list_end_date":"結束時間 {{date}}","plugin_ito_list_sold_total":"已交換:","plugin_ito_list_total":"總共:","plugin_ito_list_table_type":"類型","plugin_ito_list_table_price":"交換比例","plugin_ito_no_claimable_token":"你沒有可認領的代幣。","plugin_ito_list_table_sold":"已交換","plugin_ito_list_table_got":"餘額","plugin_ito_list_button_send":"送出","plugin_ito_withdraw":"提取","plugin_ito_qualification_loading":"驗證資格…","plugin_ito_qualification_failed":"錢包地址不在清單上。","plugin_ito_withdrawn":"已提取","plugin_ito_your_swapped_amount":"你交換了 {{amount}} {{symbol}}","plugin_ito_your_claimed_amount":"你認領了 {{amount}} {{symbol}}","plugin_ito_your_refund_amount":"返還 {{amount}} {{symbol}}。","plugin_ito_unlock_in_advance":"預先解鎖","plugin_ito_swapped_status":"{{remain}} / {{total}} {{token}} 已交換","plugin_ito_congratulations":"恭喜!","plugin_ito_out_of_stock_hit":"祝你下次好運","plugin_ito_claim_success_share":"我剛剛參與了 @{{user}} 在 @{{account}} 發起的 #ITO 以換取 ${{symbol}}。 安裝 mask.io 開始你自己的 Initial Twitter Offering! \\n {{link}}","plugin_ito_claim_foreshow_share":"{{symbol}}({{name}}) 正在舉辦一個新的 #ITO。 過來參加吧! 追隨 @{{account}} (mask.io) 以發現更多活動! \\n {{link}}","plugin_ito_password":"密碼:{{password}}","plugin_ito_status_no_start":"尚未開始","plugin_ito_status_ongoing":"進行中","plugin_ito_status_out_of_stock":"缺貨","plugin_ito_loading":"讀取 ITO 中…","plugin_ito_amount_unlocked":"已解鎖 {{amount}} {{symbol}}","plugin_ito_amount_unlocked_infinity":"已解鎖無限 {{symbol}}","plugin_ito_unlocking_symbol":"解鎖中 {{symbol}}","plugin_ito_continue":"繼續","plugin_ito_view_on_explorer":"在區塊鏈瀏覽器上查看","plugin_collectible_you":"你","plugin_collectible_done":"完成","plugin_collectible_retry":"重試","plugin_collectible_sell":"販售","plugin_collectible_checkout":"結帳","plugin_collectible_place_bid":"投標","plugin_collectible_buy_now":"立即購買","plugin_collectible_make_offer":"報價","plugin_collectible_post_listing":"上架","plugin_collectible_description":"目前的價格是 {{price}} {{symbol}}。","plugin_collectible_article":"文章","plugin_collectible_overview":"總覽","plugin_collectible_details":"詳細資訊","plugin_collectible_offers":"報價","plugin_collectible_listing":"上架的物品","plugin_collectible_history":"歷史資訊","plugin_collectible_event":"事件","plugin_collectible_unit_price":"單位價格","plugin_collectible_price":"價格","plugin_collectible_from":"從","plugin_collectible_to":"到","plugin_collectible_date":"日期","plugin_collectible_quantity":"數量","plugin_collectible_expiration":"到期日","plugin_collectible_no_offers":"沒有報價","plugin_collectible_no_listings":"沒有任何上架的物品","plugin_collectible_base":"底價","plugin_collectible_properties":"屬性","plugin_collectible_about":"關於","plugin_collectible_chain_info":"區塊練資訊","plugin_collectible_contract_address":"合約地址","plugin_collectible_token_id":"代幣 ID","plugin_collectible_block_chain":"區塊練","plugin_collectible_create_by":"建立者","plugin_collectible_owned_by":"擁有者","plugin_collectible_no_history":"沒有歷史資運","plugin_collectible_ensure_unreviewed_item":"請確保未審核的物品","plugin_collectible_check_tos_document":"請查閱 ToS 文件","plugin_collectible_not_been_reviewed_by_opensea":"這個物品尚未被 OpenSea 審核","plugin_collectible_reviewed_tips":"你應該格外小心。任何人都可以使用任何名稱在區塊鏈上建立數位物品,包括現有物品的偽造版本。在與此物品互動時,請格外小心並進行\\n研究,以確保它是您想要的物品。","plugin_collectible_total":"總計","plugin_collectible_subtotal":"小計","plugin_collectible_item":"物品","plugin_collectible_approved_tips":"通過勾選此框,我確認此項目未經 OpenSea 審查。","plugin_collectible_agree_terms":"通過勾選此框,我同意 OpenSea 的使用者條約。","plugin_collectible_convert_eth":"轉換 ETH","plugin_collectible_sale_end":"拍賣將於 {{time}} 結束","plugin_collectible_set_initial_price":"設定一個初始價格","plugin_collectible_ending_price_tip":"在您轉讓或取消之前將一直銷售","plugin_collectible_starting_price":"初始價格","plugin_collectible_ending_price":"結束價格","plugin_collectible_ending_price_less_than_staring":"必須小於或等於起始價格。價格將直線上升到這個金額,直到到期日為止。","plugin_collectible_expiration_date":"到期日","plugin_collectible_schedule_date":"預約日期","plugin_collectible_auto_cancel_tip":"此時您上架的物品將自動結束。沒有必要取消","plugin_collectible_schedule_future_date":"預約一個未來的日期。","plugin_collectible_buyer_address":"購買者地址","plugin_collectible_buyer_address_placeholder":"輸入購買者的地址","plugin_collectible_buyer_address_helper_text":"只有購買者可以購買","plugin_collectible_include_ending_price":"包含結束價格","plugin_collectible_include_ending_price_helper":"新增結束價格將允許此上架物品過期,或允許降價,直到找到買家為止。","plugin_collectible_schedule_for_a_future_time":"預約未來的日期","plugin_collectible_schedule_for_a_future_time_helper":"您可以將此上架物品預約為只能在將來的某個日期購買","plugin_collectible_privacy":"隱私權","plugin_collectible_privacy_helper":"您可以公開您的上架物品,也可以指定一個允許購買您上架物品的地址。","plugin_collectible_enter_a_price":"輸入價格","plugin_collectible_insufficient_balance":"餘額不足","plugin_collectible_invalid_schedule_date":"預定日期錯誤","plugin_collectible_invalid_ending_price":"錯誤的結束價格","plugin_collectible_invalid_expiration_date":"錯誤的到期日","plugin_collectible_invalid_buyer_address":"錯誤的購買人地址","plugin_collectible_set_price":"設定價格","plugin_collectible_highest_bid":"最高出價","plugin_collectible_minimum_bid":"最低出嫁","plugin_collectible_set_starting_bid_price":"設定您的起始出價","plugin_collectible_reserve_price":"底標價格","plugin_collectible_reserve_price_helper":"通過設定底標價格來建立一個隱藏的限制。底價必須大於或等於起始出價。","plugin_collectible_auction_auto_end":"您的拍賣將自動在這個時候結束,最高出價者將贏得拍賣。沒有必要取消","plugin_collectible_enter_minimum_bid":"輸入最低出嫁","plugin_collectible_enter_reserve_price":"輸入底標價格","plugin_collectible_invalid_reserve_price":"錯誤的底標價格","plugin_collectible_place_a_bid":"出價","plugin_collectible_make_an_offer":"商議價格","plugin_collectible_approved_by_open_sea":"通過勾選此框,我確認此收藏品未經 OpenSea 審查。","plugin_collectible_legal_text":"通過勾選此框,我同意 OpenSea 的 使用者條約。","plugin_cryptoartai_description_title":"描述","plugin_cryptoartai_operator":"執行者","plugin_cryptoartai_activity_type":"類型","plugin_cryptoartai_status":"狀態","plugin_cryptoartai_time":"時間","plugin_cryptoartai_price":"價格","plugin_cryptoartai_buy_now":"立刻購買","plugin_cryptoartai_current_balance":"目前餘額","plugin_cryptoartai_bid_least":"需要至少出價","plugin_cryptoartai_current_balance_is":"當前餘額","plugin_cryptoartai_auction_end":"拍賣已結束","plugin_snapshot_info_title":"資訊","plugin_snapshot_info_strategy":"策略","plugin_snapshot_info_author":"作者","plugin_snapshot_info_start":"開始日期","plugin_snapshot_info_end":"結束日期","plugin_snapshot_info_snapshot":"快照","plugin_snapshot_result_title":"結果","plugin_snapshot_votes_title":"投票","plugin_snapshot_no_power":"沒有權力","plugin_snapshot_vote_success":"投票成功!","plugin_snapshot_vote":"投票","plugin_snapshot_vote_choice":"選擇","plugin_snapshot_vote_power":"你的投票權力","plugin_snapshot_vote_title":"投下你的一票","plugin_snapshot_vote_confirm_dialog_title":"確認投票","plugin_snapshot_vote_confirm_dialog_choice":"你確定要投票給 「{{ choiceText }}」 嗎?","plugin_snapshot_vote_confirm_dialog_warning":"這項操作無法復原。","plugin_snapshot_current_result_title":"目前的結果","plugin_snapshot_download_report":"下載報告","plugin_dhedge_managed_by":"由 {{managerName}} 管理","plugin_dhedge_manager_share":"持有 {{managerShare}}% 池","plugin_dhedge_value_managed":"託管的金額","plugin_dhedge_lifetime_return":"終身回報","plugin_dhedge_risk_factor":"風險因素","plugin_dhedge_tab_stats":"統計","plugin_dhedge_tab_chart":"圖表","plugin_dhedge_strategy":"策略","plugin_dhedge_see_less":"顯示更少","plugin_dhedge_see_more":"顯示更多","plugin_dhedge_no_data":"沒有資料","plugin_dhedge_fetch_error":"無法取得資料,請再試一次!","plugin_dhedge_loading_chart":"讀取中","plugin_dhedge_invest":"投資","plugin_dhedge_buy_token":"取得 {{symbol}}","plugin_dhedge_enter_an_amount":"輸入一個金額","plugin_dhedge_insufficient_balance":"{{symbol}} 餘額不足","plugin_dhedge_loading":"讀取中…","plugin_dhedge_pool_not_found":"錯誤的池地址!","plugin_dhedge_smt_wrong":"出錯了!"}'); -;// CONCATENATED MODULE: ./shared-ui/locales/languages.ts -// This file is auto generated. DO NOT EDIT -// Run `npx gulp sync-languages` to regenerate. -// Default fallback language in a family of languages are chosen by the alphabet order -// To overwrite this, please overwrite packages/scripts/src/locale-kit-next/index.ts - - - - - - -const languages = { - en: en_US_namespaceObject, - ja: ja_JP_namespaceObject, - ko: ko_KR_namespaceObject, - qy: qya_AA_namespaceObject, - 'zh-CN': zh_CN_namespaceObject, - zh: zh_TW_namespaceObject -}; - -const addMaskI18N = (0,src/* createI18NBundle */.C9)('mask', languages); -// @ts-ignore -if (false) {} - -// EXTERNAL MODULE: ../shared/src/index.ts -var shared_src = __webpack_require__(2666); -// EXTERNAL MODULE: ../../node_modules/.pnpm/react-i18next@11.16.5_react-dom@18.0.0+react@18.0.0/node_modules/react-i18next/dist/es/context.js -var context = __webpack_require__(60147); -;// CONCATENATED MODULE: ./shared-ui/locales_legacy/init.ts - -// @ts-ignore to prevent TypeScript complains - - - - -context/* initReactI18next.init */.Db.init(src/* i18NextInstance */.BV); -addMaskI18N(src/* i18NextInstance */.BV); -(0,shared_src/* addSharedI18N */.zr)(src/* i18NextInstance */.BV); -(0,entry/* addDashboardI18N */.Gp)(src/* i18NextInstance */.BV); - - -/***/ }), - -/***/ 81064: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "R": () => (/* binding */ createPluginHost) -/* harmony export */ }); -/* harmony import */ var _register__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(96484); -/* harmony import */ var _servie_events__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(69260); -/* harmony import */ var _shared_messages__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(94299); -/* harmony import */ var _extension_service__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(5027); -/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(78144); -// All plugin manager need to call createPluginHost so let's register plugins implicitly. - - - - - -function createPluginHost(signal, createContext) { - const minimalMode = { - isEnabled: _extension_service__WEBPACK_IMPORTED_MODULE_2__/* ["default"].Settings.getPluginMinimalModeEnabled */ .ZP.Settings.getPluginMinimalModeEnabled, - events: new _servie_events__WEBPACK_IMPORTED_MODULE_4__/* .Emitter */ .Q5() - }; - const removeListener = _shared_messages__WEBPACK_IMPORTED_MODULE_1__/* .MaskMessages.events.pluginMinimalModeChanged.on */ .q.events.pluginMinimalModeChanged.on(([id, val])=>minimalMode.events.emit(val ? 'enabled' : 'disabled', id) - ); - signal?.addEventListener('abort', removeListener); - return { - signal, - minimalMode, - addI18NResource (plugin, resource) { - (0,_masknet_shared_base__WEBPACK_IMPORTED_MODULE_3__/* .createI18NBundle */ .C9)(plugin, resource)(_masknet_shared_base__WEBPACK_IMPORTED_MODULE_3__/* .i18NextInstance */ .BV); - }, - createContext - }; -} - - -/***/ }), - -/***/ 26861: -/***/ ((__unused_webpack_module, __unused_webpack___webpack_exports__, __webpack_require__) => { - -/* harmony import */ var _shared_kv_storage__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(53340); -/* harmony import */ var _extension_service__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(5027); - - -const memory = { - beforeAutoSync: Promise.resolve(), - getValue (...args) { - return _extension_service__WEBPACK_IMPORTED_MODULE_1__/* ["default"].Settings.__kv_storage_read__ */ .ZP.Settings.__kv_storage_read__('memory', ...args); - }, - async setValue (...args) { - await _extension_service__WEBPACK_IMPORTED_MODULE_1__/* ["default"].Settings.__kv_storage_write__ */ .ZP.Settings.__kv_storage_write__('memory', ...args); - } -}; -const indexedDB = { - beforeAutoSync: Promise.resolve(), - getValue (...args) { - return _extension_service__WEBPACK_IMPORTED_MODULE_1__/* ["default"].Settings.__kv_storage_read__ */ .ZP.Settings.__kv_storage_read__('indexedDB', ...args); - }, - async setValue (...args) { - await _extension_service__WEBPACK_IMPORTED_MODULE_1__/* ["default"].Settings.__kv_storage_write__ */ .ZP.Settings.__kv_storage_write__('indexedDB', ...args); - } -}; -(0,_shared_kv_storage__WEBPACK_IMPORTED_MODULE_0__/* .setupMaskKVStorageBackend */ .$e)(indexedDB, memory); - - -/***/ }), - -/***/ 1650: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "DF": () => (/* binding */ isFacebook), -/* harmony export */ "XO": () => (/* binding */ facebookWorkerBase), -/* harmony export */ "qv": () => (/* binding */ facebookBase) -/* harmony export */ }); -/* harmony import */ var _masknet_encryption__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(52222); -/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(78144); - - -const origins = [ - 'https://www.facebook.com/*', - 'https://m.facebook.com/*', - 'https://facebook.com/*' -]; -const facebookBase = { - encryptionNetwork: _masknet_encryption__WEBPACK_IMPORTED_MODULE_0__/* .SocialNetworkEnum.Facebook */ .Gq.Facebook, - networkIdentifier: _masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .EnhanceableSite.Facebook */ .Jk.Facebook, - declarativePermissions: { - origins - }, - shouldActivate (location) { - return location.hostname.endsWith('facebook.com'); - } -}; -function isFacebook(ui) { - return ui.networkIdentifier === _masknet_shared_base__WEBPACK_IMPORTED_MODULE_1__/* .EnhanceableSite.Facebook */ .Jk.Facebook; -} -const facebookWorkerBase = { - ...facebookBase, - gunNetworkHint: '' -}; - - -/***/ }), - -/***/ 93505: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "j": () => (/* binding */ instagramBase), -/* harmony export */ "x": () => (/* binding */ instagramWorkerBase) -/* harmony export */ }); -/* harmony import */ var _masknet_shared__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2666); -/* harmony import */ var _masknet_encryption__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(52222); - - -const origins = [ - 'https://www.instagram.com/*', - 'https://m.instagram.com/*', - 'https://instagram.com/*' -]; -const instagramBase = { - networkIdentifier: _masknet_shared__WEBPACK_IMPORTED_MODULE_0__/* .INSTAGRAM_ID */ .l9, - encryptionNetwork: _masknet_encryption__WEBPACK_IMPORTED_MODULE_1__/* .SocialNetworkEnum.Instagram */ .Gq.Instagram, - declarativePermissions: { - origins - }, - shouldActivate (location) { - return location.host.endsWith(_masknet_shared__WEBPACK_IMPORTED_MODULE_0__/* .INSTAGRAM_ID */ .l9); - } -}; -const instagramWorkerBase = { - ...instagramBase, - gunNetworkHint: _masknet_shared__WEBPACK_IMPORTED_MODULE_0__/* .INSTAGRAM_ID */ .l9 -}; - - -/***/ }), - -/***/ 37732: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "L3": () => (/* binding */ isTwitter), -/* harmony export */ "oQ": () => (/* binding */ twitterBase), -/* harmony export */ "x": () => (/* binding */ twitterWorkerBase) -/* harmony export */ }); -/* harmony import */ var _masknet_shared__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2666); -/* harmony import */ var _masknet_encryption__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(52222); - - -const origins = [ - 'https://mobile.twitter.com/*', - 'https://twitter.com/*' -]; -const twitterBase = { - networkIdentifier: _masknet_shared__WEBPACK_IMPORTED_MODULE_0__/* .TWITTER_ID */ .QE, - encryptionNetwork: _masknet_encryption__WEBPACK_IMPORTED_MODULE_1__/* .SocialNetworkEnum.Twitter */ .Gq.Twitter, - declarativePermissions: { - origins - }, - shouldActivate (location) { - return location.hostname.endsWith('twitter.com'); - } -}; -function isTwitter(ui) { - return ui.networkIdentifier === _masknet_shared__WEBPACK_IMPORTED_MODULE_0__/* .TWITTER_ID */ .QE; -} -const twitterWorkerBase = { - ...twitterBase, - gunNetworkHint: 'twitter-' -}; - - -/***/ }), - -/***/ 33060: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "G": () => (/* binding */ getCurrentSNSNetwork), -/* harmony export */ "T": () => (/* binding */ getCurrentIdentifier) -/* harmony export */ }); -/* harmony import */ var _twitter_com_base__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(37732); -/* harmony import */ var _facebook_com_base__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1650); -/* harmony import */ var _instagram_com_base__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(93505); -/* harmony import */ var _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(79936); -/* harmony import */ var _social_network__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(3747); - - - - - -function getCurrentSNSNetwork(current) { - const table = { - [_twitter_com_base__WEBPACK_IMPORTED_MODULE_0__/* .twitterBase.networkIdentifier */ .oQ.networkIdentifier]: _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_3__/* .CurrentSNSNetwork.Twitter */ .mv.Twitter, - [_facebook_com_base__WEBPACK_IMPORTED_MODULE_1__/* .facebookBase.networkIdentifier */ .qv.networkIdentifier]: _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_3__/* .CurrentSNSNetwork.Facebook */ .mv.Facebook, - [_instagram_com_base__WEBPACK_IMPORTED_MODULE_2__/* .instagramBase.networkIdentifier */ .j.networkIdentifier]: _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_3__/* .CurrentSNSNetwork.Instagram */ .mv.Instagram - }; - if (current in table) return table[current]; - return _masknet_plugin_infra__WEBPACK_IMPORTED_MODULE_3__/* .CurrentSNSNetwork.Unknown */ .mv.Unknown; -} -const getCurrentIdentifier = ()=>{ - const current = _social_network__WEBPACK_IMPORTED_MODULE_4__/* .activatedSocialNetworkUI.collecting.identityProvider */ .LM.collecting.identityProvider?.recognized.value; - return _social_network__WEBPACK_IMPORTED_MODULE_4__/* .globalUIState.profiles.value.find */ .EJ.profiles.value.find((i)=>i.identifier.equals(current?.identifier) - ) || _social_network__WEBPACK_IMPORTED_MODULE_4__/* .globalUIState.profiles.value[0] */ .EJ.profiles.value[0]; -}; - - -/***/ }), - -/***/ 67071: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "$8": () => (/* reexport safe */ _web3__WEBPACK_IMPORTED_MODULE_0__.$8), -/* harmony export */ "$d": () => (/* reexport safe */ _web3__WEBPACK_IMPORTED_MODULE_0__.$d), -/* harmony export */ "$f": () => (/* reexport safe */ _web3__WEBPACK_IMPORTED_MODULE_0__.$f), -/* harmony export */ "$q": () => (/* reexport safe */ _hooks__WEBPACK_IMPORTED_MODULE_2__.$q), -/* harmony export */ "FF": () => (/* reexport safe */ _web3_types__WEBPACK_IMPORTED_MODULE_1__.FF), -/* harmony export */ "K1": () => (/* reexport safe */ _web3__WEBPACK_IMPORTED_MODULE_0__.K1), -/* harmony export */ "KQ": () => (/* reexport safe */ _web3__WEBPACK_IMPORTED_MODULE_0__.KQ), -/* harmony export */ "Ne": () => (/* reexport safe */ _hooks__WEBPACK_IMPORTED_MODULE_2__.Ne), -/* harmony export */ "Os": () => (/* reexport safe */ _web3__WEBPACK_IMPORTED_MODULE_0__.Os), -/* harmony export */ "Ov": () => (/* reexport safe */ _web3__WEBPACK_IMPORTED_MODULE_0__.Ov), -/* harmony export */ "Rm": () => (/* reexport safe */ _manager_store__WEBPACK_IMPORTED_MODULE_3__.Rm), -/* harmony export */ "V2": () => (/* reexport safe */ _web3_types__WEBPACK_IMPORTED_MODULE_1__.V2), -/* harmony export */ "Vw": () => (/* reexport safe */ _web3__WEBPACK_IMPORTED_MODULE_0__.Vw), -/* harmony export */ "Yn": () => (/* reexport safe */ _web3__WEBPACK_IMPORTED_MODULE_0__.Yn), -/* harmony export */ "_o": () => (/* reexport safe */ _web3__WEBPACK_IMPORTED_MODULE_0__._o), -/* harmony export */ "as": () => (/* reexport safe */ _web3__WEBPACK_IMPORTED_MODULE_0__.as), -/* harmony export */ "bL": () => (/* reexport safe */ _web3__WEBPACK_IMPORTED_MODULE_0__.bL), -/* harmony export */ "dM": () => (/* reexport safe */ _web3__WEBPACK_IMPORTED_MODULE_0__.dM), -/* harmony export */ "fY": () => (/* reexport safe */ _web3__WEBPACK_IMPORTED_MODULE_0__.fY), -/* harmony export */ "hn": () => (/* reexport safe */ _hooks__WEBPACK_IMPORTED_MODULE_2__.hn), -/* harmony export */ "i8": () => (/* reexport safe */ _manager_store__WEBPACK_IMPORTED_MODULE_3__.i8), -/* harmony export */ "iv": () => (/* reexport safe */ _web3_types__WEBPACK_IMPORTED_MODULE_1__.iv), -/* harmony export */ "mA": () => (/* reexport safe */ _web3__WEBPACK_IMPORTED_MODULE_0__.mA), -/* harmony export */ "px": () => (/* reexport safe */ _web3__WEBPACK_IMPORTED_MODULE_0__.px), -/* harmony export */ "rB": () => (/* reexport safe */ _web3__WEBPACK_IMPORTED_MODULE_0__.rB), -/* harmony export */ "x5": () => (/* reexport safe */ _web3__WEBPACK_IMPORTED_MODULE_0__.x5), -/* harmony export */ "xx": () => (/* reexport safe */ _web3__WEBPACK_IMPORTED_MODULE_0__.xx), -/* harmony export */ "yH": () => (/* reexport safe */ _hooks__WEBPACK_IMPORTED_MODULE_2__.yH) -/* harmony export */ }); -/* harmony import */ var _web3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(28102); -/* harmony import */ var _web3_types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(71354); -/* harmony import */ var _hooks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(17750); -/* harmony import */ var _manager_store__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(72938); - - - - - - -/***/ }), - -/***/ 17750: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "$q": () => (/* reexport safe */ _useReverseAddress__WEBPACK_IMPORTED_MODULE_6__.$), -/* harmony export */ "KP": () => (/* reexport safe */ _useI18N__WEBPACK_IMPORTED_MODULE_7__.K), -/* harmony export */ "Ne": () => (/* reexport safe */ _useAllPluginsWeb3State__WEBPACK_IMPORTED_MODULE_3__.N), -/* harmony export */ "Rc": () => (/* reexport safe */ _useActivatedPlugin__WEBPACK_IMPORTED_MODULE_0__.R), -/* harmony export */ "eS": () => (/* reexport safe */ _useI18N__WEBPACK_IMPORTED_MODULE_7__.e), -/* harmony export */ "fI": () => (/* reexport safe */ _usePluginWrapper__WEBPACK_IMPORTED_MODULE_8__.fI), -/* harmony export */ "hn": () => (/* reexport safe */ _useLookupDomain__WEBPACK_IMPORTED_MODULE_5__.h), -/* harmony export */ "yH": () => (/* reexport safe */ _useAvailablePlugins__WEBPACK_IMPORTED_MODULE_4__.y) -/* harmony export */ }); -/* harmony import */ var _useActivatedPlugin__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9881); -/* harmony import */ var _useActivatedPluginWeb3UI__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(82139); -/* harmony import */ var _useActivatedPluginWeb3State__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(54605); -/* harmony import */ var _useAllPluginsWeb3State__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(23774); -/* harmony import */ var _useAvailablePlugins__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(15428); -/* harmony import */ var _useLookupDomain__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(59282); -/* harmony import */ var _useReverseAddress__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(58700); -/* harmony import */ var _useI18N__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(5989); -/* harmony import */ var _usePluginWrapper__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(48463); - - - - - - - - - - - -/***/ }), - -/***/ 59282: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "h": () => (/* binding */ useLookupAddress) -/* harmony export */ }); -/* harmony import */ var _web3__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(28102); -/* harmony import */ var react_use__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(73570); - - -function useLookupAddress(domain, pluginId) { - const { NameService , Utils } = (0,_web3__WEBPACK_IMPORTED_MODULE_0__/* .useWeb3State */ .dM)(pluginId); - const chainId = (0,_web3__WEBPACK_IMPORTED_MODULE_0__/* .useChainId */ .xx)(pluginId); - return (0,react_use__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)(async ()=>{ - if (NameService?.lookup && Utils?.isValidDomain?.(domain)) { - return NameService.lookup(domain); - } - return ''; - }, [ - NameService, - Utils, - domain, - chainId - ]); -} - - -/***/ }), - -/***/ 37271: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "CB": () => (/* binding */ startPluginDashboard), -/* harmony export */ "eE": () => (/* binding */ useActivatedPluginsDashboard), -/* harmony export */ "yf": () => (/* binding */ useActivatedPluginDashboard) -/* harmony export */ }); -/* harmony import */ var _servie_events__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(69260); -/* harmony import */ var use_subscription__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(66040); -/* harmony import */ var _manage__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(71264); - - - -const { activated , startDaemon , events } = (0,_manage__WEBPACK_IMPORTED_MODULE_1__/* .createManager */ .m)((def)=>def.Dashboard -); -const subscription = { - getCurrentValue: ()=>[ - ...activated.plugins - ] - , - subscribe: (f)=>events.on(_servie_events__WEBPACK_IMPORTED_MODULE_2__/* .ALL_EVENTS */ .Ko, f) -}; -function useActivatedPluginsDashboard() { - return (0,use_subscription__WEBPACK_IMPORTED_MODULE_0__.useSubscription)(subscription); -} -function useActivatedPluginDashboard(pluginID) { - const plugins = (0,use_subscription__WEBPACK_IMPORTED_MODULE_0__.useSubscription)(subscription); - return plugins.find((x)=>x.ID === pluginID - ); -} -function startPluginDashboard(host) { - startDaemon(host); -} - - -/***/ }), - -/***/ 28102: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "$8": () => (/* reexport safe */ _Context__WEBPACK_IMPORTED_MODULE_25__.$8), -/* harmony export */ "$d": () => (/* reexport safe */ _useWeb3UI__WEBPACK_IMPORTED_MODULE_23__.$), -/* harmony export */ "$f": () => (/* reexport safe */ _Context__WEBPACK_IMPORTED_MODULE_25__.$f), -/* harmony export */ "K1": () => (/* reexport safe */ _useChainDetailed__WEBPACK_IMPORTED_MODULE_9__.K), -/* harmony export */ "KQ": () => (/* reexport safe */ _useBalance__WEBPACK_IMPORTED_MODULE_3__.K), -/* harmony export */ "Os": () => (/* reexport safe */ _useWallet__WEBPACK_IMPORTED_MODULE_20__.O), -/* harmony export */ "Ov": () => (/* reexport safe */ _useBlockNumber__WEBPACK_IMPORTED_MODULE_5__.O), -/* harmony export */ "Vw": () => (/* reexport safe */ _useNetworkDescriptor__WEBPACK_IMPORTED_MODULE_14__.V), -/* harmony export */ "Yn": () => (/* reexport safe */ _useBeat__WEBPACK_IMPORTED_MODULE_4__.Y), -/* harmony export */ "_o": () => (/* reexport safe */ _useProviderType__WEBPACK_IMPORTED_MODULE_13__._), -/* harmony export */ "as": () => (/* reexport safe */ _useChainIdValid__WEBPACK_IMPORTED_MODULE_8__.a), -/* harmony export */ "bL": () => (/* reexport safe */ _useNetworkType__WEBPACK_IMPORTED_MODULE_12__.b), -/* harmony export */ "dM": () => (/* reexport safe */ _useWeb3State__WEBPACK_IMPORTED_MODULE_24__.d), -/* harmony export */ "fY": () => (/* reexport safe */ _useProviderDescriptor__WEBPACK_IMPORTED_MODULE_15__.f), -/* harmony export */ "mA": () => (/* reexport safe */ _useAccount__WEBPACK_IMPORTED_MODULE_0__.m), -/* harmony export */ "px": () => (/* reexport safe */ _useNetworkDescriptors__WEBPACK_IMPORTED_MODULE_16__.p), -/* harmony export */ "rB": () => (/* reexport safe */ _useWallets__WEBPACK_IMPORTED_MODULE_22__.r), -/* harmony export */ "x5": () => (/* reexport safe */ _useChainColor__WEBPACK_IMPORTED_MODULE_7__.x), -/* harmony export */ "xx": () => (/* reexport safe */ _useChainId__WEBPACK_IMPORTED_MODULE_6__.x) -/* harmony export */ }); -/* harmony import */ var _useAccount__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(32393); -/* harmony import */ var _useAllowTestnet__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(49031); -/* harmony import */ var _useAssetType__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(32754); -/* harmony import */ var _useBalance__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(35807); -/* harmony import */ var _useBeat__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(39157); -/* harmony import */ var _useBlockNumber__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(62414); -/* harmony import */ var _useChainId__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(32668); -/* harmony import */ var _useChainColor__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(38296); -/* harmony import */ var _useChainIdValid__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(89274); -/* harmony import */ var _useChainDetailed__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(38527); -/* harmony import */ var _useCollectibleType__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(50359); -/* harmony import */ var _useNameType__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(2953); -/* harmony import */ var _useNetworkType__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(50657); -/* harmony import */ var _useProviderType__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(40989); -/* harmony import */ var _useNetworkDescriptor__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(93413); -/* harmony import */ var _useProviderDescriptor__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(4315); -/* harmony import */ var _useNetworkDescriptors__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(65845); -/* harmony import */ var _useProviderDescriptors__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(98102); -/* harmony import */ var _useTokenPrice__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(16103); -/* harmony import */ var _useTransactionType__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(40425); -/* harmony import */ var _useWallet__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(11103); -/* harmony import */ var _useWalletPrimary__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(69938); -/* harmony import */ var _useWallets__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(65043); -/* harmony import */ var _useWeb3UI__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(88241); -/* harmony import */ var _useWeb3State__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(18618); -/* harmony import */ var _Context__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(15358); - - - - - - - - - - - - - - - - - - - - - - - - - - - - -/***/ }), - -/***/ 65043: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "r": () => (/* binding */ useWallets) -/* harmony export */ }); -/* harmony import */ var _Context__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(15358); - -function useWallets(type, pluginID) { - return (0,_Context__WEBPACK_IMPORTED_MODULE_0__/* .usePluginWeb3StateContext */ ._$)(pluginID).wallets; -} - - -/***/ }), - -/***/ 97096: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "FW": () => (/* reexport safe */ _web__WEBPACK_IMPORTED_MODULE_0__.FW), -/* harmony export */ "P7": () => (/* reexport safe */ _web__WEBPACK_IMPORTED_MODULE_0__.P7), -/* harmony export */ "iu": () => (/* reexport safe */ _web__WEBPACK_IMPORTED_MODULE_0__.iu), -/* harmony export */ "td": () => (/* reexport safe */ _web__WEBPACK_IMPORTED_MODULE_0__.td), -/* harmony export */ "z4": () => (/* reexport safe */ _web__WEBPACK_IMPORTED_MODULE_0__.z4) -/* harmony export */ }); -/* harmony import */ var _web__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(75151); -/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(38047); -// Following is the API that can be called from the native side. - -// Following is the API that implemented by the native side. - - - - -/***/ }), - -/***/ 75151: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "FW": () => (/* binding */ DataProvider), -/* harmony export */ "P7": () => (/* binding */ LanguageOptions), -/* harmony export */ "iu": () => (/* binding */ SupportedLanguages), -/* harmony export */ "td": () => (/* binding */ NetworkType), -/* harmony export */ "z4": () => (/* binding */ TradeProvider) -/* harmony export */ }); -/* unused harmony exports Appearance, LaunchPage, ProviderType, FungibleAssetProvider, NonFungibleAssetProvider */ -var Appearance; -(function(Appearance) { - Appearance["default"] = "default"; - Appearance["light"] = "light"; - Appearance["dark"] = "dark"; -})(Appearance || (Appearance = {})); -var LaunchPage; -(function(LaunchPage) { - LaunchPage["facebook"] = "facebook"; - LaunchPage["twitter"] = "twitter"; - LaunchPage["dashboard"] = "dashboard"; -})(LaunchPage || (LaunchPage = {})); -var DataProvider; -(function(DataProvider) { - DataProvider[DataProvider["COIN_GECKO"] = 0] = "COIN_GECKO"; - DataProvider[DataProvider["COIN_MARKET_CAP"] = 1] = "COIN_MARKET_CAP"; - DataProvider[DataProvider["UNISWAP_INFO"] = 2] = "UNISWAP_INFO"; -})(DataProvider || (DataProvider = {})); -var TradeProvider; -(function(TradeProvider) { - TradeProvider[TradeProvider["UNISWAP_V2"] = 0] = "UNISWAP_V2"; - TradeProvider[TradeProvider["ZRX"] = 1] = "ZRX"; - TradeProvider[TradeProvider["SUSHISWAP"] = 2] = "SUSHISWAP"; - TradeProvider[TradeProvider["SASHIMISWAP"] = 3] = "SASHIMISWAP"; - TradeProvider[TradeProvider["BALANCER"] = 4] = "BALANCER"; - TradeProvider[TradeProvider["QUICKSWAP"] = 5] = "QUICKSWAP"; - TradeProvider[TradeProvider["PANCAKESWAP"] = 6] = "PANCAKESWAP"; - TradeProvider[TradeProvider["DODO"] = 7] = "DODO"; - TradeProvider[TradeProvider["UNISWAP_V3"] = 8] = "UNISWAP_V3"; - TradeProvider[TradeProvider["BANCOR"] = 9] = "BANCOR"; - TradeProvider[TradeProvider["OPENOCEAN"] = 10] = "OPENOCEAN"; - TradeProvider[TradeProvider["WANNASWAP"] = 11] = "WANNASWAP"; - TradeProvider[TradeProvider["TRISOLARIS"] = 12] = "TRISOLARIS"; - TradeProvider[TradeProvider["TRADERJOE"] = 13] = "TRADERJOE"; - TradeProvider[TradeProvider["PANGOLIN"] = 14] = "PANGOLIN"; - TradeProvider[TradeProvider["MDEX"] = 15] = "MDEX"; -})(TradeProvider || (TradeProvider = {})); -var LanguageOptions; -(function(LanguageOptions) { - LanguageOptions["__auto__"] = 'auto'; - LanguageOptions["enUS"] = 'en-US'; - LanguageOptions["zhCN"] = 'zh-CN'; - LanguageOptions["zhTW"] = 'zh-TW'; - LanguageOptions["koKR"] = 'ko-KR'; - LanguageOptions["jaJP"] = 'ja-JP'; -})(LanguageOptions || (LanguageOptions = {})); -var SupportedLanguages; -(function(SupportedLanguages) { - SupportedLanguages["enUS"] = 'en-US'; - SupportedLanguages["zhCN"] = 'zh-CN'; - SupportedLanguages["zhTW"] = 'zh-TW'; - SupportedLanguages["koKR"] = 'ko-KR'; - SupportedLanguages["jaJP"] = 'ja-JP'; -})(SupportedLanguages || (SupportedLanguages = {})); -var NetworkType; -(function(NetworkType) { - NetworkType["Ethereum"] = "Ethereum"; - NetworkType["Binance"] = "Binance"; - NetworkType["Polygon"] = "Polygon"; - NetworkType["Arbitrum"] = "Arbitrum"; - NetworkType["xDai"] = "xDai"; - NetworkType["Celo"] = "Celo"; - NetworkType["Fantom"] = "Fantom"; - NetworkType["Aurora"] = "Aurora"; - NetworkType["Avalanche"] = "Avalanche"; - NetworkType["Boba"] = "Boba"; - NetworkType["Fuse"] = "Fuse"; - NetworkType["Metis"] = "Metis"; - NetworkType["Optimistic"] = "Optimistic"; - NetworkType["Conflux"] = "Conflux"; -})(NetworkType || (NetworkType = {})); -var ProviderType; -(function(ProviderType) { - ProviderType["MaskWallet"] = 'Maskbook'; - ProviderType["MetaMask"] = "MetaMask"; - ProviderType["WalletConnect"] = "WalletConnect"; - ProviderType["Fortmatic"] = "Fortmatic"; - ProviderType["Coin98"] = "Coin98"; - ProviderType["MathWallet"] = "MathWallet"; - ProviderType["WalletLink"] = "WalletLink"; - ProviderType["CustomNetwork"] = "CustomNetwork"; -})(ProviderType || (ProviderType = {})); -var FungibleAssetProvider; -(function(FungibleAssetProvider) { - FungibleAssetProvider["ZERION"] = 'Zerion'; - FungibleAssetProvider["DEBANK"] = 'Debank'; -})(FungibleAssetProvider || (FungibleAssetProvider = {})); -var NonFungibleAssetProvider; -(function(NonFungibleAssetProvider) { - NonFungibleAssetProvider["OPENSEA"] = 'OpenSea'; - NonFungibleAssetProvider["RARIBLE"] = 'Rarible'; - NonFungibleAssetProvider["NFTSCAN"] = 'NFTScan'; - NonFungibleAssetProvider["ZORA"] = 'Zora'; -})(NonFungibleAssetProvider || (NonFungibleAssetProvider = {})); - - -/***/ }), - -/***/ 20871: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "r": () => (/* binding */ createGlobalState) -/* harmony export */ }); -/* harmony import */ var use_subscription__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(66040); -/* harmony import */ var ts_results__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(48160); - - -/** - * Create a new global state. - * - * @param f The async function that return the data needed. - * @param subscribe - * The subscribe function that call the callback when the data changed. - * It will call the f again to revalidate the data. - * - * @returns - * It returns a tuple. - * - * The first item is the react hooks for this resource. - * The hooks receive a argument "checked". - * If checked is true, it will return a status object so you can handle the error by yourself. - * - * The second item is the revalidation function. It can be called anywhere and returns a Promise. - * It will resolves regardless the f itself fullfilled or rejected. - */ function createGlobalState(f1, subscribe) { - const listeners = new Set(); - let currentValue = ts_results__WEBPACK_IMPORTED_MODULE_1__/* .None */ .Hq; - let pending; - const sub = { - getCurrentValue () { - if (currentValue.none) { - subscribe(revalidate); - throw pending ||= revalidate(); - } - if (currentValue.val.err) throw currentValue.val.val; - return currentValue.val.val; - }, - subscribe (f) { - listeners.add(f); - return ()=>listeners.delete(f) - ; - } - }; - function useData() { - return (0,use_subscription__WEBPACK_IMPORTED_MODULE_0__.useSubscription)(sub); - } - function revalidate() { - return f1().then((val)=>currentValue = (0,ts_results__WEBPACK_IMPORTED_MODULE_1__/* .Some */ .bD)((0,ts_results__WEBPACK_IMPORTED_MODULE_1__.Ok)(val)) - , (err)=>currentValue = (0,ts_results__WEBPACK_IMPORTED_MODULE_1__/* .Some */ .bD)((0,ts_results__WEBPACK_IMPORTED_MODULE_1__/* .Err */ .UG)(err)) - ).then(()=>undefined - ).finally(()=>listeners.forEach((f)=>f() - ) - ); - } - return [ - useData, - revalidate - ]; -} - - -/***/ }), - -/***/ 53242: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "E": () => (/* reexport safe */ _hooks__WEBPACK_IMPORTED_MODULE_2__.E), -/* harmony export */ "F$": () => (/* reexport safe */ _hooks__WEBPACK_IMPORTED_MODULE_2__.F$), -/* harmony export */ "N3": () => (/* reexport safe */ _components__WEBPACK_IMPORTED_MODULE_1__.N3), -/* harmony export */ "S8": () => (/* reexport safe */ _hooks__WEBPACK_IMPORTED_MODULE_2__.S8), -/* harmony export */ "SV": () => (/* reexport safe */ _components__WEBPACK_IMPORTED_MODULE_1__.SV), -/* harmony export */ "pv": () => (/* reexport safe */ _hooks__WEBPACK_IMPORTED_MODULE_2__.pv), -/* harmony export */ "r8": () => (/* reexport safe */ _hooks__WEBPACK_IMPORTED_MODULE_2__.r8), -/* harmony export */ "xw": () => (/* reexport safe */ _bom__WEBPACK_IMPORTED_MODULE_0__.x) -/* harmony export */ }); -/* harmony import */ var _bom__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(66802); -/* harmony import */ var _components__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(87557); -/* harmony import */ var _hooks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(21902); - - - - - -/***/ }), - -/***/ 37820: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - - -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - "C9": () => (/* reexport */ register_ns/* createI18NBundle */.C), - "BV": () => (/* reexport */ i18NextInstance), - "BF": () => (/* reexport */ updateLanguage) -}); - -// EXTERNAL MODULE: ../shared-base/src/i18n/register-ns.ts -var register_ns = __webpack_require__(84926); -// EXTERNAL MODULE: ../public-api/src/index.ts -var src = __webpack_require__(97096); -// EXTERNAL MODULE: ../../node_modules/.pnpm/i18next@21.6.15/node_modules/i18next/dist/esm/i18next.js -var i18next = __webpack_require__(97344); -// EXTERNAL MODULE: ../../node_modules/.pnpm/i18next-browser-languagedetector@6.1.4/node_modules/i18next-browser-languagedetector/dist/esm/i18nextBrowserLanguageDetector.js + 2 modules -var i18nextBrowserLanguageDetector = __webpack_require__(52647); -;// CONCATENATED MODULE: ../shared-base/src/i18n/instance.ts - - - -const i18NextInstance = i18next/* default */.ZP; -i18next/* default.use */.ZP.use(i18nextBrowserLanguageDetector/* default */.Z).init({ - keySeparator: false, - interpolation: { - escapeValue: false - }, - fallbackLng: { - 'zh-CN': [ - 'zh-TW', - 'en' - ], - 'zh-TW': [ - 'zh-CN', - 'en' - ], - default: [ - 'en' - ] - }, - defaultNS: 'mask', - nonExplicitSupportedLngs: true, - detection: { - order: [ - 'navigator' - ] - } -}); -function updateLanguage(next) { - if (next === src/* LanguageOptions.__auto__ */.P7.__auto__) { - const result = i18next/* default.services.languageDetector.detect */.ZP.services.languageDetector.detect(); - i18next/* default.changeLanguage */.ZP.changeLanguage(result[0] || src/* LanguageOptions.enUS */.P7.enUS); - } else { - i18next/* default.changeLanguage */.ZP.changeLanguage(next); - } -} - -;// CONCATENATED MODULE: ../shared-base/src/i18n/index.ts - - - - -/***/ }), - -/***/ 78144: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - - -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - "Ko": () => (/* reexport */ collections/* ALL_EVENTS */.Ko), - "iD": () => (/* reexport */ Results/* CheckedError */.iD), - "WF": () => (/* reexport */ Shared/* CrossIsolationMessages */.W), - "vq": () => (/* reexport */ Routes/* DashboardRoutes */.vq), - "ob": () => (/* reexport */ type/* ECKeyIdentifier */.ob), - "CH": () => (/* reexport */ src_crypto/* ECKeyIdentifierFromJsonWebKey */.CH), - "rP": () => (/* reexport */ Pure/* EMPTY_LIST */.r), - "Jk": () => (/* reexport */ Site_type/* EnhanceableSite */.J), - "xI": () => (/* reexport */ type/* GroupIdentifier */.xI), - "xb": () => (/* reexport */ type/* Identifier */.xb), - "qD": () => (/* reexport */ IdentifierMap/* IdentifierMap */.q), - "LM": () => (/* reexport */ personas/* MAX_PERSONA_LIMIT */.L), - "BU": () => (/* reexport */ NextID_type/* NextIDAction */.B), - "Vd": () => (/* reexport */ NextID_type/* NextIDPlatform */.V), - "vP": () => (/* reexport */ collections/* ObservableMap */.vP), - "n7": () => (/* reexport */ collections/* ObservableSet */.n7), - "$f": () => (/* reexport */ collections/* ObservableWeakMap */.$f), - "E": () => (/* reexport */ Results/* OptionalResult */.E), - "mZ": () => (/* reexport */ Routes/* PopupRoutes */.mZ), - "bb": () => (/* reexport */ type/* PostIVIdentifier */.bb), - "_P": () => (/* reexport */ type/* PostIdentifier */._P), - "WO": () => (/* reexport */ type/* ProfileIdentifier */.WO), - "Kn": () => (/* reexport */ Persona_type/* RelationFavor */.K), - "Hd": () => (/* reexport */ sessionStorageCache/* SessionStorageCache */.H), - "Y_": () => (/* reexport */ subscription/* SubscriptionDebug */.Y_), - "Jf": () => (/* reexport */ subscription/* SubscriptionFromValueRef */.Jf), - "ps": () => (/* reexport */ Results/* andThenAsync */.ps), - "f1": () => (/* reexport */ src_crypto/* compressSecp256k1KeyRaw */.xb), - "SH": () => (/* reexport */ src_crypto/* compressSecp256k1Point */.SH), - "qY": () => (/* reexport */ subscription/* createConstantSubscription */.qY), - "C9": () => (/* reexport */ i18n/* createI18NBundle */.C9), - "q0": () => (/* reexport */ kv_storage/* createInMemoryKVStorageBackend */.q0), - "Ic": () => (/* reexport */ kv_storage/* createIndexedDB_KVStorageBackend */.Ic), - "rc": () => (/* reexport */ kv_storage/* createKVStorageHost */.rc), - "X2": () => (/* reexport */ kv_storage/* createProxyKVStorageBackend */.X2), - "Fd": () => (/* reexport */ subscription/* createSubscriptionFromAsync */.Fd), - "qX": () => (/* reexport */ src_crypto/* decompressSecp256k1Key */.qX), - "Yj": () => (/* reexport */ src_crypto/* decompressSecp256k1KeyRaw */.Yj), - "pf": () => (/* reexport */ src_crypto/* decompressSecp256k1Point */.pf), - "Nb": () => (/* reexport */ personas/* formatPersonaFingerprint */.N), - "mz": () => (/* reexport */ convert/* fromBase64URL */.mz), - "H_": () => (/* reexport */ convert/* fromHex */.H_), - "$I": () => (/* reexport */ getAssetAsBlobURL/* getAssetAsBlobURL */.$), - "Bb": () => (/* reexport */ getLocalImplementation/* getLocalImplementation */.B), - "kO": () => (/* reexport */ getLocalImplementation/* getLocalImplementationExotic */.k), - "BV": () => (/* reexport */ i18n/* i18NextInstance */.BV), - "K2": () => (/* reexport */ detect/* isDashboardPage */.K), - "N6": () => (/* reexport */ detect/* isPopupPage */.N), - "dK": () => (/* reexport */ src_crypto/* isSecp256k1Point */.dK), - "Rx": () => (/* reexport */ src_crypto/* isSecp256k1PrivateKey */.Rx), - "S3": () => (/* reexport */ subscription/* mapSubscription */.S3), - "Lk": () => (/* reexport */ parseURL/* parseURL */.L), - "s_": () => (/* reexport */ pollingTask/* pollingTask */.s), - "tr": () => (/* reexport */ serializer/* registerSerializableClass */.tr), - "zD": () => (/* reexport */ Routes/* relativeRouteOf */.Y_), - "GM": () => (/* reexport */ serializer/* serializer */.GM), - "s3": () => (/* reexport */ convert/* toBase64 */.s3), - "wi": () => (/* reexport */ convert/* toBase64URL */.wi), - "NC": () => (/* reexport */ convert/* toHex */.NC), - "BF": () => (/* reexport */ i18n/* updateLanguage */.BF) -}); - -// UNUSED EXPORTS: ECKeyIdentifierFromCryptoKey, EMPTY_OBJECT, ExtensionSite, PayloadVersions, PersonaIdentifier, ReadonlyIdentifierMap, ValueRefFromSubscription, __DEBUG__ONLY__enableCryptoKeySerialization, compressSecp256k1Key, removed - -// EXTERNAL MODULE: ../shared-base/src/serializer/index.ts -var serializer = __webpack_require__(91131); -// EXTERNAL MODULE: ../shared-base/src/Identifier/IdentifierMap.ts -var IdentifierMap = __webpack_require__(93731); -// EXTERNAL MODULE: ../shared-base/src/collections/index.ts -var collections = __webpack_require__(33821); -// EXTERNAL MODULE: ../shared-base/src/MaskPayload/index.ts -var MaskPayload = __webpack_require__(43550); -// EXTERNAL MODULE: ../shared-base/src/Identifier/type.ts -var type = __webpack_require__(57589); -// EXTERNAL MODULE: ../shared-base/src/i18n/index.ts + 1 modules -var i18n = __webpack_require__(37820); -// EXTERNAL MODULE: ../shared-base/src/utils/detect.ts -var detect = __webpack_require__(75990); -// EXTERNAL MODULE: ../shared-base/src/utils/getLocalImplementation.tsx -var getLocalImplementation = __webpack_require__(97825); -// EXTERNAL MODULE: ../shared-base/src/utils/parseURL.ts -var parseURL = __webpack_require__(72610); -// EXTERNAL MODULE: ../shared-base/src/utils/pollingTask.ts -var pollingTask = __webpack_require__(16746); -// EXTERNAL MODULE: ../shared-base/src/utils/sessionStorageCache.ts -var sessionStorageCache = __webpack_require__(16280); -// EXTERNAL MODULE: ../shared-base/src/utils/subscription.ts -var subscription = __webpack_require__(40613); -// EXTERNAL MODULE: ../shared-base/src/utils/getAssetAsBlobURL.ts -var getAssetAsBlobURL = __webpack_require__(20449); -// EXTERNAL MODULE: ../shared-base/src/utils/personas.ts -var personas = __webpack_require__(68433); -;// CONCATENATED MODULE: ../shared-base/src/utils/index.ts - - - - - - - - - -// EXTERNAL MODULE: ../shared-base/src/kv-storage/index.ts + 1 modules -var kv_storage = __webpack_require__(66052); -// EXTERNAL MODULE: ../shared-base/src/crypto/index.ts + 1 modules -var src_crypto = __webpack_require__(68149); -// EXTERNAL MODULE: ../shared-base/src/Pure/index.ts -var Pure = __webpack_require__(3494); -// EXTERNAL MODULE: ../shared-base/src/Persona/type.ts -var Persona_type = __webpack_require__(42703); -// EXTERNAL MODULE: ../shared-base/src/Site/type.ts -var Site_type = __webpack_require__(77907); -// EXTERNAL MODULE: ../shared-base/src/Routes/index.ts -var Routes = __webpack_require__(1174); -// EXTERNAL MODULE: ../shared-base/src/Messages/Shared.ts -var Shared = __webpack_require__(85562); -// EXTERNAL MODULE: ../shared-base/src/Results/index.ts + 2 modules -var Results = __webpack_require__(33067); -// EXTERNAL MODULE: ../shared-base/src/convert/index.ts -var convert = __webpack_require__(59041); -// EXTERNAL MODULE: ../shared-base/src/NextID/type.ts -var NextID_type = __webpack_require__(27897); -;// CONCATENATED MODULE: ../shared-base/src/index.ts - - - - - - - - - - - - - - - - - - - - - - -/***/ }), - -/***/ 66052: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - - -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - "q0": () => (/* reexport */ in_memory/* createInMemoryKVStorageBackend */.q), - "Ic": () => (/* reexport */ idb/* createIndexedDB_KVStorageBackend */.I), - "rc": () => (/* binding */ createKVStorageHost), - "X2": () => (/* reexport */ createProxyKVStorageBackend) -}); - -// UNUSED EXPORTS: removed - -// EXTERNAL MODULE: ../../node_modules/.pnpm/@dimensiondev+kit@0.0.0-20220228054820-f2378be/node_modules/@dimensiondev/kit/esm/index.js + 1 modules -var esm = __webpack_require__(28807); -// EXTERNAL MODULE: ../shared-base/src/kv-storage/in-memory.ts -var in_memory = __webpack_require__(3709); -// EXTERNAL MODULE: ../shared-base/src/kv-storage/idb.ts -var idb = __webpack_require__(59573); -;// CONCATENATED MODULE: ../shared-base/src/kv-storage/proxy.ts - -function createProxyKVStorageBackend() { - let target; - let [promise, resolve, reject] = (0,esm/* defer */.PQ)(); - return { - get beforeAutoSync () { - return promise; - }, - async getValue (...args) { - return target.getValue(...args); - }, - async setValue (...args) { - return target.setValue(...args); - }, - replaceBackend (backend) { - target = backend; - // resolve old one - backend.beforeAutoSync.then(resolve, reject); - [promise, resolve, reject] = (0,esm/* defer */.PQ)(); - backend.beforeAutoSync.then(resolve, reject); - } - }; -} - -;// CONCATENATED MODULE: ../shared-base/src/kv-storage/index.ts - - - - -const removed = Symbol.for('removed'); - -/** - * Create a root scope of simple K/V storage. - * @param backend The storage provider - * @param message The message channel to sync the latest value - * @param signal The abort signal - */ function createKVStorageHost(backend, message, signal = new AbortController().signal) { - return (name, defaultValues)=>{ - return createScope(signal, backend, message, null, name, defaultValues); - }; -} -const alwaysThrowHandler = ()=>{ - throw new TypeError('Invalid operation'); -}; -function createScope(signal, backend, message, parentScope, scope, defaultValues1) { - if (scope.includes('/')) throw new TypeError('scope name cannot contains "/"'); - if (scope.includes(':')) throw new TypeError('scope name cannot contains ":"'); - const currentScope = parentScope === null ? scope : `${parentScope}/${scope}`; - const storage = new Proxy({ - __proto__: null - }, { - defineProperty: alwaysThrowHandler, - deleteProperty: alwaysThrowHandler, - set: alwaysThrowHandler, - preventExtensions: alwaysThrowHandler, - setPrototypeOf: alwaysThrowHandler, - get (target, prop, receiver) { - if (typeof prop === 'symbol') return undefined; - if (target[prop]) return target[prop]; - target[prop] = createState(signal, backend, message, currentScope, prop, defaultValues1[prop]); - return target[prop]; - } - }); - backend.beforeAutoSync.then(()=>{ - for (const [key, value] of Object.entries(defaultValues1)){ - if (value === removed) continue; - // trigger the auto sync - storage[key].initialized; - } - }); - return { - createSubScope (subScope, defaultValues, scopeSignal) { - const aggregatedSignal = (0,esm/* combineAbortSignal */.dq)(scopeSignal, signal); - return createScope(aggregatedSignal, backend, message, currentScope, subScope, defaultValues); - }, - storage - }; -} -function createState(signal, backend, message, scope, prop, defaultValue) { - const propKey = `${scope}:${prop}`; - let initialized = false; - let usingDefaultValue = true; - const initializedPromise = backend.beforeAutoSync.then(()=>backend.getValue(propKey) - ).then((val)=>{ - if (val.some) usingDefaultValue = false; - return val.unwrapOr(defaultValue); - }).then((val)=>{ - state = val; - initialized = true; - }); - let state = defaultValue; - const listeners = new Set(); - function subscribe(f) { - listeners.add(f); - return ()=>listeners.delete(f) - ; - } - const subscription = { - getCurrentValue: ()=>{ - if (!initialized) throw initializedPromise; - return state; - }, - subscribe - }; - function setter(val) { - if (isEqual(state, val)) return; - usingDefaultValue = false; - state = val; - for (const f of listeners)f(); - } - message.on(([eventKey, newValue])=>eventKey === propKey && setter(newValue) - , { - signal - }); - return { - get initialized () { - return initialized; - }, - get initializedPromise () { - return initializedPromise; - }, - get value () { - if (!initialized) throw new Error('Try to access K/V state before initialization finished.'); - return state; - }, - async setValue (value) { - if (signal.aborted) throw new TypeError('Aborted storage.'); - // force trigger store when set state with default value to make it persistent. - if (usingDefaultValue || !isEqual(state, value)) await backend.setValue(propKey, value); - setter(value); - }, - subscription - }; -} -function isEqual(a, b) { - if (a === b) return true; - if (a === null || b === null) return false; - if (typeof a === 'object') { - // Note: JSON stringify is not stable. - return JSON.stringify(a) === JSON.stringify(b); - } - return false; -} - - -/***/ }), - -/***/ 68433: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "L": () => (/* binding */ MAX_PERSONA_LIMIT), -/* harmony export */ "N": () => (/* binding */ formatPersonaFingerprint) -/* harmony export */ }); -function formatPersonaFingerprint(fingerprint, size = 0) { - if (size === 0) return fingerprint; - return `${fingerprint.substr(0, 2 + size)}...${fingerprint.substr(-size)}`; -} -const MAX_PERSONA_LIMIT = 10; - - -/***/ }), - -/***/ 67391: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "f": () => (/* binding */ ChainIcon) -/* harmony export */ }); -/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(71999); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(86248); -/* harmony import */ var _masknet_theme__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(30232); - - - -const useStyles = (0,_masknet_theme__WEBPACK_IMPORTED_MODULE_2__/* .makeStyles */ .ZL)()((theme)=>({ - point: { - width: 12.5, - height: 12.5, - borderRadius: 6.25, - margin: 3.75 - }, - border: { - border: `1px solid ${theme.palette.background.paper}` - } - }) -); -const ChainIcon = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.memo)(({ color , size =12.5 })=>{ - const { classes } = useStyles(); - return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", { - className: classes.point, - style: { - width: size, - height: size, - backgroundColor: color - } - }); -}); - - -/***/ }), - -/***/ 67406: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "j": () => (/* binding */ MiniNetworkSelector) -/* harmony export */ }); -/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(71999); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(86248); -/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(32831); -/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(37731); -/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(867); -/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(85139); -/* harmony import */ var _masknet_theme__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(30232); -/* harmony import */ var _ChainIcon__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(67391); -/* harmony import */ var _WalletIcon__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(86898); - - - - - - -const AllNetworkButton = (0,_mui_material__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .ZP)(_mui_material__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z)(({ theme })=>({ - display: 'inline-block', - marginRight: theme.spacing(1), - padding: 0, - borderRadius: '50%', - fontSize: 12, - '&:hover': { - boxShadow: 'none' - }, - opacity: 0.5 - }) -); -const useStyles = (0,_masknet_theme__WEBPACK_IMPORTED_MODULE_2__/* .makeStyles */ .ZL)()((theme, props)=>({ - networkSelected: { - opacity: 1, - '&:after': { - content: '""', - position: 'absolute', - bottom: -8, - right: (props.size - 4) / 2, - display: 'inline-block', - width: 4, - height: 4, - background: _masknet_theme__WEBPACK_IMPORTED_MODULE_2__/* .MaskColorVar.primary */ .ZN.primary, - borderRadius: '50%' - } - }, - networkDisabled: { - cursor: 'not-allowed', - '&:hover': { - opacity: 0.6 - } - } - }) -); -const MiniNetworkSelector = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.memo)(({ hideAllNetworkButton =false , onSelect , networks =[] , selectedNetwork , disabledNonCurrentNetwork =false , size =30 , })=>{ - const { classes } = useStyles({ - size: size - }); - return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_mui_material__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z, { - direction: "row", - children: [ - !hideAllNetworkButton && /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(AllNetworkButton, { - className: !selectedNetwork ? classes.networkSelected : '', - sx: { - width: size, - height: size, - minWidth: size, - lineHeight: `${size}px` - }, - onClick: ()=>onSelect(null) - , - children: "ALL" - }), - networks.filter((x)=>x.isMainnet - ).map((network)=>{ - return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, { - position: "relative", - mr: 1, - height: size, - onClick: ()=>!disabledNonCurrentNetwork && onSelect(network) - , - sx: { - cursor: 'pointer', - opacity: '0.6', - ':hover': { - opacity: 1 - }, - userSelect: 'none', - lineHeight: `${size}px` - }, - className: selectedNetwork?.ID === network.ID ? classes.networkSelected : disabledNonCurrentNetwork ? classes.networkDisabled : '', - children: network.isMainnet ? /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_WalletIcon__WEBPACK_IMPORTED_MODULE_4__/* .WalletIcon */ .o, { - networkIcon: network.icon, - size: size - }) : /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_ChainIcon__WEBPACK_IMPORTED_MODULE_3__/* .ChainIcon */ .f, { - color: network.iconColor, - size: size - }) - }, network.ID); - }) - ] - }); -}); - - -/***/ }), - -/***/ 13111: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "i": () => (/* binding */ ReversedAddress) -/* harmony export */ }); -/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(71999); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(86248); -/* harmony import */ var _masknet_plugin_infra_web3__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(67071); - - - -const ReversedAddress = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.memo)(({ address , pluginId , domainSize , size =5 })=>{ - const { value: domain } = (0,_masknet_plugin_infra_web3__WEBPACK_IMPORTED_MODULE_2__/* .useReverseAddress */ .$q)(address, pluginId); - const { Utils } = (0,_masknet_plugin_infra_web3__WEBPACK_IMPORTED_MODULE_2__/* .useWeb3State */ .dM)(pluginId); - if (!domain || !Utils?.formatDomainName) return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, { - children: Utils?.formatAddress?.(address, size) ?? address - }); - return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, { - children: Utils.formatDomainName(domain, domainSize) - }); -}); - - -/***/ }), - -/***/ 7849: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - - -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - "F": () => (/* binding */ InjectedDialog) -}); - -// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.0.0/node_modules/react/jsx-runtime.js -var jsx_runtime = __webpack_require__(71999); -// EXTERNAL MODULE: ../shared-base/src/index.ts + 1 modules -var src = __webpack_require__(78144); -// EXTERNAL MODULE: ../shared-base-ui/src/index.ts -var shared_base_ui_src = __webpack_require__(53242); -// EXTERNAL MODULE: ../theme/src/entry.ts -var entry = __webpack_require__(30232); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.6.1_1376d0c029fe63cac75d7e36fe4212f4/node_modules/@mui/material/useMediaQuery/useMediaQuery.js -var useMediaQuery = __webpack_require__(93854); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.6.1_1376d0c029fe63cac75d7e36fe4212f4/node_modules/@mui/material/styles/useTheme.js -var useTheme = __webpack_require__(927); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.6.1_1376d0c029fe63cac75d7e36fe4212f4/node_modules/@mui/material/DialogActions/DialogActions.js + 1 modules -var DialogActions = __webpack_require__(38175); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.6.1_1376d0c029fe63cac75d7e36fe4212f4/node_modules/@mui/material/DialogContent/DialogContent.js + 1 modules -var DialogContent = __webpack_require__(33347); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.6.1_1376d0c029fe63cac75d7e36fe4212f4/node_modules/@mui/material/Dialog/Dialog.js + 1 modules -var Dialog = __webpack_require__(30397); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.6.1_1376d0c029fe63cac75d7e36fe4212f4/node_modules/@mui/material/DialogTitle/DialogTitle.js -var DialogTitle = __webpack_require__(17282); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.6.1_1376d0c029fe63cac75d7e36fe4212f4/node_modules/@mui/material/IconButton/IconButton.js + 1 modules -var IconButton = __webpack_require__(589); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.6.1_1376d0c029fe63cac75d7e36fe4212f4/node_modules/@mui/material/Typography/Typography.js + 1 modules -var Typography = __webpack_require__(37253); -// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.0.0/node_modules/react/index.js -var react = __webpack_require__(86248); -// EXTERNAL MODULE: ../shared/src/locales/index.ts + 1 modules -var locales = __webpack_require__(29889); -// EXTERNAL MODULE: ../shared/src/contexts/base/index.ts + 1 modules -var base = __webpack_require__(40915); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+icons-material@5.6.1_15f9e73798f83ff073fea11061a4a4f7/node_modules/@mui/icons-material/Close.js -var Close = __webpack_require__(37214); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+icons-material@5.6.1_15f9e73798f83ff073fea11061a4a4f7/node_modules/@mui/icons-material/ArrowBackRounded.js -var ArrowBackRounded = __webpack_require__(23485); -;// CONCATENATED MODULE: ../shared/src/contexts/components/DialogDismissIcon.tsx - -// see https://github.com/import-js/eslint-plugin-import/issues/2288 -// eslint-disable-next-line import/no-deprecated - - - -function DialogDismissIcon(props) { - const close = /*#__PURE__*/ (0,jsx_runtime.jsx)(Close/* default */.Z, { - color: "inherit" - }); - const back = /*#__PURE__*/ (0,jsx_runtime.jsx)(ArrowBackRounded/* default */.Z, {}); - // see https://github.com/import-js/eslint-plugin-import/issues/2288 - // eslint-disable-next-line import/no-deprecated - const auto = (0,useMediaQuery/* default */.Z)(`(min-width: ${(0,useTheme/* default */.Z)().breakpoints.values.sm}px)`); - if (!props.style || props.style === 'auto') return auto ? close : back; - if (props.style === 'back') return back; - return close; -} - -;// CONCATENATED MODULE: ../shared/src/contexts/components/InjectedDialog.tsx - - - - - - - - - -const useStyles = (0,entry/* makeStyles */.ZL)()((theme, { clean })=>({ - dialogTitle: { - padding: theme.spacing(1, 2), - borderBottom: `1px solid ${theme.palette.divider}` - }, - dialogContent: { - overscrollBehavior: 'contain' - }, - dialogTitleTypography: { - marginLeft: 6, - verticalAlign: 'middle' - }, - dialogCloseButton: { - color: theme.palette.text.primary - }, - paper: clean ? { - width: 'auto', - backgroundImage: 'none' - } : {} - }) -); -function InjectedDialog(props) { - const snsId = (0,shared_base_ui_src/* useValueRef */.E)(base/* sharedUINetworkIdentifier */.Xr); - const overwrite = (0,shared_base_ui_src/* useValueRef */.E)(base/* sharedUIComponentOverwrite */.vU); - props = overwrite.InjectedDialog?.props?.(props) ?? props; - const clean = snsId === src/* EnhanceableSite.Minds */.Jk.Minds || snsId === src/* EnhanceableSite.Facebook */.Jk.Facebook; - const { dialogActions , dialogCloseButton , dialogContent , dialogTitle , dialogTitleTypography , dialogBackdropRoot , container: container1 , ...dialogClasses } = (0,entry/* useStylesExtends */.Bc)(useStyles({ - clean - }), props, overwrite.InjectedDialog?.classes); - const t = (0,locales/* useSharedI18N */.B)(); - const fullScreen = (0,useMediaQuery/* default */.Z)((0,useTheme/* default */.Z)().breakpoints.down('xs')); - const isDashboard = (0,src/* isDashboardPage */.K2)(); - const { children , open , disableBackdropClick , titleBarIconStyle , onClose , title , titleTail =null , disableTitleBorder , ...rest } = props; - const actions = CopyElementWithNewProps(children, DialogActions/* default */.Z, { - root: dialogActions - }); - const content = CopyElementWithNewProps(children, DialogContent/* default */.Z, { - root: dialogContent - }); - const { extraProps , shouldReplaceExitWithBack , IncreaseStack } = (0,entry/* useDialogStackActor */.tE)(open); - return (0,entry/* usePortalShadowRoot */.ad)((container)=>/*#__PURE__*/ (0,jsx_runtime.jsx)(IncreaseStack, { - children: /*#__PURE__*/ (0,jsx_runtime.jsx)(Dialog/* default */.Z, { - container: container, - fullScreen: fullScreen, - classes: dialogClasses, - scroll: "paper", - fullWidth: true, - maxWidth: "sm", - disableAutoFocus: true, - disableEnforceFocus: true, - onClose: (event, reason)=>{ - if (reason === 'backdropClick' && disableBackdropClick) return; - onClose?.(); - }, - onBackdropClick: disableBackdropClick ? void 0 : onClose, - BackdropProps: { - classes: { - root: dialogBackdropRoot - } - }, - ...rest, - ...extraProps, - children: /*#__PURE__*/ (0,jsx_runtime.jsxs)(shared_base_ui_src/* ErrorBoundary */.SV, { - children: [ - title ? /*#__PURE__*/ (0,jsx_runtime.jsxs)(DialogTitle/* default */.Z, { - className: "dashboard-dialog-title-hook", - classes: { - root: dialogTitle - }, - style: { - border: isDashboard || disableTitleBorder ? 'none' : undefined, - fontSize: isDashboard ? 24 : undefined - }, - children: [ - /*#__PURE__*/ (0,jsx_runtime.jsx)(IconButton/* default */.Z, { - size: "large", - classes: { - root: dialogCloseButton - }, - "aria-label": t.dialog_dismiss(), - onClick: onClose, - children: /*#__PURE__*/ (0,jsx_runtime.jsx)(DialogDismissIcon, { - style: shouldReplaceExitWithBack && !isDashboard ? 'back' : titleBarIconStyle - }) - }), - /*#__PURE__*/ (0,jsx_runtime.jsx)(Typography/* default */.Z, { - className: dialogTitleTypography, - display: "inline", - variant: "inherit", - children: title - }), - titleTail - ] - }) : null, - /*#__PURE__*/ (0,jsx_runtime.jsx)("span", {}), - content, - actions - ] - }) - }) - }) - ); -} -function CopyElementWithNewProps(children, Target, // @ts-ignore -extraClasses) { - return (react.Children.map(children, (child)=>child?.type === Target ? /*#__PURE__*/ (0,react.cloneElement)(child, { - classes: (0,entry/* mergeClasses */.ze)(extraClasses, child.props.classes) - }) : null - ) || []).filter(Boolean); -} - - -/***/ }), - -/***/ 9555: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "z": () => (/* binding */ addSharedI18N) -/* harmony export */ }); -/* unused harmony export languages */ -/* harmony import */ var _en_US_json__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(90667); -/* harmony import */ var _ja_JP_json__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(45558); -/* harmony import */ var _ko_KR_json__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(93495); -/* harmony import */ var _qya_AA_json__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(88807); -/* harmony import */ var _zh_CN_json__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(83055); -/* harmony import */ var _zh_TW_json__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(47359); -/* harmony import */ var _masknet_shared_base__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(78144); -// This file is auto generated. DO NOT EDIT -// Run `npx gulp sync-languages` to regenerate. -// Default fallback language in a family of languages are chosen by the alphabet order -// To overwrite this, please overwrite packages/scripts/src/locale-kit-next/index.ts - - - - - - -const languages = { - en: _en_US_json__WEBPACK_IMPORTED_MODULE_0__, - ja: _ja_JP_json__WEBPACK_IMPORTED_MODULE_1__, - ko: _ko_KR_json__WEBPACK_IMPORTED_MODULE_2__, - qy: _qya_AA_json__WEBPACK_IMPORTED_MODULE_3__, - 'zh-CN': _zh_CN_json__WEBPACK_IMPORTED_MODULE_4__, - zh: _zh_TW_json__WEBPACK_IMPORTED_MODULE_5__ -}; - -const addSharedI18N = (0,_masknet_shared_base__WEBPACK_IMPORTED_MODULE_6__/* .createI18NBundle */ .C9)('shared', languages); -// @ts-ignore -if (false) {} - - -/***/ }), - -/***/ 9183: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - - -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - "E": () => (/* reexport */ ButtonGroupTabList) -}); - -// UNUSED EXPORTS: ButtonTab - -// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.0.0/node_modules/react/jsx-runtime.js -var jsx_runtime = __webpack_require__(71999); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.6.1_1376d0c029fe63cac75d7e36fe4212f4/node_modules/@mui/material/styles/styled.js -var styled = __webpack_require__(32831); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.6.1_1376d0c029fe63cac75d7e36fe4212f4/node_modules/@mui/material/Button/Button.js -var Button = __webpack_require__(37731); -// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.0.0/node_modules/react/index.js -var react = __webpack_require__(86248); -;// CONCATENATED MODULE: ../theme/src/Components/ButtonGroupTab/ButtonGroupTab.tsx - - - -const TabButtonWrap = (0,styled/* default */.ZP)(Button/* default */.Z)(({ theme })=>({ - paddingLeft: theme.spacing(2), - paddingRight: theme.spacing(2), - flex: 1 - }) -); -/** - * This is an alternative implementation of Tab component, to use with . - */ const ButtonTab = /*#__PURE__*/ (0,react.forwardRef)((props, ref)=>{ - const activated = !!props.selected; - const { onChange , onClick , value } = props; - const handleClick = (event)=>{ - if (!activated && onChange) onChange(event, String(value)); - if (onClick) onClick(event); - }; - // TODO: replace secondary to correct theme color - return /*#__PURE__*/ (0,jsx_runtime.jsx)(TabButtonWrap, { - ref: ref, - role: "tab", - ...props, - disableElevation: true, - variant: "contained", - color: activated ? 'primary' : 'secondary', - "aria-selected": activated, - onClick: handleClick, - onChange: undefined - }); -}); - -// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.6.1_1376d0c029fe63cac75d7e36fe4212f4/node_modules/@mui/material/Tab/Tab.js -var Tab = __webpack_require__(27536); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+material@5.6.1_1376d0c029fe63cac75d7e36fe4212f4/node_modules/@mui/material/ButtonGroup/ButtonGroup.js + 1 modules -var ButtonGroup = __webpack_require__(49015); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@mui+lab@5.0.0-alpha.77_594218741661fc54915c073d63b4aa87/node_modules/@mui/lab/TabContext/TabContext.js -var TabContext = __webpack_require__(69157); -;// CONCATENATED MODULE: ../theme/src/Components/ButtonGroupTab/ButtonGroupTabList.tsx - - - - - -/** - * This component is like TabList + Tabs in the @mui/material. - * It should be used with . - * - * Warning: Only a few "value" and "label" props on the @mui/material component will work. - * - * @example - * const [currentTab, onChange, tabs, setTab] = useTab('tab1', 'tab2', 'tab3') - * return ( - * - * - * - * - * - * - * Item One - * Item Two - * Item Three - * - * ) - */ const ButtonGroupTabList = /*#__PURE__*/ (0,react.forwardRef)((props, ref)=>{ - const context = (0,TabContext/* useTabContext */._i)(); - if (context === null) throw new TypeError('No TabContext provided'); - const children = react.Children.map(props.children, (child)=>{ - if (!/*#__PURE__*/ (0,react.isValidElement)(child)) return child; - const extra = { - 'aria-controls': (0,TabContext/* getPanelId */.uU)(context, child.props.value), - id: (0,TabContext/* getTabId */.pQ)(context, child.props.value), - selected: child.props.value === context.value, - onChange: props.onChange - }; - if (child.type === Tab/* default */.Z) { - return /*#__PURE__*/ (0,jsx_runtime.jsx)(ButtonTab, { - value: child.props.value, - ...extra, - children: child.props.label - }); - } - return /*#__PURE__*/ (0,react.cloneElement)(child, extra); - }); - const { onChange , ...rest } = props; - return /*#__PURE__*/ (0,jsx_runtime.jsx)(ButtonGroup/* default */.Z, { - ...rest, - ref: ref, - role: "tablist", - children: children - }); -}); - -;// CONCATENATED MODULE: ../theme/src/Components/ButtonGroupTab/index.ts - - - - -/***/ }), - -/***/ 98408: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "q": () => (/* binding */ CountdownButton) -/* harmony export */ }); -/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(71999); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(86248); -/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(37731); - - - -const CountdownButton = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.forwardRef)((props, ref)=>{ - const { duration =60 , children , repeatContent ='Resend' , onClick , disabled , ...others } = props; - const [countdown, setCountdown] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(undefined); - const handleClick = (event)=>{ - setCountdown(duration); - onClick?.(event); - }; - const content = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>{ - if (countdown) { - return `${children} (${countdown})`; - } else if (countdown === 0) { - return repeatContent; - } else { - return children; - } - }, [ - countdown - ]); - (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{ - if (countdown) { - const timer = setTimeout(()=>{ - setCountdown(countdown - 1); - }, 1000); - return ()=>{ - clearTimeout(timer); - }; - } - return ()=>{}; - }, [ - countdown - ]); - return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z, { - ref: ref, - ...others, - onClick: handleClick, - disabled: !!countdown || disabled, - children: content - }); -}); - - -/***/ }), - -/***/ 68381: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "g": () => (/* binding */ PhoneNumberField) -/* harmony export */ }); -/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(71999); -/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(85139); -/* harmony import */ var _UIHelper_makeStyles__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(21561); -/* harmony import */ var _TextField__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(27381); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(86248); - - - - - -const useStyles = (0,_UIHelper_makeStyles__WEBPACK_IMPORTED_MODULE_1__/* .makeStyles */ .Z)()({ - country: { - width: '120px', - marginRight: '10px' - }, - phone: { - width: '100%' - } -}); -const PhoneNumberField = ({ label , value , error , onBlur , countryPlaceholder ='+1' , onChange })=>{ - const { classes } = useStyles(); - const [phone, setPhone] = (0,react__WEBPACK_IMPORTED_MODULE_3__.useState)(value.phone); - const [countryCode, setCountryCode] = (0,react__WEBPACK_IMPORTED_MODULE_3__.useState)(value.country); - const handleCountryCodeChange = (event)=>{ - const inputValue = event.target.value; - const prefix = inputValue.startsWith('+') ? '' : '+'; - setCountryCode(prefix + inputValue); - onChange?.({ - country: inputValue, - phone: phone - }); - }; - const handlePhoneChange = (event)=>{ - const inputValue = event.target.value; - setPhone(inputValue); - onChange?.({ - country: countryCode, - phone: inputValue - }); - }; - return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)("div", { - children: [ - label, - /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_mui_material__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z, { - sx: { - display: 'flex', - alignItems: 'flex-start' - }, - children: [ - /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", { - className: classes.country, - children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_TextField__WEBPACK_IMPORTED_MODULE_2__/* .MaskTextField */ .F, { - value: countryCode, - onChange: handleCountryCodeChange, - placeholder: countryPlaceholder - }) - }), - /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", { - className: classes.phone, - children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_TextField__WEBPACK_IMPORTED_MODULE_2__/* .MaskTextField */ .F, { - fullWidth: true, - value: phone, - onChange: handlePhoneChange, - onBlur: onBlur, - type: "text", - error: !!error, - helperText: error - }) - }) - ] - }) - ] - }); -}; - - -/***/ }), - -/***/ 68393: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "o": () => (/* binding */ SendingCodeField) -/* harmony export */ }); -/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(71999); -/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(85139); -/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(867); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(86248); -/* harmony import */ var _TextField__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(27381); -/* harmony import */ var _CountdownButton__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(98408); - - - - - -const SendingCodeField = ({ onSend , sendButtonText ='Send' , label , errorMessage , onBlur , disabled =false , autoSend =false , onChange })=>{ - const [code, setCode] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(''); - const sendButton = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null); - (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{ - onChange?.(code); - }, [ - code - ]); - (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{ - if (autoSend) sendButton.current?.click(); - }, [ - autoSend - ]); - return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_mui_material__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z, { - children: [ - /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z, { - children: label - }), - /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z, { - children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_mui_material__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z, { - alignItems: "flex-start", - direction: "row", - spacing: 1, - children: [ - /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z, { - flex: 1, - children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_TextField__WEBPACK_IMPORTED_MODULE_2__/* .MaskTextField */ .F, { - size: "small", - value: code, - onChange: (event)=>setCode(event.target.value) - , - error: !!errorMessage, - helperText: errorMessage, - onBlur: ()=>onBlur?.(code) - , - disabled: disabled - }) - }), - /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_CountdownButton__WEBPACK_IMPORTED_MODULE_3__/* .CountdownButton */ .q, { - ref: sendButton, - size: "medium", - sx: { - height: '40px', - width: '100px' - }, - onClick: onSend, - disabled: disabled, - children: sendButtonText - }) - ] - }) - }) - ] - }); -}; - - -/***/ }), - -/***/ 3482: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "C": () => (/* binding */ MaskLightTheme), -/* harmony export */ "H": () => (/* binding */ MaskDarkTheme) -/* harmony export */ }); -/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(90696); -/* harmony import */ var _changes__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(89545); -/* harmony import */ var _component_changes__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(84865); -/* harmony import */ var lodash_unified__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(9084); -/* harmony import */ var _CSSVariables__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(36972); - - - - - -const color = (mode, color1)=>({ - mode, - primary: { - main: color1.primary, - contrastText: color1.primaryContrastText - }, - secondary: { - main: color1.primary, - contrastText: color1.primaryContrastText - }, - background: { - paper: color1.primaryBackground, - default: color1.secondaryBackground - }, - error: { - main: color1.redMain, - contrastText: color1.redContrastText - }, - success: { - main: color1.greenMain - }, - warning: { - main: color1.orangeMain - }, - divider: color1.divider, - text: { - primary: color1.textPrimary, - secondary: color1.textSecondary - } - }) -; -function MaskTheme(mode) { - const colors = mode === 'dark' ? _CSSVariables__WEBPACK_IMPORTED_MODULE_2__/* .DarkColor */ .I3 : _CSSVariables__WEBPACK_IMPORTED_MODULE_2__/* .LightColor */ .Ci; - const theme = (0,lodash_unified__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z)({ - palette: color(mode, colors) - }, ...Object.values(_changes__WEBPACK_IMPORTED_MODULE_0__).map(applyColors), ...Object.values(_component_changes__WEBPACK_IMPORTED_MODULE_1__).map(applyColors)); - return (0,_mui_material__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z)(theme); - function applyColors(x) { - if (typeof x === 'function') return x(mode, colors); - return x; - } -} -const MaskLightTheme = MaskTheme('light'); -const MaskDarkTheme = MaskTheme('dark'); - - -/***/ }), - -/***/ 61289: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "Q": () => (/* binding */ useSystemPreferencePalette) -/* harmony export */ }); -/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(93854); - -function useSystemPreferencePalette() { - return (0,_mui_material__WEBPACK_IMPORTED_MODULE_0__/* ["default"] */ .Z)('(prefers-color-scheme: dark)') ? 'dark' : 'light'; -} - - -/***/ }), - -/***/ 55678: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "CS": () => (/* binding */ resolveLinkOnExplorer), -/* harmony export */ "Hw": () => (/* binding */ resolveProviderName), -/* harmony export */ "IH": () => (/* binding */ resolveProviderHomeLink), -/* harmony export */ "OC": () => (/* binding */ resolveNetworkAddressPrefix), -/* harmony export */ "Po": () => (/* binding */ resolveChainName), -/* harmony export */ "QN": () => (/* binding */ resolveOpenSeaLink), -/* harmony export */ "Q_": () => (/* binding */ resolveCollectibleLink), -/* harmony export */ "V3": () => (/* binding */ resolveAddressLinkOnExplorer), -/* harmony export */ "YU": () => (/* binding */ resolveProviderInjectedKey), -/* harmony export */ "Yx": () => (/* binding */ resolveIPFSLinkFromURL), -/* harmony export */ "_E": () => (/* binding */ resolveChainColor), -/* harmony export */ "dC": () => (/* binding */ resolveProviderShortenLink), -/* harmony export */ "hX": () => (/* binding */ resolveProviderDownloadLink), -/* harmony export */ "nW": () => (/* binding */ resolveNetworkName), -/* harmony export */ "r5": () => (/* binding */ resolveIPFSLink), -/* harmony export */ "r_": () => (/* binding */ resolveChainFullName), -/* harmony export */ "sJ": () => (/* binding */ resolveDomainLink), -/* harmony export */ "vy": () => (/* binding */ resolveBlockLinkOnExplorer), -/* harmony export */ "yW": () => (/* binding */ resolveTokenLinkOnExplorer), -/* harmony export */ "z4": () => (/* binding */ resolveTransactionLinkOnExplorer) -/* harmony export */ }); -/* unused harmony exports resolveCollectibleProviderLink, resolveCollectibleAssetLink */ -/* harmony import */ var urlcat__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(19802); -/* harmony import */ var urlcat__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(urlcat__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var _dimensiondev_kit__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(28807); -/* harmony import */ var _types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(65506); -/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(36803); -/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(80526); - - - - -const resolveProviderName = (0,_utils__WEBPACK_IMPORTED_MODULE_2__/* .createLookupTableResolver */ .F)({ - [_types__WEBPACK_IMPORTED_MODULE_3__/* .ProviderType.MaskWallet */ .lP.MaskWallet]: 'Mask Network', - [_types__WEBPACK_IMPORTED_MODULE_3__/* .ProviderType.MetaMask */ .lP.MetaMask]: 'MetaMask', - [_types__WEBPACK_IMPORTED_MODULE_3__/* .ProviderType.WalletConnect */ .lP.WalletConnect]: 'WalletConnect', - [_types__WEBPACK_IMPORTED_MODULE_3__/* .ProviderType.CustomNetwork */ .lP.CustomNetwork]: 'CustomNetwork', - [_types__WEBPACK_IMPORTED_MODULE_3__/* .ProviderType.Coin98 */ .lP.Coin98]: 'Coin98', - [_types__WEBPACK_IMPORTED_MODULE_3__/* .ProviderType.WalletLink */ .lP.WalletLink]: 'Coinbase', - [_types__WEBPACK_IMPORTED_MODULE_3__/* .ProviderType.MathWallet */ .lP.MathWallet]: 'MathWallet', - [_types__WEBPACK_IMPORTED_MODULE_3__/* .ProviderType.Fortmatic */ .lP.Fortmatic]: 'Fortmatic' -}, 'Unknown Network'); -const resolveProviderShortenLink = (0,_utils__WEBPACK_IMPORTED_MODULE_2__/* .createLookupTableResolver */ .F)({ - [_types__WEBPACK_IMPORTED_MODULE_3__/* .ProviderType.MaskWallet */ .lP.MaskWallet]: 'Mask.io', - [_types__WEBPACK_IMPORTED_MODULE_3__/* .ProviderType.MetaMask */ .lP.MetaMask]: 'Metamask.io', - [_types__WEBPACK_IMPORTED_MODULE_3__/* .ProviderType.WalletConnect */ .lP.WalletConnect]: 'Walletconnect.com', - [_types__WEBPACK_IMPORTED_MODULE_3__/* .ProviderType.CustomNetwork */ .lP.CustomNetwork]: 'Website', - [_types__WEBPACK_IMPORTED_MODULE_3__/* .ProviderType.Coin98 */ .lP.Coin98]: 'Coin98.com', - [_types__WEBPACK_IMPORTED_MODULE_3__/* .ProviderType.WalletLink */ .lP.WalletLink]: 'Walletlink.org', - [_types__WEBPACK_IMPORTED_MODULE_3__/* .ProviderType.MathWallet */ .lP.MathWallet]: 'Mathwallet.org', - [_types__WEBPACK_IMPORTED_MODULE_3__/* .ProviderType.Fortmatic */ .lP.Fortmatic]: 'Fortmatic.com' -}, 'website'); -const resolveProviderHomeLink = (0,_utils__WEBPACK_IMPORTED_MODULE_2__/* .createLookupTableResolver */ .F)({ - [_types__WEBPACK_IMPORTED_MODULE_3__/* .ProviderType.MaskWallet */ .lP.MaskWallet]: 'https://mask.io', - [_types__WEBPACK_IMPORTED_MODULE_3__/* .ProviderType.MetaMask */ .lP.MetaMask]: 'https://metamask.io', - [_types__WEBPACK_IMPORTED_MODULE_3__/* .ProviderType.WalletConnect */ .lP.WalletConnect]: 'https://walletconnect.com', - [_types__WEBPACK_IMPORTED_MODULE_3__/* .ProviderType.CustomNetwork */ .lP.CustomNetwork]: '', - [_types__WEBPACK_IMPORTED_MODULE_3__/* .ProviderType.Coin98 */ .lP.Coin98]: 'https://coin98.com', - [_types__WEBPACK_IMPORTED_MODULE_3__/* .ProviderType.WalletLink */ .lP.WalletLink]: 'https://walletlink.org', - [_types__WEBPACK_IMPORTED_MODULE_3__/* .ProviderType.MathWallet */ .lP.MathWallet]: 'https://mathwallet.org', - [_types__WEBPACK_IMPORTED_MODULE_3__/* .ProviderType.Fortmatic */ .lP.Fortmatic]: 'https://fortmatic.com' -}, ''); -const resolveProviderDownloadLink = (0,_utils__WEBPACK_IMPORTED_MODULE_2__/* .createLookupTableResolver */ .F)({ - [_types__WEBPACK_IMPORTED_MODULE_3__/* .ProviderType.MaskWallet */ .lP.MaskWallet]: 'https://mask.io/download-links', - [_types__WEBPACK_IMPORTED_MODULE_3__/* .ProviderType.MetaMask */ .lP.MetaMask]: 'https://metamask.io/download.html', - [_types__WEBPACK_IMPORTED_MODULE_3__/* .ProviderType.WalletConnect */ .lP.WalletConnect]: '', - [_types__WEBPACK_IMPORTED_MODULE_3__/* .ProviderType.Coin98 */ .lP.Coin98]: 'https://coin98insights.com/introduction-to-coin98-wallet-extension', - [_types__WEBPACK_IMPORTED_MODULE_3__/* .ProviderType.WalletLink */ .lP.WalletLink]: 'https://wallet.coinbase.com/', - [_types__WEBPACK_IMPORTED_MODULE_3__/* .ProviderType.MathWallet */ .lP.MathWallet]: 'https://mathwallet.org/en-us/#extension', - [_types__WEBPACK_IMPORTED_MODULE_3__/* .ProviderType.Fortmatic */ .lP.Fortmatic]: '', - [_types__WEBPACK_IMPORTED_MODULE_3__/* .ProviderType.CustomNetwork */ .lP.CustomNetwork]: '' -}, ''); -const resolveProviderInjectedKey = (0,_utils__WEBPACK_IMPORTED_MODULE_2__/* .createLookupTableResolver */ .F)({ - [_types__WEBPACK_IMPORTED_MODULE_3__/* .ProviderType.MaskWallet */ .lP.MaskWallet]: 'isMaskWallet', - [_types__WEBPACK_IMPORTED_MODULE_3__/* .ProviderType.MetaMask */ .lP.MetaMask]: 'isMetaMask', - [_types__WEBPACK_IMPORTED_MODULE_3__/* .ProviderType.WalletConnect */ .lP.WalletConnect]: '', - [_types__WEBPACK_IMPORTED_MODULE_3__/* .ProviderType.MathWallet */ .lP.MathWallet]: 'isMathWallet', - [_types__WEBPACK_IMPORTED_MODULE_3__/* .ProviderType.Coin98 */ .lP.Coin98]: 'isCoin98', - [_types__WEBPACK_IMPORTED_MODULE_3__/* .ProviderType.WalletLink */ .lP.WalletLink]: 'isWalletLink', - [_types__WEBPACK_IMPORTED_MODULE_3__/* .ProviderType.Fortmatic */ .lP.Fortmatic]: '', - [_types__WEBPACK_IMPORTED_MODULE_3__/* .ProviderType.CustomNetwork */ .lP.CustomNetwork]: '' -}, ''); -const resolveNetworkAddressPrefix = (0,_utils__WEBPACK_IMPORTED_MODULE_2__/* .createLookupTableResolver */ .F)({ - [_types__WEBPACK_IMPORTED_MODULE_3__/* .NetworkType.Ethereum */ .td.Ethereum]: 'ethereum', - [_types__WEBPACK_IMPORTED_MODULE_3__/* .NetworkType.Binance */ .td.Binance]: 'binance', - [_types__WEBPACK_IMPORTED_MODULE_3__/* .NetworkType.Polygon */ .td.Polygon]: 'polygon', - [_types__WEBPACK_IMPORTED_MODULE_3__/* .NetworkType.Arbitrum */ .td.Arbitrum]: 'arbitrum', - [_types__WEBPACK_IMPORTED_MODULE_3__/* .NetworkType.xDai */ .td.xDai]: 'xdai', - [_types__WEBPACK_IMPORTED_MODULE_3__/* .NetworkType.Avalanche */ .td.Avalanche]: 'avalanche', - [_types__WEBPACK_IMPORTED_MODULE_3__/* .NetworkType.Celo */ .td.Celo]: 'celo', - [_types__WEBPACK_IMPORTED_MODULE_3__/* .NetworkType.Fantom */ .td.Fantom]: 'fantom', - [_types__WEBPACK_IMPORTED_MODULE_3__/* .NetworkType.Aurora */ .td.Aurora]: 'Aurora', - [_types__WEBPACK_IMPORTED_MODULE_3__/* .NetworkType.Conflux */ .td.Conflux]: 'conflux' -}, 'ethereum'); -const resolveNetworkName = (0,_utils__WEBPACK_IMPORTED_MODULE_2__/* .createLookupTableResolver */ .F)({ - [_types__WEBPACK_IMPORTED_MODULE_3__/* .NetworkType.Ethereum */ .td.Ethereum]: 'Ethereum', - [_types__WEBPACK_IMPORTED_MODULE_3__/* .NetworkType.Binance */ .td.Binance]: 'Binance Smart Chain', - [_types__WEBPACK_IMPORTED_MODULE_3__/* .NetworkType.Polygon */ .td.Polygon]: 'Polygon', - [_types__WEBPACK_IMPORTED_MODULE_3__/* .NetworkType.Arbitrum */ .td.Arbitrum]: 'Arbitrum', - [_types__WEBPACK_IMPORTED_MODULE_3__/* .NetworkType.xDai */ .td.xDai]: 'xDai', - [_types__WEBPACK_IMPORTED_MODULE_3__/* .NetworkType.Avalanche */ .td.Avalanche]: 'Avalanche', - [_types__WEBPACK_IMPORTED_MODULE_3__/* .NetworkType.Celo */ .td.Celo]: 'Celo', - [_types__WEBPACK_IMPORTED_MODULE_3__/* .NetworkType.Fantom */ .td.Fantom]: 'Fantom', - [_types__WEBPACK_IMPORTED_MODULE_3__/* .NetworkType.Aurora */ .td.Aurora]: 'Aurora', - [_types__WEBPACK_IMPORTED_MODULE_3__/* .NetworkType.Conflux */ .td.Conflux]: 'Conflux' -}, 'Unknown'); -function resolveChainName(chainId) { - const chainDetailed = (0,_utils__WEBPACK_IMPORTED_MODULE_4__/* .getChainDetailed */ .$G)(chainId); - return chainDetailed?.name ?? 'Unknown'; -} -function resolveChainFullName(chainId) { - const chainDetailed = (0,_utils__WEBPACK_IMPORTED_MODULE_4__/* .getChainDetailed */ .$G)(chainId); - return chainDetailed?.fullName ?? 'Unknown'; -} -const resolveChainColor = (0,_utils__WEBPACK_IMPORTED_MODULE_2__/* .createLookupTableResolver */ .F)({ - [_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Mainnet */ .a_.Mainnet]: 'rgb(28, 104, 243)', - [_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Ropsten */ .a_.Ropsten]: 'rgb(255, 65, 130)', - [_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Kovan */ .a_.Kovan]: 'rgb(133, 89,255)', - [_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Rinkeby */ .a_.Rinkeby]: 'rgb(133, 89, 255)', - [_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Gorli */ .a_.Gorli]: 'rgb(48, 153, 242)', - [_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.BSC */ .a_.BSC]: 'rgb(240, 185, 10)', - [_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.BSCT */ .a_.BSCT]: 'rgb(240, 185, 10)', - [_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Matic */ .a_.Matic]: 'rgb(119, 62, 225)', - [_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Mumbai */ .a_.Mumbai]: 'rgb(130, 71, 229)', - [_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Arbitrum */ .a_.Arbitrum]: 'rgb(36, 150, 238)', - [_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Arbitrum_Rinkeby */ .a_.Arbitrum_Rinkeby]: 'rgb(36, 150, 238)', - [_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.xDai */ .a_.xDai]: 'rgb(73, 169, 166)', - [_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Avalanche */ .a_.Avalanche]: 'rgb(232, 65, 66)', - [_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Avalanche_Fuji */ .a_.Avalanche_Fuji]: 'rgb(232, 65, 66)', - [_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Celo */ .a_.Celo]: 'rgb(53, 208, 127)', - [_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Fantom */ .a_.Fantom]: 'rgb(19, 181, 236)', - [_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Aurora */ .a_.Aurora]: 'rgb(112, 212, 74)', - [_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Conflux */ .a_.Conflux]: 'rgb(24, 163, 138)', - [_types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Aurora_Testnet */ .a_.Aurora_Testnet]: 'rgb(112, 212, 74)' -}, 'rgb(214, 217, 220)'); -function resolveLinkOnExplorer(chainId) { - const chainDetailed = (0,_utils__WEBPACK_IMPORTED_MODULE_4__/* .getChainDetailed */ .$G)(chainId); - if (!chainDetailed) return ''; - return chainDetailed.explorers?.[0]?.url ?? chainDetailed.infoURL; -} -function resolveTransactionLinkOnExplorer(chainId, tx) { - return urlcat__WEBPACK_IMPORTED_MODULE_0___default()(resolveLinkOnExplorer(chainId), '/tx/:tx', { - tx - }); -} -function resolveTokenLinkOnExplorer({ chainId , address }) { - return urlcat__WEBPACK_IMPORTED_MODULE_0___default()(resolveLinkOnExplorer(chainId), '/token/:address', { - address - }); -} -function resolveAddressLinkOnExplorer(chainId, address) { - return urlcat__WEBPACK_IMPORTED_MODULE_0___default()(resolveLinkOnExplorer(chainId), '/address/:address', { - address - }); -} -function resolveBlockLinkOnExplorer(chainId, block) { - return urlcat__WEBPACK_IMPORTED_MODULE_0___default()(resolveLinkOnExplorer(chainId), '/block/:block', { - block - }); -} -// TODO check ipfs inside before resolving -function resolveIPFSLink(ipfs) { - return urlcat__WEBPACK_IMPORTED_MODULE_0___default()('https://coldcdn.com/api/cdn/mipfsygtms/ipfs/:ipfs', { - ipfs - }); -} -function resolveIPFSLinkFromURL(url) { - if (!url.startsWith('ipfs://')) return url; - return resolveIPFSLink(url.replace(/^ipfs:\/\/(ipfs\/)?/, '')); -} -function resolveDomainLink(domain) { - if (!domain) return ''; - return urlcat__WEBPACK_IMPORTED_MODULE_0___default()('https://app.ens.domains/name/:domain/details', { - domain - }); -} -function resolveCollectibleProviderLink(chainId, provider) { - switch(provider){ - case NonFungibleAssetProvider.OPENSEA: - if (chainId === ChainId.Rinkeby) return 'https://testnets.opensea.io'; - return 'https://opensea.io'; - case NonFungibleAssetProvider.RARIBLE: - return 'https://rarible.com'; - case NonFungibleAssetProvider.NFTSCAN: - return 'https://nftscan.com'; - case NonFungibleAssetProvider.ZORA: - return 'https://zora.co'; - default: - unreachable(provider); - } -} -function resolveCollectibleAssetLink(chainId, provider) { - switch(provider){ - case _types__WEBPACK_IMPORTED_MODULE_3__/* .NonFungibleAssetProvider.OPENSEA */ .pI.OPENSEA: - if (chainId === _types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Rinkeby */ .a_.Rinkeby) return 'https://testnets.opensea.io/assets'; - if (chainId === _types__WEBPACK_IMPORTED_MODULE_3__/* .ChainId.Matic */ .a_.Matic) return 'https://opensea.io/assets/matic'; - return 'https://opensea.io/assets'; - case _types__WEBPACK_IMPORTED_MODULE_3__/* .NonFungibleAssetProvider.RARIBLE */ .pI.RARIBLE: - return ''; - case _types__WEBPACK_IMPORTED_MODULE_3__/* .NonFungibleAssetProvider.NFTSCAN */ .pI.NFTSCAN: - return ''; - case _types__WEBPACK_IMPORTED_MODULE_3__/* .NonFungibleAssetProvider.ZORA */ .pI.ZORA: - return ''; - default: - (0,_dimensiondev_kit__WEBPACK_IMPORTED_MODULE_1__/* .unreachable */ .t1)(provider); - } -} -function resolveCollectibleLink(chainId, provider, { contractDetailed: { address } , tokenId }) { - switch(provider){ - case _types__WEBPACK_IMPORTED_MODULE_3__/* .NonFungibleAssetProvider.OPENSEA */ .pI.OPENSEA: - return urlcat__WEBPACK_IMPORTED_MODULE_0___default()(resolveCollectibleAssetLink(chainId, provider), '/:address/:tokenId', { - address, - tokenId - }); - case _types__WEBPACK_IMPORTED_MODULE_3__/* .NonFungibleAssetProvider.RARIBLE */ .pI.RARIBLE: - return ''; - case _types__WEBPACK_IMPORTED_MODULE_3__/* .NonFungibleAssetProvider.NFTSCAN */ .pI.NFTSCAN: - return ''; - case _types__WEBPACK_IMPORTED_MODULE_3__/* .NonFungibleAssetProvider.ZORA */ .pI.ZORA: - return ''; - default: - (0,_dimensiondev_kit__WEBPACK_IMPORTED_MODULE_1__/* .unreachable */ .t1)(provider); - } -} -function resolveOpenSeaLink(address, tokenId) { - return urlcat__WEBPACK_IMPORTED_MODULE_0___default()('https://opensea.io/assets/:address/:tokenId', { - address, - tokenId - }); -} - - -/***/ }), - -/***/ 65506: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "Am": () => (/* binding */ FungibleAssetProvider), -/* harmony export */ "Dr": () => (/* binding */ EthereumTokenType), -/* harmony export */ "Ej": () => (/* binding */ DebankTransactionDirection), -/* harmony export */ "Lv": () => (/* binding */ AddressNameType), -/* harmony export */ "OO": () => (/* binding */ EthereumErrorType), -/* harmony export */ "Ow": () => (/* binding */ LockStatus), -/* harmony export */ "TP": () => (/* binding */ GasOption), -/* harmony export */ "V2": () => (/* binding */ CurrencyType), -/* harmony export */ "W8": () => (/* binding */ EthereumMethodType), -/* harmony export */ "Wv": () => (/* binding */ EthereumRpcType), -/* harmony export */ "a_": () => (/* binding */ ChainId), -/* harmony export */ "g8": () => (/* binding */ TransactionStatusType), -/* harmony export */ "iE": () => (/* binding */ TransactionEventType), -/* harmony export */ "iU": () => (/* binding */ TransactionType), -/* harmony export */ "lP": () => (/* binding */ ProviderType), -/* harmony export */ "n$": () => (/* binding */ TransactionStateType), -/* harmony export */ "pI": () => (/* binding */ NonFungibleAssetProvider), -/* harmony export */ "sl": () => (/* binding */ FilterTransactionType), -/* harmony export */ "so": () => (/* binding */ ZerionTransactionDirection), -/* harmony export */ "td": () => (/* binding */ NetworkType) -/* harmony export */ }); -/* unused harmony export DomainProvider */ -var CurrencyType; -(function(CurrencyType) { - CurrencyType["USD"] = 'usd'; -})(CurrencyType || (CurrencyType = {})); -var ChainId; -(function(ChainId) { - ChainId[ChainId["Mainnet"] = 1] = "Mainnet"; - ChainId[ChainId["Ropsten"] = 3] = "Ropsten"; - ChainId[ChainId["Rinkeby"] = 4] = "Rinkeby"; - ChainId[ChainId["Gorli"] = 5] = "Gorli"; - ChainId[ChainId["Kovan"] = 42] = "Kovan"; - ChainId[ChainId[// BSC - "BSC"] = 56] = "BSC"; - ChainId[ChainId["BSCT"] = 97] = "BSCT"; - ChainId[ChainId[// Matic - "Matic"] = 137] = "Matic"; - ChainId[ChainId["Mumbai"] = 80001] = "Mumbai"; - ChainId[ChainId[// Arbitrum - "Arbitrum"] = 42161] = "Arbitrum"; - ChainId[ChainId["Arbitrum_Rinkeby"] = 421611] = "Arbitrum_Rinkeby"; - ChainId[ChainId[// xDai - "xDai"] = 100] = "xDai"; - ChainId[ChainId[// Avalanche - "Avalanche"] = 43114] = "Avalanche"; - ChainId[ChainId["Avalanche_Fuji"] = 43113] = "Avalanche_Fuji"; - ChainId[ChainId[// Celo - "Celo"] = 42220] = "Celo"; - ChainId[ChainId[// Fantom - "Fantom"] = 250] = "Fantom"; - ChainId[ChainId[// Aurora - "Aurora"] = 1313161554] = "Aurora"; - ChainId[ChainId["Aurora_Testnet"] = 1313161555] = "Aurora_Testnet"; - ChainId[ChainId[// Fuse - "Fuse"] = 122] = "Fuse"; - ChainId[ChainId[// Boba - "Boba"] = 288] = "Boba"; - ChainId[ChainId[// Metis - "Metis"] = 1088] = "Metis"; - ChainId[ChainId[// Optimistic - "Optimistic"] = 10] = "Optimistic"; - ChainId[ChainId[// Conflux - "Conflux"] = 1030] = "Conflux"; -})(ChainId || (ChainId = {})); -var LockStatus; -(function(LockStatus) { - LockStatus[LockStatus["INIT"] = 0] = "INIT"; - LockStatus[LockStatus["UNLOCK"] = 1] = "UNLOCK"; - LockStatus[LockStatus["LOCKED"] = 2] = "LOCKED"; -})(LockStatus || (LockStatus = {})); -var EthereumTokenType; -(function(EthereumTokenType) { - EthereumTokenType[EthereumTokenType["Native"] = 0] = "Native"; - EthereumTokenType[EthereumTokenType["ERC20"] = 1] = "ERC20"; - EthereumTokenType[EthereumTokenType["ERC721"] = 2] = "ERC721"; - EthereumTokenType[EthereumTokenType["ERC1155"] = 3] = "ERC1155"; -})(EthereumTokenType || (EthereumTokenType = {})); -var EthereumMethodType; -(function(EthereumMethodType) { - EthereumMethodType["WATCH_ASSET"] = 'wallet_watchAsset'; - EthereumMethodType["WATCH_ASSET_LEGACY"] = 'metamask_watchAsset'; - EthereumMethodType["PERSONAL_SIGN"] = 'personal_sign'; - EthereumMethodType["WALLET_ADD_ETHEREUM_CHAIN"] = 'wallet_addEthereumChain'; - EthereumMethodType["WALLET_SWITCH_ETHEREUM_CHAIN"] = 'wallet_switchEthereumChain'; - EthereumMethodType["ETH_CHAIN_ID"] = 'eth_chainId'; - EthereumMethodType["ETH_ACCOUNTS"] = 'eth_accounts'; - EthereumMethodType["ETH_REQUEST_ACCOUNTS"] = 'eth_requestAccounts'; - EthereumMethodType["ETH_SEND_TRANSACTION"] = 'eth_sendTransaction'; - EthereumMethodType["ETH_SEND_RAW_TRANSACTION"] = 'eth_sendRawTransaction'; - EthereumMethodType["ETH_GET_CODE"] = 'eth_getCode'; - EthereumMethodType["ETH_GAS_PRICE"] = 'eth_gasPrice'; - EthereumMethodType["ETH_BLOCK_NUMBER"] = 'eth_blockNumber'; - EthereumMethodType["ETH_GET_BALANCE"] = 'eth_getBalance'; - EthereumMethodType["ETH_GET_TRANSACTION_BY_HASH"] = 'eth_getTransactionByHash'; - EthereumMethodType["ETH_GET_TRANSACTION_RECEIPT"] = 'eth_getTransactionReceipt'; - EthereumMethodType["ETH_GET_TRANSACTION_COUNT"] = 'eth_getTransactionCount'; - EthereumMethodType["ETH_GET_FILTER_CHANGES"] = 'eth_getFilterChanges'; - EthereumMethodType["ETH_NEW_PENDING_TRANSACTION_FILTER"] = 'eth_newPendingTransactionFilter'; - EthereumMethodType["ETH_ESTIMATE_GAS"] = 'eth_estimateGas'; - EthereumMethodType["ETH_CALL"] = 'eth_call'; - EthereumMethodType["ETH_SIGN"] = 'eth_sign'; - EthereumMethodType["ETH_DECRYPT"] = 'eth_decrypt'; - EthereumMethodType["ETH_SIGN_TYPED_DATA"] = 'eth_signTypedData_v4'; - EthereumMethodType["ETH_SIGN_TRANSACTION"] = 'eth_signTransaction'; - EthereumMethodType["ETH_GET_LOGS"] = 'eth_getLogs'; - EthereumMethodType["ETH_GET_ENCRYPTION_PUBLIC_KEY"] = 'eth_getEncryptionPublicKey'; - EthereumMethodType[// only for mask - "MASK_GET_TRANSACTION_RECEIPT"] = 'mask_getTransactionReceipt'; - EthereumMethodType["MASK_REPLACE_TRANSACTION"] = 'mask_replaceTransaction'; - EthereumMethodType["MASK_LOGIN_FORTMATIC"] = 'mask_loginFortmatic'; - EthereumMethodType["MASK_LOGOUT_FORTMATIC"] = 'mask_logoutFortmatic'; -})(EthereumMethodType || (EthereumMethodType = {})); -var EthereumErrorType; -(function(EthereumErrorType) { - EthereumErrorType["ERR_SIGN_TRANSACTION"] = 'Failed to sign transaction.'; - EthereumErrorType["ERR_SEND_TRANSACTION"] = 'Failed to send transaction.'; - EthereumErrorType["ERR_SIGN_MESSAGE"] = 'Failed to sign message.'; -})(EthereumErrorType || (EthereumErrorType = {})); -var EthereumRpcType; -(function(EthereumRpcType) { - EthereumRpcType[// transaction - "CANCEL"] = 'cancel'; - EthereumRpcType["RETRY"] = 'retry'; - EthereumRpcType[// contract interaction - "SEND_ETHER"] = 'sendEther'; - EthereumRpcType["CONTRACT_INTERACTION"] = 'contractInteraction'; - EthereumRpcType["CONTRACT_DEPLOYMENT"] = 'contractDeployment'; - EthereumRpcType[// asset - "WATCH_ASSET"] = 'wallet_watchAsset'; - EthereumRpcType[// wallet - "WALLET_SWITCH_ETHEREUM_CHAIN"] = 'wallet_switchEthereumChain'; - EthereumRpcType[// sign - "SIGN"] = 'eth_sign'; - EthereumRpcType["SIGN_TYPED_DATA"] = 'eth_signTypedData_v4'; - EthereumRpcType[// decrypt - "ETH_DECRYPT"] = 'eth_decrypt'; - EthereumRpcType["ETH_GET_ENCRYPTION_PUBLIC_KEY"] = 'eth_getEncryptionPublicKey'; -})(EthereumRpcType || (EthereumRpcType = {})); -var TransactionEventType; -(function(TransactionEventType) { - TransactionEventType["TRANSACTION_HASH"] = 'transactionHash'; - TransactionEventType["RECEIPT"] = 'receipt'; - TransactionEventType["CONFIRMATION"] = 'confirmation'; - TransactionEventType["ERROR"] = 'error'; -})(TransactionEventType || (TransactionEventType = {})); -var TransactionStatusType; -(function(TransactionStatusType) { - TransactionStatusType[TransactionStatusType["NOT_DEPEND"] = 0] = "NOT_DEPEND"; - TransactionStatusType[TransactionStatusType["SUCCEED"] = 1] = "SUCCEED"; - TransactionStatusType[TransactionStatusType["FAILED"] = 2] = "FAILED"; - TransactionStatusType[TransactionStatusType["CANCELLED"] = 3] = "CANCELLED"; -})(TransactionStatusType || (TransactionStatusType = {})); -var DomainProvider; -(function(DomainProvider) { - DomainProvider["ENS"] = "ENS"; - DomainProvider["UNS"] = "UNS"; -})(DomainProvider || (DomainProvider = {})); -var FilterTransactionType; -(function(FilterTransactionType) { - FilterTransactionType["ALL"] = 'all'; - FilterTransactionType["SEND"] = 'send'; - FilterTransactionType["RECEIVE"] = 'receive'; - FilterTransactionType["CREATE_RED_PACKET"] = 'create_red_packet'; - FilterTransactionType["FILL_POOL"] = 'fill_pool'; -})(FilterTransactionType || (FilterTransactionType = {})); -var TransactionType; -(function(TransactionType) { - TransactionType["SEND"] = 'Send'; - TransactionType["SWAP"] = 'swap'; - TransactionType["RECEIVE"] = 'Receive'; - TransactionType["TRANSFER"] = 'transfer'; - TransactionType["CREATE_RED_PACKET"] = 'create_red_packet'; - TransactionType["FILL_POOL"] = 'fill_pool'; - TransactionType["CLAIM"] = 'claim'; - TransactionType["REFUND"] = 'refund'; -})(TransactionType || (TransactionType = {})); -var DebankTransactionDirection; -(function(DebankTransactionDirection) { - DebankTransactionDirection["SEND"] = 'send'; - DebankTransactionDirection["RECEIVE"] = 'receive'; -})(DebankTransactionDirection || (DebankTransactionDirection = {})); -var ZerionTransactionDirection; -(function(ZerionTransactionDirection) { - ZerionTransactionDirection["IN"] = 'in'; - ZerionTransactionDirection["OUT"] = 'out'; - ZerionTransactionDirection["SELF"] = 'self'; -})(ZerionTransactionDirection || (ZerionTransactionDirection = {})); -var AddressNameType; -(function(AddressNameType) { - AddressNameType["ADDRESS"] = "ADDRESS"; - AddressNameType["ENS"] = "ENS"; - AddressNameType["UNS"] = "UNS"; - AddressNameType["DNS"] = "DNS"; - AddressNameType["RSS3"] = "RSS3"; - AddressNameType["GUN"] = "GUN"; - AddressNameType["THE_GRAPH"] = "THE_GRAPH"; - AddressNameType["TWITTER_BLUE"] = "TWITTER_BLUE"; -})(AddressNameType || (AddressNameType = {})); -var GasOption; -(function(GasOption) { - GasOption["Low"] = 'low'; - GasOption["Medium"] = 'medium'; - GasOption["High"] = 'high'; -})(GasOption || (GasOption = {})); -var TransactionStateType; -(function(TransactionStateType) { - TransactionStateType[TransactionStateType["UNKNOWN"] = 0] = "UNKNOWN"; - TransactionStateType[TransactionStateType[/** Wait for external provider */ "WAIT_FOR_CONFIRMING"] = 1] = "WAIT_FOR_CONFIRMING"; - TransactionStateType[TransactionStateType[/** Hash is available */ "HASH"] = 2] = "HASH"; - TransactionStateType[TransactionStateType[/** Receipt is available */ "RECEIPT"] = 3] = "RECEIPT"; - TransactionStateType[TransactionStateType[/** Confirmed or Reverted */ "CONFIRMED"] = 4] = "CONFIRMED"; - TransactionStateType[TransactionStateType[/** Fail to send */ "FAILED"] = 5] = "FAILED"; -})(TransactionStateType || (TransactionStateType = {})); -var NetworkType; -(function(NetworkType) { - NetworkType["Ethereum"] = "Ethereum"; - NetworkType["Binance"] = "Binance"; - NetworkType["Polygon"] = "Polygon"; - NetworkType["Arbitrum"] = "Arbitrum"; - NetworkType["xDai"] = "xDai"; - NetworkType["Celo"] = "Celo"; - NetworkType["Fantom"] = "Fantom"; - NetworkType["Aurora"] = "Aurora"; - NetworkType["Avalanche"] = "Avalanche"; - NetworkType["Boba"] = "Boba"; - NetworkType["Fuse"] = "Fuse"; - NetworkType["Metis"] = "Metis"; - NetworkType["Optimistic"] = "Optimistic"; - NetworkType["Conflux"] = "Conflux"; -})(NetworkType || (NetworkType = {})); -var ProviderType; -(function(ProviderType) { - ProviderType["MaskWallet"] = 'Maskbook'; - ProviderType["MetaMask"] = "MetaMask"; - ProviderType["WalletConnect"] = "WalletConnect"; - ProviderType["Fortmatic"] = "Fortmatic"; - ProviderType["Coin98"] = "Coin98"; - ProviderType["MathWallet"] = "MathWallet"; - ProviderType["WalletLink"] = "WalletLink"; - ProviderType["CustomNetwork"] = "CustomNetwork"; -})(ProviderType || (ProviderType = {})); -var FungibleAssetProvider; -(function(FungibleAssetProvider) { - FungibleAssetProvider["ZERION"] = 'Zerion'; - FungibleAssetProvider["DEBANK"] = 'Debank'; -})(FungibleAssetProvider || (FungibleAssetProvider = {})); -var NonFungibleAssetProvider; -(function(NonFungibleAssetProvider) { - NonFungibleAssetProvider["OPENSEA"] = 'OpenSea'; - NonFungibleAssetProvider["RARIBLE"] = 'Rarible'; - NonFungibleAssetProvider["NFTSCAN"] = 'NFTScan'; - NonFungibleAssetProvider["ZORA"] = 'Zora'; -})(NonFungibleAssetProvider || (NonFungibleAssetProvider = {})); - - -/***/ }), - -/***/ 28807: -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - - -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - "VJ": () => (/* reexport */ abortSignalTimeout/* abortSignalTimeout */.V), - "Cq": () => (/* reexport */ typescript/* assertNonNull */.Cq), - "n5": () => (/* reexport */ blob/* blobToDataURL */.n), - "Gx": () => (/* reexport */ blob/* blobToText */.G), - "dq": () => (/* reexport */ combineAbortSignal/* combineAbortSignal */.d), - "v_": () => (/* reexport */ ecmascript/* concatArrayBuffer */.v_), - "xe": () => (/* reexport */ encode_text_arraybuffer/* decodeArrayBuffer */.xe), - "rj": () => (/* reexport */ encode_text_arraybuffer/* decodeText */.rj), - "PQ": () => (/* reexport */ ecmascript/* defer */.PQ), - "gw": () => (/* reexport */ delay/* delay */.g), - "ll": () => (/* reexport */ encode_text_arraybuffer/* encodeArrayBuffer */.ll), - "YT": () => (/* reexport */ encode_text_arraybuffer/* encodeText */.YT), - "ky": () => (/* reexport */ media/* findAvailableImageURL */.ky), - "sS": () => (/* reexport */ media/* formatFileSize */.sS), - "Yl": () => (/* reexport */ typescript/* getEnumAsArray */.Yl), - "J3": () => (/* reexport */ ecmascript/* memoizePromise */.J3), - "P": () => (/* reexport */ typescript/* safeUnreachable */.P), - "Vs": () => (/* reexport */ timeout/* timeout */.V), - "t1": () => (/* reexport */ typescript/* unreachable */.t1), - "uL": () => (/* reexport */ document_readyState/* waitDocumentReadyState */.u) -}); - -// UNUSED EXPORTS: detectAudioSupport, detectImageSupport, detectVideoSupport, getDimensionAsJPEG, getDimensionAsPNG, isArrayBufferEqual, isNonNull - -// EXTERNAL MODULE: ../../node_modules/.pnpm/@dimensiondev+kit@0.0.0-20220228054820-f2378be/node_modules/@dimensiondev/kit/esm/ecmascript/index.js + 3 modules -var ecmascript = __webpack_require__(20785); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@dimensiondev+kit@0.0.0-20220228054820-f2378be/node_modules/@dimensiondev/kit/esm/media/index.js + 3 modules -var media = __webpack_require__(78183); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@dimensiondev+kit@0.0.0-20220228054820-f2378be/node_modules/@dimensiondev/kit/esm/typescript/index.js -var typescript = __webpack_require__(47855); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@dimensiondev+kit@0.0.0-20220228054820-f2378be/node_modules/@dimensiondev/kit/esm/web/abortSignalTimeout.js -var abortSignalTimeout = __webpack_require__(47162); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@dimensiondev+kit@0.0.0-20220228054820-f2378be/node_modules/@dimensiondev/kit/esm/web/blob.js -var blob = __webpack_require__(89810); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@dimensiondev+kit@0.0.0-20220228054820-f2378be/node_modules/@dimensiondev/kit/esm/web/combineAbortSignal.js -var combineAbortSignal = __webpack_require__(26998); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@dimensiondev+kit@0.0.0-20220228054820-f2378be/node_modules/@dimensiondev/kit/esm/web/delay.js -var delay = __webpack_require__(89086); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@dimensiondev+kit@0.0.0-20220228054820-f2378be/node_modules/@dimensiondev/kit/esm/web/document.readyState.js -var document_readyState = __webpack_require__(78827); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@dimensiondev+kit@0.0.0-20220228054820-f2378be/node_modules/@dimensiondev/kit/esm/web/encode-text-arraybuffer.js -var encode_text_arraybuffer = __webpack_require__(32291); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@dimensiondev+kit@0.0.0-20220228054820-f2378be/node_modules/@dimensiondev/kit/esm/web/timeout.js -var timeout = __webpack_require__(50579); -;// CONCATENATED MODULE: ../../node_modules/.pnpm/@dimensiondev+kit@0.0.0-20220228054820-f2378be/node_modules/@dimensiondev/kit/esm/web/index.js - - - - - - - -//# sourceMappingURL=index.js.map -;// CONCATENATED MODULE: ../../node_modules/.pnpm/@dimensiondev+kit@0.0.0-20220228054820-f2378be/node_modules/@dimensiondev/kit/esm/index.js - - - - -//# sourceMappingURL=index.js.map - -/***/ }), - -/***/ 89810: -/***/ ((__unused_webpack___webpack_module__, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "G": () => (/* binding */ blobToText), -/* harmony export */ "n": () => (/* binding */ blobToDataURL) -/* harmony export */ }); -const blobToDataURL = factory('readAsDataURL'); -const blobToText = factory('readAsText'); -function factory(method) { - return (blob) => { - return new Promise((resolve, reject) => { - const reader = new FileReader(); - reader.addEventListener('error', () => { - reject(reader.error); - }); - reader.addEventListener('load', () => { - resolve(reader.result); - }); - reader[method](blob); - }); - }; -} -//# sourceMappingURL=blob.js.map - -/***/ }), - -/***/ 62012: -/***/ ((module) => { - -module.exports = JSON.parse('{"about":"About","wallets":"Wallets","personas":"Personas","persona":"Persona","refresh":"Refresh","next":"Next","cancel":"Cancel","back":"Back","agree":"Agree","confirm":"Confirm","verify":"Verify","go_back":"Go back","connect":"Connect","searching":"Searching","restore":"Restore","save":"Save","manage":"Manage","recovery":"Recovery","successful":"Successful","close":"Close","send":"Send","resend":"Resend","print":"Print","download":"Download","print_preview":"Print Preview","download_preview":"Download Preview","confirm_password":"Confirm Password","about_dialog_license":"License: ","footer_bounty_list":"Bounty List","about_dialog_source_code":"Source Code: ","about_dialog_feedback":"Feedback: ","about_dialog_touch":"Get in touch","about_dialog_description":"Mask Network is the portal to the new, open internet. Mask allows you to send encrypted posts on social networks. We provide more functions such as sending encrypted lucky drops, purchasing cryptocurrencies, file service, etc.","setup_page_title":"Welcome to Mask Network","setup_page_description":"Encrypt your posts & chats on social networks, allow only your friends to decrypt.","setup_page_create_account_title":"Create an Identity","setup_page_create_account_subtitle":"Create your digital identity system, explore Web 3.0","setup_page_create_account_button":"Create","setup_page_create_restore_title":"Restoring from Identity or Backups","setup_page_create_restore_subtitle":"Restoring from identity & historical backups.","setup_page_create_restore_button":"Recovery or Sign In","create_account_mask_id":"MASK ID","create_account_private_key":"Private Key","create_account_identity_id":"Identity ID","create_account_identity_title":"Create an Identity for Mask Network","create_account_sign_in_button":"Recovery","create_account_persona_exists":"Persona already exists.","create_account_mnemonic_download_or_print":"I have kept my identity code safely.","create_account_preview_tip":"This QR code contains your identity code, please keep it safely. You can scan QR code to login your persona in Mask App.","create_account_mnemonic_confirm_failed":"Incorrect identity code","create_account_connect_social_media_button":"Create","create_account_connect_social_media":"Connect to {{type}}","create_account_persona_title":"Welcome to Mask Network","create_account_persona_subtitle":"You can create personas and connect social accounts","create_account_persona_successfully":"Create persona successfully","create_account_connect_social_media_title":"Connect Social Media","create_account_failed":"Create Account Failed","sign_in_account_identity_title":"Recover your persona","sign_in_account_tab_identity":"Identity","sign_in_account_sign_up_button":"Sign Up","sign_in_account_identity_warning":"The digital identity code can only recover your digital identity. It can encrypt and decrypt the social information signed and sent by this digital identity.","sign_in_account_private_key_placeholder":"Input your Private Key","sign_in_account_private_key_error":"Incorrect Private Key","sign_in_account_private_key_persona_not_found":"Can\'t find persona","sign_in_account_private_key_warning":"The private key of your identity code can only recover your persona. It can encrypt and decrypt the social information signed and sent by your persona.","sign_in_account_mnemonic_confirm_failed":"Incorrect identity","sign_in_account_cloud_backup_send_email_success":"Verification code was sent to your {{type}}. Please check your {{type}}.","sign_in_account_local_backup_warning":"Local backup can recover all the data that has been stored locally.","sign_in_account_local_backup_payment_password":"Payment Password","sign_in_account_local_backup_file_drag":"Please click or drag the file here","sign_in_account_cloud_backup_warning":"The cloud backup hosts and encrypts your data.","sign_in_account_cloud_backup_not_support":"Unsupported data backup","sign_in_account_cloud_send_verification_code_tip":"Send verification code to","sign_in_account_cloud_backup_failed":"Restore backup failed, Please try again.","sign_in_account_cloud_backup_email_or_phone_number":"E-mail or phone number","sign_in_account_cloud_backup_password":"Backup password","sign_in_account_cloud_restore_failed":"Restore failed","sign_in_account_cloud_backup_download_failed":"Download backup failed","sign_in_account_cloud_backup_decrypt_failed":"Decrypt failed, please check password","sign_in_account_cloud_backup_email_format_error":"The email is incorrect.","sign_in_account_cloud_backup_phone_format_error":"The phone number is incorrect.","sign_in_account_cloud_backup_synchronize_password_tip":"You have successfully verified your cloud password and recovered your backup. To unify backup passwords, do you want to synchronize your cloud password as local backup password?","cloud_backup":"Cloud Backups","wallets_transfer":"Transfer","wallets_assets":"Assets","wallets_transfer_memo":"Memo","wallets_transfer_amount":"Amount","wallets_transfer_to_address":"To Address","wallets_transfer_error_amount_absence":"Enter an amount","wallets_transfer_error_address_absence":"Enter recipient address","wallets_transfer_error_contract":"Select NFT contract","wallets_transfer_error_nft":"Select one NFT","wallets_transfer_error_invalid_address":"Invalid recipient address","wallet_transfer_error_no_address_has_been_set_name":"The address of the receiver is invalid.","wallet_transfer_error_no_ens_support":"Network does not support ENS.","wallets_transfer_error_insufficient_balance":"Insufficient {{symbol}} balance","wallets_transfer_error_same_address_with_current_account":"This receiving address is the same as the sending address. Please check again.","wallets_transfer_error_is_contract_address":"The receiving address is contract address. Please check again.","wallets_transfer_send":"Send","wallets_transfer_memo_placeholder":"Optional message","wallets_transfer_contract":"Contract","wallets_transfer_contract_placeholder":"Select an NFT Contract","wallets_swap":"Swap","wallets_red_packet":"Lucky drop","wallets_sell":"Sell","wallets_history":"History","settings":"Settings","gas_fee":"Transaction fee","transfer_cost":"Cost {{gasFee}} {{symbol}} ≈ ${{usd}}","done":"Done!","labs":"D.Market","wallet_transactions_pending":"Pending","wallet_gas_fee_settings_low":"Low","wallet_gas_fee_settings_medium":"Medium","wallet_gas_fee_settings_high":"High","wallets_startup_create":"Create A New Wallet","wallets_startup_create_desc":"Mask wallet supports ETH、 BSC and Polygon/Matic networks.","wallets_startup_create_action":"Create","wallets_startup_import":"Import Wallet","wallets_startup_import_desc":"Mask wallet supports Private Key, JSON.File and Mnemonic words.","wallets_startup_import_action":"Import","wallets_startup_connect":"Connect Wallet","wallets_startup_connect_desc":"Supports Mask Wallet, MetaMask and WalletConnect.","wallets_startup_connect_action":"Connect","wallets_connect_wallet_metamask":"MetaMask","wallets_connect_wallet_connect":"Connect Wallet","wallets_connect_wallet_polka":"PolkaDot Wallet","wallets_create_wallet_input_placeholder":"Wallet Name","wallets_create_successfully_title":"Success","wallets_create_successfully_tips":"You have created your wallet successfully","wallets_create_successfully_unlock":"Unlock Wallet","wallets_create_wallet_alert":"Mask Network is a free, open-source, client-side interface. Mask Network allows you to interact directly with the blockchain, while you remain in full control of your keys and funds.Please think about this carefully. YOU are the one who is in control. Mask Network is not a bank or exchange. We don\'t hold your keys, your funds, or your information. This means we can\'t access accounts, recover keys, reset passwords, or reverse transactions.","wallets_wallet_connect_title":"Scan QR code with a WalletConnect-compatible wallet","wallets_wallet_mnemonic":"Mnemonic","wallets_wallet_json_file":"Local Backup","wallets_wallet_private_key":"Private Key","wallets_import_wallet_tabs":"Import Wallet Tabs","wallets_import_wallet_password_placeholder":"Wallet Password","wallets_import_wallet_cancel":"Cancel","wallets_import_wallet_import":"Import","wallets_create_wallet_tabs":"Create Wallet Tabs","wallets_create_wallet_refresh":"Refresh","wallets_create_wallet_remember_later":"Remember that later","wallets_create_wallet_verification":"Verification","wallets_collectible_address":"Collectible Address","wallets_collectible_token_id":"Token ID","wallets_collectible_field_contract_require":"The collectible address is required","wallets_collectible_field_token_id_require":"The token id is required","wallets_collectible_load_end":"Load end","wallets_balance":"Balance on","wallets_balance_all_chain":"all chains","wallets_balance_Send":"Send","wallets_balance_Buy":"Buy","wallets_balance_Swap":"Swap","wallets_balance_Receive":"Receive","wallets_assets_token":"Token","wallets_assets_token_sent_not_connect_tip":"Not connected to {{chainName}}.","wallets_assets_token_sent_switch_network_tip":"Click to switch.","wallets_assets_investment":"Investment","wallets_assets_collectibles":"Collectibles","wallets_assets_custom_token":"Custom Token","wallets_assets_custom_collectible":"Custom Collectible","wallets_assets_asset":"Asset","wallets_assets_balance":"Balance","wallets_assets_price":"Price","wallets_assets_value":"Value","wallets_assets_operation":"Operation","wallets_address":"Wallet Address","wallets_receive_tips":"Scan the QR code and transfer {{chainName}} assets to it","wallets_add_collectible":"Add Collectible","wallets_incorrect_address":"Incorrect contract address.","wallets_collectible_been_added":"The Collectible has already been added.","wallets_collectible_error_not_exist":"The collectible does not exist or belong to you.","wallets_collectible_contract_is_empty":"Please select contract","wallets_collectible_token_id_is_empty":"Please select collectible","wallets_collectible_add":"Add","wallets_add_token":"Add Token","wallets_token_been_added":"Token has already been added.","wallets_token_symbol_tips":"Symbol must be 11 characters or fewer.","wallets_token_decimals_tips":"Decimals must be at least 0, and not over 18.","wallets_add_token_contract_address":"Token Contract Address","wallets_add_token_symbol":"Token Symbol","wallets_add_token_decimals":"Decimals of Precision","wallets_add_token_cancel":"Cancel","wallets_add_token_next":"Next","wallets_empty_tokens_tip":"No assets were found. Please add tokens.","wallets_empty_collectible_tip":"No collectibles were found. Please add Collectibles.","wallets_address_copied":"Address successfully copied","wallets_address_copy":"Copy","wallets_history_types":"Types","wallets_history_value":"Value","wallets_history_time":"Time","wallets_history_receiver":"Interacted with (to)","wallets_empty_history_tips":"No transaction history","wallets_loading_token":"Loading Token","personas_setup_connect_tips":"Please connect to your {{type}} account.","personas_setup_tip":"Please to create/restore persona.","personas_setup_connect":"Connect","personas_name_maximum_tips":"Maximum length is {{length}} characters long.","personas_name_existed":"The persona name already exists","personas_rename_placeholder":"Persona Name","personas_confirm":"Confirm","personas_cancel":"Cancel","personas_export_persona":"Export Persona","personas_export_persona_copy":"Copy","personas_export_persona_copy_success":"Copied","personas_export_persona_copy_failed":"Copy failed","personas_export_persona_confirm_password_tip":"You haven’t set up your password. To export your persona, you must set up backup password first.","personas_export_private":"Export Private Key","personas_export_private_key_tip":"This export is only for exporting private key. We do not export any other data. If you need more data, please go to Settings:","personas_delete_confirm_tips":"Please confirm that you have deleted persona {{nickname}} and entered your password.","personas_delete_dialog_title":"Delete Persona","personas_edit_dialog_title":"Edit Persona","personas_edit":"Edit","personas_delete":"Delete","personas_logout":"Log out","personas_logout_confirm_password_tip":"You haven’t set up your password. To logout persona, you must set up backup password first.","personas_add_persona":"Add Persona","personas_back_up":"Back Up","personas_connect_to":"Connect to {{internalName}}","personas_disconnect":"Delete Persona Verification","personas_disconnect_raw":"Disconnect","personas_disconnect_warning":"Are you sure you want to delete persona verification? Your mask friends can no longer send decrypted message to you by this persona or check your Web 3 products related with this persona.","personas_logout_warning":"After logging out, your associated social accounts can no longer decrypt past encrypted messages. If you need to reuse your account, you can use your private key for recovery.","personas_add":"Add","personas_upload_avatar":"Upload an avatar","personas_rename":"Rename","personas_invite_post":"@{{identifier}} Hi, would you please download Mask so that we can share our posts with encryption? #mask_io install http://mask.io","personas_empty_contact_tips":"You don’t have any contacts with Mask Network installed yet. Invite your friends to download {{name}}.","personas_contacts_name":"Name","personas_contacts_operation":"Operation","personas_contacts_invite":"Invite","personas_post_is_empty":"You haven\'t created any post yet.","personas_post_create":"Create Post","settings_general":"General","settings_backup_recovery":"Backup & Recovery","settings_local_backup":"Local Backup","settings_cloud_backup":"Cloud Backup","settings_appearance_default":"Follow system settings","settings_appearance_light":"Light","settings_appearance_dark":"Dark","settings_backup_preview_account":"Account","settings_backup_preview_personas":"Personas","settings_backup_preview_associated_account":"Associated Account","settings_backup_preview_posts":"Encrypted Post","settings_backup_preview_contacts":"Contacts","settings_backup_preview_fils":"File","settings_backup_preview_wallets":"Mask Wallet","settings_backup_preview_created_at":"Backup Time","settings_language_title":"Language","settings_language_desc":"Select the language you would like to use","settings_language_auto":"Follow system","settings_appearance_title":"Appearance","settings_appearance_desc":"Select the theme you would like to use","settings_data_source_title":"Data Source","settings_data_source_desc":"Fetch trending data from different platforms","settings_sync_with_mobile_title":"Sync With Mobile","settings_sync_with_mobile_desc":"You can sync your accounts and information with your mobile device. Open the Mask Network mobile app, go to Settings and tap on Sync With Plug-ins","settings_global_backup_title":"Global Backup","settings_global_backup_desc":"Provide both local backup and cloud backup","settings_global_backup_last":"The most recent backup was made on {{backupAt}}. Backup method: {{backupMethod}}.","settings_restore_database_title":"Restore Database","settings_restore_database_desc":"Restore from a previous database backup","settings_email_title":"Email","settings_email_desc":"Please bind your email","settings_change_password_title":"Backup Password","settings_change_password_desc":"Change your backup password","settings_change_password_not_set":"You haven\'t set up a backup password","settings_phone_number_title":"Phone Number","settings_phone_number_desc":"Please bind your phone number","settings_password_rule":"Backup password must be between 8 and 20 characters and contain at least a number, a uppercase letter, a lowercase letter and a special character.","settings_button_cancel":"Cancel","settings_button_confirm":"Confirm","settings_button_sync":"Sync","settings_button_backup":"Backup","settings_button_recovery":"Recovery","settings_button_setup":"Setup","settings_button_change":"Change","settings_dialogs_bind_email_or_phone":"Please bind your email or phone number.","settings_dialogs_verify_backup_password":"Verify Backup Password","settings_dialogs_setting_backup_password":"Setting Backup Password","settings_dialogs_change_backup_password":"Change Backup Password","settings_dialogs_setting_email":"Setting Email","settings_dialogs_change_email":"Change Email","settings_dialogs_setting_phone_number":"Setting Phone Number","settings_dialogs_change_phone_number":"Change Phone Number","settings_dialogs_incorrect_code":"The verification code is incorrect.","settings_dialogs_incorrect_email":"The email address is incorrect.","settings_dialogs_incorrect_phone":"The phone number is incorrect.","settings_dialogs_incorrect_password":"Incorrect password.","settings_dialogs_inconsistency_password":"Password inconsistency.","settings_dialogs_current_email_validation":"The current email for verification is","settings_dialogs_change_email_validation":"To change the Email, you need to verify your current Email address:","settings_dialogs_current_phone_validation":"The current phone number for verification is","settings_dialogs_change_phone_validation":"To change the phone number, you need to verify your current phone number:","settings_dialogs_backup_to_cloud":"Backup to cloud","settings_dialogs_merge_to_local_data":"Merge Cloud backup to local and back up to cloud","settings_dialogs_backup_action_desc":"There is already a cloud backup, please merge the cloud backup to local before you back up, or back up directly.","settings_dialogs_backup_to_cloud_action":"This option overwrites the existing cloud backup with the local data.","settings_dialogs_backup_merge_cloud":"This option requires you to enter the password of the existing cloud backup for decryption. The existing cloud backup and local data are combined and then encrypted and uploaded to cloud.","settings_dialogs_backup_merged_tip":"You already obtained the cloud backup to your local. If you want to complete your back up, please click on the backup button to update all your data to cloud.","settings_label_backup_password":"Backup Password","settings_label_new_backup_password":"New Backup Password","settings_label_backup_password_cloud":"Backup passwords for files in the cloud","settings_label_payment_password":"Payment Password","settings_label_re_enter":"Re-enter","settings_alert_password_set":"Backup password set up successfully.","settings_alert_password_updated":"Backup password updated","settings_alert_email_set":"Email set","settings_alert_email_updated":"Email updated","settings_alert_phone_number_set":"Phone number set","settings_alert_phone_number_updated":"Phone number updated","settings_alert_backup_fail":"Backup Failed","settings_alert_backup_success":"You have successfully backed up your data.","settings_alert_validation_code_sent":"Verification code sent","settings_alert_merge_success":"You have successfully merged your cloud backup to the local data.","labs_file_service":"File Service","labs_file_service_desc":"Decentralized file storage, permanently. Upload and share files to your Mask friends on top of Arweave Network.","labs_markets":"ITO","labs_markets_desc":"Launch decentralized asset freely and participate in token launch directly on Twitter.","labs_red_packet":"Lucky Drop","labs_red_packet_desc":"Gift crypto or NFTs to any users, first come, first served.","labs_swap":"Swap","labs_swap_desc":"Pop-up trading widget that allows you to instantly view prices of the hottest Crypto/Stock and trade. Can also invest in the best performing managers.","labs_transak":"Fiat On-Ramp","labs_transak_desc":"Fiat On-Ramp Aggregator on Twitter. Buy crypto in 60+ countries with Transak support.","labs_savings":"Savings","labs_savings_desc":"Deploy your crypto into various savings protocols and watch your savings grow.","labs_snapshot":"Snapshot","labs_snapshot_desc":"Display and vote for proposals directly on social media.","labs_market_trend":"Market Trend","labs_market_trend_desc":"Display token information, price charts and exchange information directly on social media.","labs_collectibles":"Collectibles","labs_collectibles_desc":"Display specific information of collectibles in OpenSea and Rarible, make an offer directly on social media.","labs_gitcoin":"Gitcoin","labs_gitcoin_desc":"Display specific information of Gitcoin projects, donate to a project directly on social media.","labs_valuables":"Valuables","labs_valuables_desc":"Buy & sell tweets autographed by their original creators.","labs_dhedge":"dHEDGE","labs_dhedge_desc":"Decentralized hedge funds on Ethereum and Polygon (Matic).","labs_mask_box":"MaskBox","labs_mask_box_desc":"Professional multi-chain decentralized platform for launching NFT mystery boxes.","labs_loot_man":"LootMan by MintTeam","labs_loot_man_desc":"Explore the endless possibilities of NFTs. Link and display your NFTs on social media in a revolutionized way.","labs_good_ghosting":"GoodGhosting","labs_good_ghosting_desc":"Cultivate a weekly saving habit on Twitter.","labs_pool_together":"PoolTogether","labs_pool_together_desc":"Participate in lossless lottery on Twitter.","labs_settings_market_trend":"Market Trend Settings","labs_settings_market_trend_source":"Default Trending Source","labs_settings_swap":"Swap Settings","labs_settings_swap_network":"{{network}} Network Default Trading Source","labs_pets":"Non-Fungible Friends by Mint Team","labs_pets_desc":"Explore the endless possibilities of NFTs.","labs_cyber_connect":"CyberConnect","labs_cyber_connect_desc":"Decentalized social graph protocol for user-centric Web3","labs_setup_tutorial":"Setup Tutorial","labs_do_not_show_again":"Don\'t show again.","labs_cryptoartai":"CRYPTOART.AI","labs_cryptoartai_desc":"Connect CryptoArt Digital Artworks. The Internationale is a classic anthem that has been a shared memory for generations.","labs_art_blocks":"Artblocks","labs_art_blocks_desc":"Artblocks allow you to pick a style that you like, pay for the work, and a randomly generated version of the content is created by an algorithm and sent to your Ethereum account.","dashboard_mobile_test":"Join Tests for Mobile","dashboard_source_code":"Source Code","privacy_policy":"Privacy Policy","version_of_stable":"Version {{version}}","version_of_unstable":"Version {{version}}-{{build}}-{{hash}}","register_restore_backups":"Restore Backups","register_restore_backups_cancel":"Cancel","register_restore_backups_confirm":"Restore","register_restore_backups_hint":"Please click or drag the file here","register_restore_backups_file":"File","register_restore_backups_text":"Text","register_restore_backups_tabs":"Restore Backup Tabs","create_wallet_mnemonic_tip":"Do not forget to save your mnemonic phrase. You will need this to access your wallet.","create_wallet_password_uppercase_tip":"Must contain an uppercase character","create_wallet_password_lowercase_tip":"Must contain a lowercase character","create_wallet_password_number_tip":"Must contain a number","create_wallet_password_special_tip":"Must contain a special character","create_wallet_password_satisfied_requirement":"The password is not satisfied the requirement.","create_wallet_password_match_tip":"The password does not match.","create_wallet_password_length_error":"The password length is incorrect.","create_wallet_name_placeholder":"Enter 1-12 characters","create_wallet_form_title":"Create a wallet","create_wallet_wallet_name":"Wallet Name","create_wallet_payment_password":"Payment Password","create_wallet_re_enter_payment_password":"Re-enter the payment password","create_wallet_payment_password_tip":"Payment Password must be a combination of 2 categories out of numbers, letters and special characters with a length of 8-20 characters.","create_wallet_your_wallet_address":"Your wallet address","create_wallet_done":"Done","create_wallet_verify_words":"Verify mnemonic words","create_wallet_mnemonic_word_not_match":"The mnemonic word is incorrect"}'); - -/***/ }), - -/***/ 97979: -/***/ ((module) => { - -module.exports = JSON.parse('{"about":"About","wallets":"ウォレット","personas":"ペルソナ","persona":"ペルソナ","refresh":"更新","next":"Next","cancel":"Cancel","back":"Back","agree":"同意","confirm":"確認","verify":"認証","go_back":"戻る","connect":"接続","searching":"検索中…","restore":"復元","save":"保存","manage":"管理","recovery":"復旧","successful":"成功","close":"終了","send":"送信","resend":"再送信","confirm_password":"パスワード確認","about_dialog_license":"ライセンス: ","footer_bounty_list":"報奨金リスト","about_dialog_source_code":"ソースコード: ","about_dialog_feedback":"フィードバック: ","about_dialog_touch":"お問い合わせ","about_dialog_description":"Mask Networkは、新しいオープンなインターネットへのポータルです。Maskは、ソーシャルネットワーク上で暗号化された投稿を送ることができます。暗号化されたRedPacketの送信、暗号通貨の購入、ファイルサービスなど、より多くの機能を提供しています。","setup_page_title":"Mask Networkへようこそ","setup_page_description":"SNS上の投稿とチャットを暗号化し、友達のみが復号化できます。","setup_page_create_account_title":"イベントを作成","setup_page_create_account_subtitle":"アカウントとデータのローカルストレージ","setup_page_create_account_button":"作成","setup_page_create_restore_title":"アイデンティティやバックアップから復元する","setup_page_create_restore_subtitle":"IDと履歴のバックアップからの復元","setup_page_create_restore_button":"復元またはサインイン","create_account_identity_title":"Mask Networkのアイデンティティを作成","create_account_sign_in_button":"復元またはサインイン","create_account_mnemonic_confirm_failed":"IDコードが間違っています","create_account_connect_social_media_button":"作成","create_account_connect_social_media":"{{type}} に接続","create_account_persona_title":"Mask Networkへようこそ","create_account_persona_subtitle":"ペルソナを作成し、ソーシャルアカウントを接続することができます","create_account_persona_successfully":"正常にペルソナを作成しました","create_account_connect_social_media_title":"ソーシャルメディアに接続","create_account_failed":"アカウント作成が失敗しました","sign_in_account_identity_title":"復元またはサインイン","sign_in_account_sign_up_button":"サインアップ","sign_in_account_identity_warning":"デジタルIDコードは、あなたのデジタルIDのみを復元できます。このデジタルIDによって署名され送信されたソーシャル情報を暗号化して復号することができます。","sign_in_account_private_key_placeholder":"秘密鍵を入力してください","sign_in_account_private_key_error":"IDコードが間違っています","sign_in_account_private_key_persona_not_found":"ペルソナが見つかりません","sign_in_account_private_key_warning":"デジタルIDコードは、あなたのデジタルIDのみを復元できます。このデジタルIDによって署名され送信されたソーシャル情報を暗号化して復号することができます。","sign_in_account_mnemonic_confirm_failed":"IDが間違っています","sign_in_account_cloud_backup_send_email_success":"{{type}}に認証コードが送信されました。 {{type}} を確認してください。","sign_in_account_local_backup_warning":"ローカルバックアップは、ローカルに保存されているすべてのデータを回復できます。","sign_in_account_local_backup_payment_password":"支払いパスワードの設定","sign_in_account_local_backup_file_drag":"ここでファイルをクリックまたはドラッグしてください","sign_in_account_cloud_backup_warning":"クラウドバックアップは、データをホストおよび暗号化します。","sign_in_account_cloud_backup_not_support":"サポートされていないバックアップ","sign_in_account_cloud_send_verification_code_tip":"検証コードを送信","sign_in_account_cloud_backup_failed":"バックアップの復元に失敗しました。もう一度やり直してください。","sign_in_account_cloud_backup_email_or_phone_number":"メールアドレスまたは電話番号","sign_in_account_cloud_backup_password":"バックアップパスワード","sign_in_account_cloud_restore_failed":"復元に失敗しました","sign_in_account_cloud_backup_download_failed":"バックアップのダウンロードに失敗しました","sign_in_account_cloud_backup_decrypt_failed":"復号に失敗しました。パスワードを確認してください。","sign_in_account_cloud_backup_email_format_error":"メールアドレスが間違っています","sign_in_account_cloud_backup_phone_format_error":"電話番号が正しくありません","sign_in_account_cloud_backup_synchronize_password_tip":"クラウドパスワードの認証が完了し、バックアップがアップロードされています。バックアップパスワードを統一するために、クラウドのパスワードをローカルのバックアップのパスワードとして同期するかどうかを確認してください。","cloud_backup":"クラウドバックアップ","wallets_transfer":"転送","wallets_assets":"資産","wallets_transfer_memo":"メモ","wallets_transfer_amount":"金額","wallets_transfer_to_address":"宛先アドレス","wallets_transfer_error_amount_absence":"金額を入力","wallets_transfer_error_address_absence":"受信者のアドレス","wallets_transfer_error_contract":"NFT のコントラクトを選択","wallets_transfer_error_nft":"NFT を1つ選択してください","wallets_transfer_error_invalid_address":"無効な受け手のアドレス","wallets_transfer_error_insufficient_balance":"{{symbol}} の残高が足りません","wallets_transfer_send":"送信","wallets_transfer_memo_placeholder":"任意のメッセージ","wallets_transfer_contract":"コントラクト","wallets_transfer_contract_placeholder":"NFT コントラクトを選択してください","wallets_swap":"スワップ","wallets_red_packet":"レッドパケット","wallets_sell":"売る","wallets_history":"履歴","settings":"設定","gas_fee":"取引手数料","transfer_cost":"費用 {{gasFee}} {{symbol}} ${{usd}}","done":"完了!","labs":"Mask Labs","wallet_transactions_pending":"承認待ち","wallet_gas_fee_settings_low":"低い","wallet_gas_fee_settings_medium":"中間","wallet_gas_fee_settings_high":"高い","wallets_startup_create":"新規ウォレット作成","wallets_startup_create_desc":"MaskウォレットはETH、BSC、Polygon/Maticのネットワークをサポートしています。","wallets_startup_create_action":"作成","wallets_startup_import":"ウォレットをインポート","wallets_startup_import_desc":"Mask networkはPrivate KeyとMnemonic wordsをサポートしています。","wallets_startup_import_action":"インポート","wallets_startup_connect":"プラグインウォレットに接続","wallets_startup_connect_desc":"Mask networkはMetamask、WalletConnectをサポートしています。","wallets_startup_connect_action":"接続","wallets_connect_wallet_metamask":"Metamask","wallets_connect_wallet_connect":"ウォレットを接続","wallets_connect_wallet_polka":"Polkadot ウォレット","wallets_create_wallet_input_placeholder":"ウォレット名","wallets_create_successfully_title":"成功","wallets_create_successfully_tips":"ウォレットを正常に作成しました","wallets_create_successfully_unlock":"ウォレットをアンロック","wallets_create_wallet_alert":"Mask Networkは、フリーでオープンソースの、クライアントサイドのインターフェースです。Mask Networkは、あなたが自分の鍵と資金を完全にコントロールしたまま、ブロックチェーンと直接やりとりすることを可能にします。コントロールするのはあなた自身です。Mask Networkは銀行や取引所ではありません。お客様の鍵や資金、情報を預かることはありません。つまり、アカウントへのアクセス、鍵の回収、パスワードのリセット、取引の取り消しなどはできません。","wallets_wallet_connect_title":"WalletConnect対応ウォレットでQRコードスキャン","wallets_wallet_mnemonic":"ニーモニック","wallets_wallet_json_file":"ローカルバックアップ","wallets_wallet_private_key":"秘密鍵","wallets_import_wallet_tabs":"ウォレットタブのインポート","wallets_import_wallet_password_placeholder":"ウォレットのパスワード","wallets_import_wallet_cancel":"キャンセル","wallets_import_wallet_import":"インポート","wallets_create_wallet_tabs":"ウォレットタブを作成","wallets_create_wallet_refresh":"更新","wallets_create_wallet_remember_later":"後で覚えておいてください","wallets_create_wallet_verification":"認証","wallets_collectible_address":"受取可能なアドレス","wallets_collectible_token_id":"トークンID","wallets_collectible_field_contract_require":"受取可能なアドレスが必要です","wallets_collectible_field_token_id_require":"トークンIDが必要です","wallets_collectible_load_end":"ロード終了","wallets_balance":"残高","wallets_balance_all_chain":"全てのチェーン","wallets_balance_Send":"送信","wallets_balance_Buy":"購入","wallets_balance_Swap":"スワップ","wallets_balance_Receive":"受取","wallets_assets_token":"トークン","wallets_assets_token_sent_not_connect_tip":"{{chainName}} に接続されていません。","wallets_assets_token_sent_switch_network_tip":"クリックして切り替えます","wallets_assets_investment":"投資","wallets_assets_collectibles":"コレクション","wallets_assets_custom_token":"カスタムトークン","wallets_assets_custom_collectible":"カスタムコレクション","wallets_assets_asset":"資産","wallets_assets_balance":"残高","wallets_assets_price":"価格","wallets_assets_value":"価値","wallets_assets_operation":"操作方法","wallets_address":"ウォレットアドレス","wallets_receive_tips":"QRコードをスキャンして {{chainName}} 資産を転送します","wallets_add_collectible":"コレクションを追加","wallets_incorrect_address":"不正なコントラクトアドレス","wallets_collectible_been_added":"コレクションは既に追加されています","wallets_collectible_error_not_exist":"コレクションは存在しないか、またはあなたのものです。","wallets_collectible_contract_is_empty":"コントラクトを選択してください","wallets_collectible_token_id_is_empty":"トークンを選択してください","wallets_collectible_add":"追加","wallets_add_token":"トークンを追加","wallets_token_been_added":"このトークンはすでに追加されてます","wallets_token_symbol_tips":"シンボルは11文字以下でなければなりません","wallets_token_decimals_tips":"小数点以下は0以上、18以下でなければなりません","wallets_add_token_contract_address":"トークンコントラクトアドレス","wallets_add_token_symbol":"ティッカーシンボル","wallets_add_token_decimals":"小数点の適合率","wallets_add_token_cancel":"キャンセル","wallets_add_token_next":"Next","wallets_empty_tokens_tip":"アセットが見つかりません。トークンを追加してください。","wallets_empty_collectible_tip":"コレクションが見つかりませんでした。コレクションを追加してください。","wallets_address_copied":"アドレスが正常にコピーされました","wallets_address_copy":"コピー","wallets_history_types":"タイプ","wallets_history_value":"価値","wallets_history_time":"時間","wallets_history_receiver":"受取","wallets_empty_history_tips":"取引履歴がありません","wallets_loading_token":"トークンを読み込み中","personas_setup_connect_tips":"あなたの {{type}} アカウントに接続してください","personas_setup_tip":"ペルソナを作成/復元してください。","personas_setup_connect":"接続する","personas_name_maximum_tips":"最大長は {{length}} 文字です。","personas_name_existed":"このペルソナ名は既に存在しています","personas_rename_placeholder":"ペルソナ名","personas_confirm":"確定","personas_cancel":"キャンセル","personas_export_persona":"ペルソナのエクスポート","personas_export_persona_copy":"コピー","personas_export_persona_copy_success":"コピーしました","personas_export_persona_copy_failed":"コピーに失敗しました","personas_export_persona_confirm_password_tip":"パスワードが設定されていません。秘密鍵をエクスポートするには、まずバックアップパスワードを設定する必要があります。","personas_export_private":"秘密鍵をエクスポート","personas_export_private_key_tip":"このエクスポートは秘密鍵をエクスポートするためのものです。他のデータはエクスポートしません。さらなるデータが必要な場合は「設定」に進んでください:","personas_delete_confirm_tips":"削除するペルソナ名 {{nickname}} とパスワードを入力してください。","personas_delete_dialog_title":"ペルソナを削除","personas_edit_dialog_title":"ペルソナを編集","personas_edit":"編集","personas_delete":"削除","personas_logout":"ログアウト","personas_logout_confirm_password_tip":"パスワードが設定されていません。ペルソナからログアウトするには、まずバックアップパスワードを設定する必要があります。","personas_add_persona":"ペルソナを追加","personas_back_up":"バックアップ","personas_connect_to":"{{internalName}} に接続","personas_disconnect":"接続を外す","personas_disconnect_warning":"{{network}} の {{userId}}アカウントを切断してもよろしいですか? 切断後、このアカウントはマスクネットワークで情報を復号化および暗号化することができなくなります。","personas_logout_warning":"ログアウト後、あなたに関連づけられたソーシャルアカウントは過去に暗号化されたメッセージを復号することができなくなります。アカウントを再利用する場合は、秘密鍵を利用して復元することができます。","personas_add":"追加","personas_upload_avatar":"アバターをアップロード","personas_rename":"名前変更","personas_invite_post":"@{{identifier}} こんにち!投稿を暗号化して共有できるように Mask をダウンロードしましょう。http://mask.io からダウンロードできます。 #mask_io","personas_empty_contact_tips":"Mask Network に認識されているコンタクトがありません。友達を招待して {{name}} をダウンロードしてもらってください。","personas_contacts_name":"名前","personas_contacts_operation":"操作","personas_contacts_invite":"招待","personas_post_is_empty":"まだ投稿を作成したことがありません。","personas_post_create":"投稿を作成","settings_general":"一般","settings_backup_recovery":"バックアップと復元","settings_local_backup":"ローカルバックアップ","settings_cloud_backup":"クラウドバックアップ","settings_appearance_default":"システム設定に従う","settings_appearance_light":"ライト","settings_appearance_dark":"ダーク","settings_backup_preview_account":"アカウント","settings_backup_preview_personas":"ペルソナ","settings_backup_preview_associated_account":"紐付けられたアカウント","settings_backup_preview_posts":"暗号化された投稿","settings_backup_preview_contacts":"コンタクト","settings_backup_preview_fils":"ファイル","settings_backup_preview_wallets":"Mask ウォレット","settings_backup_preview_created_at":"バックアップ時間","settings_language_title":"言語","settings_language_desc":"使用する言語を選択してください","settings_language_auto":"システム設定に従う","settings_appearance_title":"外観","settings_appearance_desc":"使用したいテーマを選択したください","settings_data_source_title":"データソース","settings_data_source_desc":"異なるプラットフォームからトレンドデータを取得","settings_sync_with_mobile_title":"モバイルと同期","settings_sync_with_mobile_desc":"アカウントと情報をモバイルデバイスと同期することができます。Mask Network モバイルアプリを開き、設定に移動して同期プラグインを選択します","settings_global_backup_title":"グローバルバックアップ","settings_global_backup_desc":"ローカルバックアップとクラウドバックアップの両方を提供","settings_global_backup_last":"最新のバックアップは {{backupAt}} に行われました。バックアップ方法: {{backupMethod}}。","settings_restore_database_title":"データベースの復元","settings_restore_database_desc":"以前のデータベースバックアップから復元","settings_email_title":"Eメール","settings_email_desc":"メールアドレスを入力してください","settings_change_password_title":"バックアップパスワード","settings_change_password_desc":"バックアップパスワードの変更","settings_change_password_not_set":"バックアップパスワードが設定されていません","settings_phone_number_title":"電話番号","settings_phone_number_desc":"電話番号を入力してください","settings_password_rule":"バックアップパスワードは 8~20 文字で、少なくとも数字、小文字、特殊文字を含める必要があります。","settings_button_cancel":"キャンセル","settings_button_confirm":"確定","settings_button_sync":"同期","settings_button_backup":"バックアップ","settings_button_recovery":"リカバリー","settings_button_setup":"設定","settings_button_change":"変更","settings_dialogs_bind_email_or_phone":"メールアドレスまたは電話番号を入力してください。","settings_dialogs_verify_backup_password":"バックアップパスワードを確認","settings_dialogs_setting_backup_password":"バックアップパスワードを設定","settings_dialogs_change_backup_password":"バックアップパスワードの変更","settings_dialogs_setting_email":"メールアドレスの設定","settings_dialogs_change_email":"メールアドレスの変更","settings_dialogs_setting_phone_number":"電話番号の設定","settings_dialogs_change_phone_number":"電話番号の変更","settings_dialogs_incorrect_code":"認証コードが間違っています。","settings_dialogs_incorrect_email":"メールアドレスが間違っています。","settings_dialogs_incorrect_phone":"電話番号が間違っています。","settings_dialogs_incorrect_password":"パスワードが間違っています。","settings_dialogs_inconsistency_password":"パスワードが一致しません。","settings_dialogs_current_email_validation":"現在の認証用のメールアドレスは","settings_dialogs_change_email_validation":"メールアドレスを変更するためには、現在のメールアドレスを認証する必要があります:","settings_dialogs_current_phone_validation":"現在の認証用のメールアドレスは","settings_dialogs_change_phone_validation":"電話番号を変更するには、現在の電話番号を認証する必要があります:","settings_dialogs_backup_to_cloud":"クラウドにバックアップ","settings_dialogs_merge_to_local_data":"クラウドバックアップをローカルに統合し、クラウドにバックアップします","settings_dialogs_backup_action_desc":"クラウドバックアップは既に存在しています。バックアップ前にクラウドバックアップをローカルに統合するか、直接バックアップしてください。","settings_dialogs_backup_merged_tip":"既にクラウドバックアップをローカルに取得しています。バックアップを実行したい場合は、バックアップボタンをクリックしてすべてのデータをクラウドに更新します。","settings_label_backup_password":"バックアップパスワード","settings_label_new_backup_password":"新しいバックアップパスワード","settings_label_backup_password_cloud":"クラウド上のファイルのパスワードをバックアップ","settings_label_payment_password":"支払いパスワードの設定","settings_label_re_enter":"再入力","settings_alert_password_set":"バックアップパスワードの設定に成功しました。","settings_alert_password_updated":"バックアップパスワードが更新されました","settings_alert_email_set":"メールアドレスの設定","settings_alert_email_updated":"メールアドレスが更新されました","settings_alert_phone_number_set":"電話番号の設定","settings_alert_phone_number_updated":"電話番号が更新されました","settings_alert_backup_fail":"バックアップ失敗","settings_alert_backup_success":"データのバックアップに成功しました。","settings_alert_validation_code_sent":"認証コードを送信しました","settings_alert_merge_success":"クラウドバックアップをローカルデータに統合できました。","labs_file_service":"ファイルサービス","labs_file_service_desc":"ユーザー向け分散ファイルストレージです。","labs_markets":"マーケット","labs_markets_desc":"クリプトの友人にデジタル資産を販売します。","labs_red_packet":"幸運ドロップ","labs_red_packet_desc":"あなたの幸運を暗号化された幸運の小包としてあなたの友人に送信します。","labs_swap":"スワップ","labs_swap_desc":"追加料金と制限なしに Dex を通じてトークンを購入します。","labs_transak":"Transak","labs_transak_desc":"Transak より 60 以上の国でクリプトを購入することができます。"}'); - -/***/ }), - -/***/ 75743: -/***/ ((module) => { - -module.exports = JSON.parse('{"about":"알아보기","wallets":"월렛","personas":"나의 페르소나","persona":"페르소나","refresh":"새로고침","next":"다음","cancel":"취소","back":"뒤로","agree":"동의","confirm":"확인","verify":"인증","go_back":"돌아가기","connect":"연결","searching":"검색 중...","restore":"복원하기","save":"저장","manage":"관리","recovery":"복구","successful":"성공","close":"닫기","send":"보내기","resend":"다시 보내기","confirm_password":"비밀번호 확인","about_dialog_license":"라이센스: ","footer_bounty_list":"상금 리스트","about_dialog_source_code":"소스 코드: ","about_dialog_feedback":"피드백: ","about_dialog_touch":"연락하기","about_dialog_description":"Mask Network는 새롭고 오픈한 인터넷으로 통하는 포털이다. Mask를 통해 소셜 네트워크에서 암호화 게시글을 공유할 수도 있다. 레드 패킷 보내기, 암호화폐 구매, 파일 서비스 등 기능도 지원한다.","setup_page_title":"환영합니다","setup_page_description":"소셜 네트워크에서 개시글과 체팅을 암호화하고 친구만 해독할 수 있다.","setup_page_create_account_title":"아이디 만들기","setup_page_create_account_subtitle":"계정과 데이터의 로컬 스토리지","setup_page_create_account_button":"만들기","setup_page_create_restore_title":"아이디나 백업에서 복원하기","setup_page_create_restore_subtitle":"아이디나 역사 백업에서 복원하기.","setup_page_create_restore_button":"복구 또는 로그인","create_account_identity_title":"Mask Network 아이디 만들기","create_account_sign_in_button":"복구 또는 로그인","create_account_mnemonic_confirm_failed":"잘못된 아이디 코드","create_account_connect_social_media_button":"만들기","create_account_connect_social_media":"{{type}} 에 연결하기","create_account_persona_title":"환영합니다","create_account_persona_subtitle":"페르소나를 만들고 소셜 계정을 연결할 수 있습니다.","create_account_persona_successfully":"페르소나 생성 성공","create_account_connect_social_media_title":"소셜 미디어 연결하기","create_account_failed":"계정 만들기 실패","sign_in_account_identity_title":"복구 또는 로그인","sign_in_account_tab_identity":"아이덴티티","sign_in_account_sign_up_button":"로그인","sign_in_account_identity_warning":"디지털 아이디 코드는 디지털 아이디만 복구할 수 있습니다. 이 디지털 아이디가 서명하고 보낸 소셜 정보를 암호화하고 해독할 수 있습니다.","sign_in_account_private_key_placeholder":"개인 키 입력하기","sign_in_account_private_key_error":"잘못된 아이디 코드","sign_in_account_private_key_persona_not_found":"페르소나를 찾을 수 없습니다.","sign_in_account_private_key_warning":"디지털 아이디 코드는 디지털 아이디만 복구할 수 있습니다. 이 디지털 아이디가 서명하고 보낸 소셜 정보를 암호화하고 해독할 수 있습니다.","sign_in_account_mnemonic_confirm_failed":"잘못된 아이덴티티","sign_in_account_cloud_backup_send_email_success":"인증 코드 이미 {{type}} 로 발송되었습니다. {{type}} 확인하세요.","sign_in_account_local_backup_warning":"로컬 백업은 로컬에 저장된 전체 데이터를 복구할 수 있습니다.","sign_in_account_local_backup_payment_password":"결재 비밀번호","sign_in_account_local_backup_file_drag":"클릭하거나 파일을 여기서 끌어들이세요","sign_in_account_cloud_backup_warning":"클라우드 백업은 데이터를 호스트하고 암호화합니다.","sign_in_account_cloud_backup_not_support":"지원하지 않는 데이터 백업","sign_in_account_cloud_send_verification_code_tip":"인증 코드 보내기","sign_in_account_cloud_backup_failed":"백업 복구 실패되었습니다. 다시 시도하세요.","sign_in_account_cloud_backup_email_or_phone_number":"이메일이나 휴대폰 번호","sign_in_account_cloud_backup_password":"비밀번호 백업","sign_in_account_cloud_restore_failed":"복구 실패","sign_in_account_cloud_backup_download_failed":"다운로드 백업 실패","sign_in_account_cloud_backup_decrypt_failed":"해독 실패, 비밀번호를 확인하세요","sign_in_account_cloud_backup_email_format_error":"이메일 주소가 잘못되었습니다.","sign_in_account_cloud_backup_phone_format_error":"전화번호가 잘못되었습니다.","sign_in_account_cloud_backup_synchronize_password_tip":"클라우드 비밀번호는 이미 성공적으로 승인되고 백업은 이미 업로드되었습니다. 백업 비밀번호를 통합하려면 클라우드 비밀번호를 로컬 백업 비밀번호로 동기화할지 여부를 확인하십시오.","cloud_backup":"클라우드 백업","wallets_transfer":"전송","wallets_assets":"자산","wallets_transfer_memo":"메모","wallets_transfer_amount":"수량","wallets_transfer_to_address":"받는 주소","wallets_transfer_error_amount_absence":"수액 입력","wallets_transfer_error_address_absence":"받는 주소 입력","wallets_transfer_error_contract":"NFT 컨트렉트를 선택하세요.","wallets_transfer_error_nft":"NFT 선택","wallets_transfer_error_invalid_address":"무효한 받는 주소","wallet_transfer_error_no_address_has_been_set_name":"수신자의 주소가 잘못되었습니다.","wallet_transfer_error_no_ens_support":"네트워크는 ENS를 지원하지 않습니다.","wallets_transfer_error_insufficient_balance":"{{symbol}} 잔액 부족","wallets_transfer_error_same_address_with_current_account":"받는 주소는 발송 주소와 동일합니다. 다시 확인해 주세요.","wallets_transfer_error_is_contract_address":"받는 주소는 컨트랙트 주소입니다. 다시 확인해 주세요.","wallets_transfer_send":"발송","wallets_transfer_memo_placeholder":"옵셔널 메시지","wallets_transfer_contract":"컨트랙트","wallets_transfer_contract_placeholder":"NFT 컨트렉트를 선택하세요.","wallets_swap":"스왑","wallets_red_packet":"레드 패킷","wallets_sell":"매도","wallets_history":"역사 기록","settings":"설정","gas_fee":"거래 수수료","transfer_cost":"Cost {{gasFee}} {{symbol}} ≈ ${{usd}}","done":"완료","labs":"Mask Labs","wallet_transactions_pending":"대기중","wallet_gas_fee_settings_low":"낮음","wallet_gas_fee_settings_medium":"보통","wallet_gas_fee_settings_high":"높음","wallets_startup_create":"새로운 월렛 생성","wallets_startup_create_desc":"Mask 월렛은 ETH, BSC, Polygon/Matic 네트워크를 지원합니다.","wallets_startup_create_action":"만들기","wallets_startup_import":"월렛 불러오기","wallets_startup_import_desc":"Mask 월렛은 개인키, JSON.File, 니모닉 단어를 지원합니다.","wallets_startup_import_action":"불러오기","wallets_startup_connect":"플러그인 월렛 연결하기","wallets_startup_connect_desc":"Mask network는 Metamask, WalletConnect를 지원합니다.","wallets_startup_connect_action":"연결","wallets_connect_wallet_metamask":"MetaMask","wallets_connect_wallet_connect":"월렛 연결하기","wallets_connect_wallet_polka":"Polkadot 월렛","wallets_create_wallet_input_placeholder":"월렛 이름","wallets_create_successfully_title":"성공","wallets_create_successfully_tips":"월렛을 성공적으로 만들었습니다.","wallets_create_successfully_unlock":"월렛 언락","wallets_create_wallet_alert":"Mask Network는 무료하는 오픈 소스 클라이언트 사이드 인터페이스입니다. Mask Network 를 통해 키와 펀드의 지배권을 보유하면서 블록체인과 상호작용을 할 수 있습니다. Mask Network는 뱅크나 거래소가 아니고 당신의 개인키, 펀드, 정보를 수집하지 않어서 계정 액세스, 개인키 복구, 비밀번호 초기화, 거래 리버스 등을 하지 못합니다.","wallets_wallet_connect_title":"WalletConnect와 호환성이 있는 월렛으로 QR 코드를 스칸하세요.","wallets_wallet_mnemonic":"니모닉","wallets_wallet_json_file":"로컬 백업","wallets_wallet_private_key":"개인 키","wallets_import_wallet_tabs":"월렛 불러오기","wallets_import_wallet_password_placeholder":"월렛 비밀번호","wallets_import_wallet_cancel":"취소","wallets_import_wallet_import":"불러오기","wallets_create_wallet_tabs":"월렛 탭 만들기","wallets_create_wallet_refresh":"새로고침","wallets_create_wallet_remember_later":"나중에 기억하기","wallets_create_wallet_verification":"인증","wallets_collectible_address":"수집품 주소","wallets_collectible_token_id":"토큰 ID","wallets_collectible_field_contract_require":"수집품 주소가 필요합니다","wallets_collectible_field_token_id_require":"토큰 아이디가 필요합니다.","wallets_collectible_load_end":"로드 완료","wallets_balance":"잔액","wallets_balance_all_chain":"모든 체인","wallets_balance_Send":"발송","wallets_balance_Buy":"매수","wallets_balance_Swap":"스왑","wallets_balance_Receive":"받기","wallets_assets_token":"토큰","wallets_assets_token_sent_not_connect_tip":"{{chainName}} 에 연결되지 않습니다.","wallets_assets_token_sent_switch_network_tip":"전환하기","wallets_assets_investment":"투자","wallets_assets_collectibles":"수집품","wallets_assets_custom_token":"맞춤형 토큰","wallets_assets_custom_collectible":"맞춤형 수집품","wallets_assets_asset":"자산","wallets_assets_balance":"잔액","wallets_assets_price":"가격","wallets_assets_value":"값","wallets_assets_operation":"운영","wallets_address":"월렛 주소","wallets_receive_tips":"QR 코드를 스칸하여 {{chainName}} 자산을 전환하기","wallets_add_collectible":"수집품 추가","wallets_incorrect_address":"잘못된 컨트렉트 주소","wallets_collectible_been_added":"이미 추가된 수집품입니다.","wallets_collectible_error_not_exist":"해당 수집품은 존재하지 않거나 유저님의 것이 아닙니다.","wallets_collectible_contract_is_empty":"켄트랙트를 선택하세요","wallets_collectible_token_id_is_empty":"토큰을 선택하세요","wallets_collectible_add":"추가","wallets_add_token":"토큰 추가","wallets_token_been_added":"이미 추가된 토큰입니다.","wallets_token_symbol_tips":"기호는 11자 이하여야 합니다.","wallets_token_decimals_tips":"소수점은 0 이상이어야 하며 18을 넘지 않아야 합니다.","wallets_add_token_contract_address":"토큰 컨트랙트 주소","wallets_add_token_symbol":"토큰 기호","wallets_add_token_decimals":"소숫점 정밀도","wallets_add_token_cancel":"취소","wallets_add_token_next":"다음","wallets_empty_tokens_tip":"자산이 없습니다. 토큰을 추가하세요.","wallets_empty_collectible_tip":"수집품이 없습니다. 수집품을 추가하세요.","wallets_address_copied":"주소가 복사되었습니다","wallets_address_copy":"복사","wallets_history_types":"유형","wallets_history_value":"값","wallets_history_time":"시간","wallets_history_receiver":"받는 사람","wallets_empty_history_tips":"거래 내역이 없습니다","wallets_loading_token":"토큰 로딩","personas_setup_connect_tips":"유저님의 {{type}} 계정을 연결하세요.","personas_setup_tip":"페르소나를 만들거나 복구하세요.","personas_setup_connect":"연결","personas_name_maximum_tips":"최대 길이는 {{length}} 자입니다.","personas_name_existed":"이미 존재된 페르소나입니다","personas_rename_placeholder":"페르소나 이름","personas_confirm":"확인","personas_cancel":"취소","personas_export_persona":"페르소나 수출","personas_export_persona_copy":"복사","personas_export_persona_copy_success":"복사됨","personas_export_persona_copy_failed":"복사 실패","personas_export_persona_confirm_password_tip":"비밀번호가 아직 설정되지 않습니다. 개인 키 수출하려면 백업 비밀번호는 먼저 설정해야 합니다.","personas_export_private":"개인 키 수출","personas_export_private_key_tip":"개인키만 수출이 가능합니다. 다른 데이터 수출할 수 없습니다.","personas_delete_confirm_tips":"페르소나 {{nickname}} 를 삭제되는 것을 확인하시고 비밀번호를 입력하세요.","personas_delete_dialog_title":"페르소나 삭제","personas_edit_dialog_title":"페르소나 편집","personas_edit":"편집","personas_delete":"삭제","personas_logout":"로그아웃","personas_logout_confirm_password_tip":"비밀번호가 아직 설정되지 않습니다. 페르소나에 로그아웃하려면 백업 비밀번호는 먼저 설정해야 합니다.","personas_add_persona":"페르소나 추가","personas_back_up":"백업","personas_connect_to":"{{internalName}} 연결하기","personas_disconnect":"연결 끊기","personas_disconnect_warning":"{{userId}} 의 {{network}} 계정 연결을 해제하시겠습니까? 연결이 끊긴 후 이 계정은 더 이상 Mask Network를 사용하여 정보를 해독하고 암호화할 수 없습니다.","personas_logout_warning":"로그아웃 후, 연결된 소셜 계정은 더 이상 암호화하거나 해독할 수 없습나다. 계정을 다시 이용하려면 아이덴티티, 개인 키, 로컬이나 클라우드 백업으로 복원할 수 있습니다.","personas_add":"추가","personas_upload_avatar":"아바타 업로드","personas_rename":"이름 바꾸기","personas_invite_post":"@{{identifier}} 안녕하세요. 암호화된 게시글을 보낼 수 있기를 위해 Mask 다운로드하세요. #mask_io install http://mask.io","personas_empty_contact_tips":"연락처에서 Mask Network 를 설치된 자가 없습니다. 친구를 초대하여 {{name}} 다운로드하세요.","personas_contacts_name":"이름","personas_contacts_operation":"조작","personas_contacts_invite":"초대","personas_post_is_empty":"작성된 게시글이 없습니다.","personas_post_create":"게시글 작성하기","settings_general":"일반","settings_backup_recovery":"백업 맟 복원","settings_local_backup":"로컬 백업","settings_cloud_backup":"클라우드 백업","settings_appearance_default":"시스템 따라 설정하기","settings_appearance_light":"라이트","settings_appearance_dark":"다크","settings_backup_preview_account":"계정","settings_backup_preview_personas":"페르소나","settings_backup_preview_associated_account":"관련 계정","settings_backup_preview_posts":"암호화된 게시물","settings_backup_preview_contacts":"연락처","settings_backup_preview_fils":"파일","settings_backup_preview_wallets":"로컬 월렛","settings_backup_preview_created_at":"백업 시간","settings_language_title":"언어","settings_language_desc":"이용하고 싶은 언어를 선택하세요","settings_language_auto":"시스템에 따라 설정","settings_appearance_title":"화면","settings_appearance_desc":"이용하고 싶은 테마를 선택하세요","settings_data_source_title":"데이터 소스","settings_data_source_desc":"다른 플랫폼에서 트렌딩 데이터 가져오기","settings_sync_with_mobile_title":"모바일과 싱크하기","settings_sync_with_mobile_desc":"모바일 디바이스와 계정과 정보를 싱크할 수 있습니다. Mask Network 모바일 앱을 켜고 설정에서 플러그인 싱크를 탭하세요.","settings_global_backup_title":"글로벌 백업","settings_global_backup_desc":"로컬 백업과 클라우드 백업을 제공합니다.","settings_global_backup_last":"가장 최근 백업은 {{backupAt}} 에서 수행되었습니다. 백업 방법: {{backupMethod}}.","settings_restore_database_title":"데이터베이스 복원","settings_restore_database_desc":"이전의 데이터베이스 백업에서 복원하기","settings_email_title":"이메일","settings_email_desc":"이메일을 연동하세요","settings_change_password_title":"비밀번호 백업","settings_change_password_desc":"백업 비밀번호 변경","settings_change_password_not_set":"비밀번호 백업이 설정되지 않습니다.","settings_phone_number_title":"전화번호","settings_phone_number_desc":"전화번호를 연동해주세요.","settings_password_rule":"백업 암호는 8자에서 20자 사이여야 하며 숫자, 대문자, 소문자 및 특수 문자를 포함해야 합니다.","settings_button_cancel":"취소","settings_button_confirm":"확인","settings_button_sync":"동기화","settings_button_backup":"백업","settings_button_recovery":"복구","settings_button_setup":"설정","settings_button_change":"변경","settings_dialogs_bind_email_or_phone":"이메일이나 전화번호를 연동해주세요.","settings_dialogs_verify_backup_password":"백업 비밀번호 인증","settings_dialogs_setting_backup_password":"백업 비밀번호 설정","settings_dialogs_change_backup_password":"백업 비밀번호 변경","settings_dialogs_setting_email":"이메일 설정","settings_dialogs_change_email":"이메일 변경","settings_dialogs_setting_phone_number":"전화번호 추가","settings_dialogs_change_phone_number":"전화 번호 변경","settings_dialogs_incorrect_code":"인증 코드가 잘못되었습니다","settings_dialogs_incorrect_email":"이메일 주소가 잘못되었습니다.","settings_dialogs_incorrect_phone":"전화번호가 잘못되었습니다.","settings_dialogs_incorrect_password":"잘못된 비밀번호.","settings_dialogs_inconsistency_password":"비밀번호 일치하지 않습니다.","settings_dialogs_current_email_validation":"현재 인증 이메일","settings_dialogs_change_email_validation":"이메일을 변경하기 위해 현재 이메일 주소를 인증해야 합니다.","settings_dialogs_current_phone_validation":"현재 인증 전화번호","settings_dialogs_change_phone_validation":"전화번호를 변경하기 위해 현재 전화번호를 인증해야 합니다.","settings_dialogs_backup_to_cloud":"클라우드 백업","settings_dialogs_merge_to_local_data":"로컬 데이터로 합병하기","settings_dialogs_backup_action_desc":"클라우드 백업이 이미 존재되어 있습니다. 클라우드 백업을 로컬에 합병하거나 로컬 데이터를 클라우드에 업로드하기를 선택하세요.","settings_dialogs_backup_to_cloud_action":"이 옵션은 기존 클라우드 백업을 로컬 데이터로 덮어씁니다.","settings_dialogs_backup_merge_cloud":"기존 클라우드 백업을 해독하려면 비밀번호를 입력해야 합니다. 기존 클라우드 백업과 로컬 데이터가 결합되고 암호화되어 클라우드에 업로드됩니다.","settings_dialogs_backup_merged_tip":"클라우드 백업은 이미 로컬로 다운받았습니다. 백업을 완성하려면 백업 버튼을 누르고 오든 테이터를 클라우드로 백업하세요.","settings_label_backup_password":"비밀번호 백업","settings_label_new_backup_password":"새로운 비밀번호 백업","settings_label_backup_password_cloud":"클라우드 파일 백업 비밀번호","settings_label_payment_password":"결재 비밀번호","settings_label_re_enter":"다시 입력","settings_alert_password_set":"백업 비밀번호 설정","settings_alert_password_updated":"백업 비밀번호 업데이트","settings_alert_email_set":"이메일 설정","settings_alert_email_updated":"이메일 업데이트되었습니다","settings_alert_phone_number_set":"전화번호 설정","settings_alert_phone_number_updated":"전화번호가 업데이트되었습니다","settings_alert_backup_fail":"백업 실패","settings_alert_backup_success":"데이터가 이미 백업되었습니다.","settings_alert_validation_code_sent":"인증 코드가 발송되었습니다","settings_alert_merge_success":"클라우드 백업과 로컬 데이터를 이미 합병되었습니다.","labs_file_service":"파일 서비스","labs_file_service_desc":"탈중앙화 파일 저장","labs_markets":"마켓","labs_markets_desc":"암호 친구에게 디지털 자산을 보내기","labs_red_packet":"레드 패킷","labs_red_packet_desc":"축복을 암호화된 레드 패킷으로 포장하고 친구들에게 보내세요.","labs_swap":"스왑","labs_swap_desc":"추가 비용과 제한 없이 DEX로 토큰을 구매하기","labs_transak":"Transak","labs_transak_desc":"Transak 지원으로 60+ 국가에서 암호화폐 구매하기","labs_snapshot":"Snapshot","labs_snapshot_desc":"소셜 미디어에서 직접 제안을 표시하고 투표하기","labs_market_trend":"마켓 추세","labs_market_trend_desc":"토큰 정보, 가격 차트, 거래 정보을 직접 소셜 미디어에서 표시하기","labs_collectibles":"Collectibles","labs_collectibles_desc":"Opensea and Rarible의 지정 정보를 포시하고 소셜미디어에서 경매하기","labs_gitcoin":"Gitcoin","labs_gitcoin_desc":"Gitcoin의 지정 정보를 표시하고 소셜미디어에서 프로젝트에게 적접 기부하기","labs_valuables":"가치","labs_valuables_desc":"크리에이터가 서명한 트윗을 구입 및 판매하기","labs_dhedge":"DHEDGE","labs_dhedge_desc":"이더리움의 탈중앙화 헤지 펀드","labs_mask_box":"MaskBox","labs_mask_box_desc":"NFT 미스터리박스를 출시하는 멀티체인 탈중앙화 플랫폼","labs_loot_man":"LootMan by MintTeam","labs_loot_man_desc":"NFT의 무한한 가능성을 탐색. 소셜미디어에서 보유하는 NFT를 전시하는 혁신적인 방식","labs_good_ghosting":"GoodGhosting","labs_good_ghosting_desc":"트위터에서 매주 저축 습관을 기른다.","labs_pool_together":"PoolTogether","labs_pool_together_desc":"트위터에서 무손실 로또에 참여한다.","labs_settings_market_trend":"마켓 추세 설정","labs_settings_market_trend_source":"디폴트 추세 소스","labs_settings_swap":"스왑 설정","labs_settings_swap_network":"{{network}} 네트워크 디폴트 추세 소스","labs_pets":"LootMan by MintTeam","labs_pets_desc":"NFT의 무한한 가능성을 탐색. 소셜미디어에서 보유하는 NFT를 전시하는 혁신적인 방식","labs_setup_tutorial":"튜토리얼 설정","labs_do_not_show_again":"다시 보이지 않기","labs_cryptoartai":"CRYPTOART.AI","labs_cryptoartai_desc":"암호화 디지털 예술 연결.","dashboard_mobile_test":"모바일 테스트 참여","dashboard_source_code":"소스 코드","privacy_policy":"개인정보처리방침","version_of_stable":"버전 {{version}}","version_of_unstable":"버전 {{version}}-{{build}}-{{hash}}","register_restore_backups":"백업 복원","register_restore_backups_cancel":"취소","register_restore_backups_confirm":"복원","register_restore_backups_hint":"클릭하거나 파일을 여기서 끌어들이세요","register_restore_backups_file":"파일","register_restore_backups_text":"텍스트","register_restore_backups_tabs":"백업 복원 탭","create_wallet_mnemonic_tip":"월렛의 자산을 보호하기 위해 니모닉 단어를 잘 저장하고 잊지 마세요.","create_wallet_password_uppercase_tip":"대문자 하나가 포함되어야 합니다","create_wallet_password_lowercase_tip":"소문자 하나가 포함되어야 합니다","create_wallet_password_number_tip":"숫자 하나가 포함되어야 합니다","create_wallet_password_special_tip":"특수문자 하나가 포함되어야 합니다","create_wallet_password_satisfied_requirement":"비밀번호가 요구 사항을 충족하지 않습니다.","create_wallet_password_match_tip":"비밀번호가 일치하지 않습니다","create_wallet_password_length_error":"비밀번호 길이가 잘못되었습니다.","create_wallet_name_placeholder":"1-12 자 입력하세요","create_wallet_form_title":"월렛 만들기","create_wallet_wallet_name":"월렛 이름","create_wallet_payment_password":"결재 비밀번호","create_wallet_re_enter_payment_password":"결재 비밀번호 다시 설정","create_wallet_payment_password_tip":"백업 암호는 8자에서 20자 사이여야 하며 숫자, 대문자, 소문자 및 특수 문자를 포함해야 합니다.","create_wallet_your_wallet_address":"월렛 주소","create_wallet_done":"완료","create_wallet_verify_words":"이모닉 단어 인증","create_wallet_mnemonic_word_not_match":"니모닉 단어가 불일치합니다"}'); - -/***/ }), - -/***/ 59641: -/***/ ((module) => { - -module.exports = JSON.parse('{"about":"crwdns1619:0crwdne1619:0","wallets":"crwdns1621:0crwdne1621:0","personas":"crwdns1623:0crwdne1623:0","persona":"crwdns7557:0crwdne7557:0","refresh":"crwdns7559:0crwdne7559:0","next":"crwdns7561:0crwdne7561:0","cancel":"crwdns7563:0crwdne7563:0","back":"crwdns7565:0crwdne7565:0","agree":"crwdns7567:0crwdne7567:0","confirm":"crwdns7569:0crwdne7569:0","verify":"crwdns7571:0crwdne7571:0","go_back":"crwdns7573:0crwdne7573:0","connect":"crwdns7575:0crwdne7575:0","searching":"crwdns7863:0crwdne7863:0","restore":"crwdns7835:0crwdne7835:0","save":"crwdns7955:0crwdne7955:0","manage":"crwdns8027:0crwdne8027:0","recovery":"crwdns7995:0crwdne7995:0","successful":"crwdns8077:0crwdne8077:0","close":"crwdns8173:0crwdne8173:0","send":"crwdns8203:0crwdne8203:0","resend":"crwdns8205:0crwdne8205:0","print":"crwdns13039:0crwdne13039:0","download":"crwdns13041:0crwdne13041:0","print_preview":"crwdns13043:0crwdne13043:0","download_preview":"crwdns13045:0crwdne13045:0","confirm_password":"crwdns8175:0crwdne8175:0","about_dialog_license":"crwdns1625:0crwdne1625:0","footer_bounty_list":"crwdns1627:0crwdne1627:0","about_dialog_source_code":"crwdns1629:0crwdne1629:0","about_dialog_feedback":"crwdns1631:0crwdne1631:0","about_dialog_touch":"crwdns1633:0crwdne1633:0","about_dialog_description":"crwdns1635:0crwdne1635:0","setup_page_title":"crwdns1637:0crwdne1637:0","setup_page_description":"crwdns1639:0crwdne1639:0","setup_page_create_account_title":"crwdns1641:0crwdne1641:0","setup_page_create_account_subtitle":"crwdns1643:0crwdne1643:0","setup_page_create_account_button":"crwdns1645:0crwdne1645:0","setup_page_create_restore_title":"crwdns1647:0crwdne1647:0","setup_page_create_restore_subtitle":"crwdns1649:0crwdne1649:0","setup_page_create_restore_button":"crwdns1651:0crwdne1651:0","create_account_mask_id":"crwdns13047:0crwdne13047:0","create_account_private_key":"crwdns13049:0crwdne13049:0","create_account_identity_id":"crwdns13051:0crwdne13051:0","create_account_identity_title":"crwdns7577:0crwdne7577:0","create_account_sign_in_button":"crwdns7579:0crwdne7579:0","create_account_persona_exists":"crwdns13053:0crwdne13053:0","create_account_mnemonic_download_or_print":"crwdns13055:0crwdne13055:0","create_account_preview_tip":"crwdns13057:0crwdne13057:0","create_account_mnemonic_confirm_failed":"crwdns7583:0crwdne7583:0","create_account_connect_social_media_button":"crwdns7585:0crwdne7585:0","create_account_connect_social_media":"crwdns7587:0{{type}}crwdne7587:0","create_account_persona_title":"crwdns7589:0crwdne7589:0","create_account_persona_subtitle":"crwdns7591:0crwdne7591:0","create_account_persona_successfully":"crwdns7593:0crwdne7593:0","create_account_connect_social_media_title":"crwdns7595:0crwdne7595:0","create_account_failed":"crwdns7597:0crwdne7597:0","sign_in_account_identity_title":"crwdns7599:0crwdne7599:0","sign_in_account_tab_identity":"crwdns10039:0crwdne10039:0","sign_in_account_sign_up_button":"crwdns7601:0crwdne7601:0","sign_in_account_identity_warning":"crwdns7603:0crwdne7603:0","sign_in_account_private_key_placeholder":"crwdns7605:0crwdne7605:0","sign_in_account_private_key_error":"crwdns7607:0crwdne7607:0","sign_in_account_private_key_persona_not_found":"crwdns7609:0crwdne7609:0","sign_in_account_private_key_warning":"crwdns7611:0crwdne7611:0","sign_in_account_mnemonic_confirm_failed":"crwdns8191:0crwdne8191:0","sign_in_account_cloud_backup_send_email_success":"crwdns8079:0{{type}}crwdnd8079:0{{type}}crwdne8079:0","sign_in_account_local_backup_warning":"crwdns7613:0crwdne7613:0","sign_in_account_local_backup_payment_password":"crwdns9329:0crwdne9329:0","sign_in_account_local_backup_file_drag":"crwdns7615:0crwdne7615:0","sign_in_account_cloud_backup_warning":"crwdns7617:0crwdne7617:0","sign_in_account_cloud_backup_not_support":"crwdns8081:0crwdne8081:0","sign_in_account_cloud_send_verification_code_tip":"crwdns8193:0crwdne8193:0","sign_in_account_cloud_backup_failed":"crwdns8083:0crwdne8083:0","sign_in_account_cloud_backup_email_or_phone_number":"crwdns7619:0crwdne7619:0","sign_in_account_cloud_backup_password":"crwdns7621:0crwdne7621:0","sign_in_account_cloud_restore_failed":"crwdns7623:0crwdne7623:0","sign_in_account_cloud_backup_download_failed":"crwdns7625:0crwdne7625:0","sign_in_account_cloud_backup_decrypt_failed":"crwdns7627:0crwdne7627:0","sign_in_account_cloud_backup_email_format_error":"crwdns8085:0crwdne8085:0","sign_in_account_cloud_backup_phone_format_error":"crwdns8087:0crwdne8087:0","sign_in_account_cloud_backup_synchronize_password_tip":"crwdns8089:0crwdne8089:0","cloud_backup":"crwdns7629:0crwdne7629:0","wallets_transfer":"crwdns1653:0crwdne1653:0","wallets_assets":"crwdns8003:0crwdne8003:0","wallets_transfer_memo":"crwdns8005:0crwdne8005:0","wallets_transfer_amount":"crwdns8007:0crwdne8007:0","wallets_transfer_to_address":"crwdns8009:0crwdne8009:0","wallets_transfer_error_amount_absence":"crwdns8011:0crwdne8011:0","wallets_transfer_error_address_absence":"crwdns8013:0crwdne8013:0","wallets_transfer_error_contract":"crwdns9331:0crwdne9331:0","wallets_transfer_error_nft":"crwdns9333:0crwdne9333:0","wallets_transfer_error_invalid_address":"crwdns8015:0crwdne8015:0","wallet_transfer_error_no_address_has_been_set_name":"crwdns10429:0crwdne10429:0","wallet_transfer_error_no_ens_support":"crwdns10431:0crwdne10431:0","wallets_transfer_error_insufficient_balance":"crwdns8017:0{{symbol}}crwdne8017:0","wallets_transfer_error_same_address_with_current_account":"crwdns10617:0crwdne10617:0","wallets_transfer_error_is_contract_address":"crwdns10619:0crwdne10619:0","wallets_transfer_send":"crwdns8019:0crwdne8019:0","wallets_transfer_memo_placeholder":"crwdns8021:0crwdne8021:0","wallets_transfer_contract":"crwdns9335:0crwdne9335:0","wallets_transfer_contract_placeholder":"crwdns9337:0crwdne9337:0","wallets_swap":"crwdns1655:0crwdne1655:0","wallets_red_packet":"crwdns1657:0crwdne1657:0","wallets_sell":"crwdns1659:0crwdne1659:0","wallets_history":"crwdns1661:0crwdne1661:0","settings":"crwdns1663:0crwdne1663:0","gas_fee":"crwdns8989:0crwdne8989:0","transfer_cost":"crwdns8991:0{{gasFee}}crwdnd8991:0{{symbol}}crwdnd8991:0{{usd}}crwdne8991:0","done":"crwdns1665:0crwdne1665:0","labs":"crwdns1667:0crwdne1667:0","wallet_transactions_pending":"crwdns7921:0crwdne7921:0","wallet_gas_fee_settings_low":"crwdns9015:0crwdne9015:0","wallet_gas_fee_settings_medium":"crwdns9017:0crwdne9017:0","wallet_gas_fee_settings_high":"crwdns9019:0crwdne9019:0","wallets_startup_create":"crwdns1669:0crwdne1669:0","wallets_startup_create_desc":"crwdns1671:0crwdne1671:0","wallets_startup_create_action":"crwdns1673:0crwdne1673:0","wallets_startup_import":"crwdns1675:0crwdne1675:0","wallets_startup_import_desc":"crwdns1677:0crwdne1677:0","wallets_startup_import_action":"crwdns1679:0crwdne1679:0","wallets_startup_connect":"crwdns1681:0crwdne1681:0","wallets_startup_connect_desc":"crwdns1683:0crwdne1683:0","wallets_startup_connect_action":"crwdns1685:0crwdne1685:0","wallets_connect_wallet_metamask":"crwdns1687:0crwdne1687:0","wallets_connect_wallet_connect":"crwdns1689:0crwdne1689:0","wallets_connect_wallet_polka":"crwdns1691:0crwdne1691:0","wallets_create_wallet_input_placeholder":"crwdns1693:0crwdne1693:0","wallets_create_successfully_title":"crwdns1695:0crwdne1695:0","wallets_create_successfully_tips":"crwdns1697:0crwdne1697:0","wallets_create_successfully_unlock":"crwdns1699:0crwdne1699:0","wallets_create_wallet_alert":"crwdns1701:0crwdne1701:0","wallets_wallet_connect_title":"crwdns1703:0crwdne1703:0","wallets_wallet_mnemonic":"crwdns1705:0crwdne1705:0","wallets_wallet_json_file":"crwdns1707:0crwdne1707:0","wallets_wallet_private_key":"crwdns1709:0crwdne1709:0","wallets_import_wallet_tabs":"crwdns1711:0crwdne1711:0","wallets_import_wallet_password_placeholder":"crwdns1713:0crwdne1713:0","wallets_import_wallet_cancel":"crwdns1715:0crwdne1715:0","wallets_import_wallet_import":"crwdns1717:0crwdne1717:0","wallets_create_wallet_tabs":"crwdns1719:0crwdne1719:0","wallets_create_wallet_refresh":"crwdns1721:0crwdne1721:0","wallets_create_wallet_remember_later":"crwdns1723:0crwdne1723:0","wallets_create_wallet_verification":"crwdns1725:0crwdne1725:0","wallets_collectible_address":"crwdns1727:0crwdne1727:0","wallets_collectible_token_id":"crwdns7951:0crwdne7951:0","wallets_collectible_field_contract_require":"crwdns9021:0crwdne9021:0","wallets_collectible_field_token_id_require":"crwdns9023:0crwdne9023:0","wallets_collectible_load_end":"crwdns9339:0crwdne9339:0","wallets_balance":"crwdns1729:0crwdne1729:0","wallets_balance_all_chain":"crwdns9341:0crwdne9341:0","wallets_balance_Send":"crwdns1731:0crwdne1731:0","wallets_balance_Buy":"crwdns1733:0crwdne1733:0","wallets_balance_Swap":"crwdns1735:0crwdne1735:0","wallets_balance_Receive":"crwdns1737:0crwdne1737:0","wallets_assets_token":"crwdns1739:0crwdne1739:0","wallets_assets_token_sent_not_connect_tip":"crwdns9343:0{{chainName}}crwdne9343:0","wallets_assets_token_sent_switch_network_tip":"crwdns9345:0crwdne9345:0","wallets_assets_investment":"crwdns1741:0crwdne1741:0","wallets_assets_collectibles":"crwdns8171:0crwdne8171:0","wallets_assets_custom_token":"crwdns1745:0crwdne1745:0","wallets_assets_custom_collectible":"crwdns1747:0crwdne1747:0","wallets_assets_asset":"crwdns1749:0crwdne1749:0","wallets_assets_balance":"crwdns1751:0crwdne1751:0","wallets_assets_price":"crwdns1753:0crwdne1753:0","wallets_assets_value":"crwdns1755:0crwdne1755:0","wallets_assets_operation":"crwdns1757:0crwdne1757:0","wallets_address":"crwdns1759:0crwdne1759:0","wallets_receive_tips":"crwdns1761:0{{chainName}}crwdne1761:0","wallets_add_collectible":"crwdns1763:0crwdne1763:0","wallets_incorrect_address":"crwdns1765:0crwdne1765:0","wallets_collectible_been_added":"crwdns1767:0crwdne1767:0","wallets_collectible_error_not_exist":"crwdns7953:0crwdne7953:0","wallets_collectible_contract_is_empty":"crwdns9347:0crwdne9347:0","wallets_collectible_token_id_is_empty":"crwdns9349:0crwdne9349:0","wallets_collectible_add":"crwdns1769:0crwdne1769:0","wallets_add_token":"crwdns1771:0crwdne1771:0","wallets_token_been_added":"crwdns1773:0crwdne1773:0","wallets_token_symbol_tips":"crwdns1775:0crwdne1775:0","wallets_token_decimals_tips":"crwdns1777:0crwdne1777:0","wallets_add_token_contract_address":"crwdns1779:0crwdne1779:0","wallets_add_token_symbol":"crwdns1781:0crwdne1781:0","wallets_add_token_decimals":"crwdns1783:0crwdne1783:0","wallets_add_token_cancel":"crwdns1785:0crwdne1785:0","wallets_add_token_next":"crwdns1787:0crwdne1787:0","wallets_empty_tokens_tip":"crwdns1789:0crwdne1789:0","wallets_empty_collectible_tip":"crwdns1791:0crwdne1791:0","wallets_address_copied":"crwdns1793:0crwdne1793:0","wallets_address_copy":"crwdns1795:0crwdne1795:0","wallets_history_types":"crwdns1797:0crwdne1797:0","wallets_history_value":"crwdns1799:0crwdne1799:0","wallets_history_time":"crwdns1801:0crwdne1801:0","wallets_history_receiver":"crwdns1803:0crwdne1803:0","wallets_empty_history_tips":"crwdns1805:0crwdne1805:0","wallets_loading_token":"crwdns1807:0crwdne1807:0","personas_setup_connect_tips":"crwdns1809:0{{type}}crwdne1809:0","personas_setup_tip":"crwdns8091:0crwdne8091:0","personas_setup_connect":"crwdns1811:0crwdne1811:0","personas_name_maximum_tips":"crwdns1813:0{{length}}crwdne1813:0","personas_name_existed":"crwdns7965:0crwdne7965:0","personas_rename_placeholder":"crwdns1815:0crwdne1815:0","personas_confirm":"crwdns1817:0crwdne1817:0","personas_cancel":"crwdns1819:0crwdne1819:0","personas_export_persona":"crwdns7939:0crwdne7939:0","personas_export_persona_copy":"crwdns7941:0crwdne7941:0","personas_export_persona_copy_success":"crwdns7943:0crwdne7943:0","personas_export_persona_copy_failed":"crwdns7945:0crwdne7945:0","personas_export_persona_confirm_password_tip":"crwdns8177:0crwdne8177:0","personas_export_private":"crwdns7947:0crwdne7947:0","personas_export_private_key_tip":"crwdns7949:0crwdne7949:0","personas_delete_confirm_tips":"crwdns1821:0{{nickname}}crwdne1821:0","personas_delete_dialog_title":"crwdns1823:0crwdne1823:0","personas_edit_dialog_title":"crwdns1825:0crwdne1825:0","personas_edit":"crwdns1827:0crwdne1827:0","personas_delete":"crwdns1829:0crwdne1829:0","personas_logout":"crwdns8179:0crwdne8179:0","personas_logout_confirm_password_tip":"crwdns8181:0crwdne8181:0","personas_add_persona":"crwdns1831:0crwdne1831:0","personas_back_up":"crwdns1833:0crwdne1833:0","personas_connect_to":"crwdns1835:0{{internalName}}crwdne1835:0","personas_disconnect":"crwdns1837:0crwdne1837:0","personas_disconnect_raw":"crwdns14714:0crwdne14714:0","personas_disconnect_warning":"crwdns7997:0crwdne7997:0","personas_logout_warning":"crwdns8183:0crwdne8183:0","personas_add":"crwdns7957:0crwdne7957:0","personas_upload_avatar":"crwdns7959:0crwdne7959:0","personas_rename":"crwdns1839:0crwdne1839:0","personas_invite_post":"crwdns7903:0{{identifier}}crwdne7903:0","personas_empty_contact_tips":"crwdns7905:0{{name}}crwdne7905:0","personas_contacts_name":"crwdns7907:0crwdne7907:0","personas_contacts_operation":"crwdns7909:0crwdne7909:0","personas_contacts_invite":"crwdns7911:0crwdne7911:0","personas_post_is_empty":"crwdns7979:0crwdne7979:0","personas_post_create":"crwdns7981:0crwdne7981:0","settings_general":"crwdns1841:0crwdne1841:0","settings_backup_recovery":"crwdns7631:0crwdne7631:0","settings_local_backup":"crwdns7865:0crwdne7865:0","settings_cloud_backup":"crwdns7867:0crwdne7867:0","settings_appearance_default":"crwdns7633:0crwdne7633:0","settings_appearance_light":"crwdns7635:0crwdne7635:0","settings_appearance_dark":"crwdns7637:0crwdne7637:0","settings_backup_preview_account":"crwdns7639:0crwdne7639:0","settings_backup_preview_personas":"crwdns7641:0crwdne7641:0","settings_backup_preview_associated_account":"crwdns7643:0crwdne7643:0","settings_backup_preview_posts":"crwdns7645:0crwdne7645:0","settings_backup_preview_contacts":"crwdns7647:0crwdne7647:0","settings_backup_preview_fils":"crwdns7649:0crwdne7649:0","settings_backup_preview_wallets":"crwdns7651:0crwdne7651:0","settings_backup_preview_created_at":"crwdns7653:0crwdne7653:0","settings_language_title":"crwdns1847:0crwdne1847:0","settings_language_desc":"crwdns1849:0crwdne1849:0","settings_language_auto":"crwdns3967:0crwdne3967:0","settings_appearance_title":"crwdns1851:0crwdne1851:0","settings_appearance_desc":"crwdns1853:0crwdne1853:0","settings_data_source_title":"crwdns1855:0crwdne1855:0","settings_data_source_desc":"crwdns1857:0crwdne1857:0","settings_sync_with_mobile_title":"crwdns1859:0crwdne1859:0","settings_sync_with_mobile_desc":"crwdns1861:0crwdne1861:0","settings_global_backup_title":"crwdns1863:0crwdne1863:0","settings_global_backup_desc":"crwdns1865:0crwdne1865:0","settings_global_backup_last":"crwdns7869:0{{backupAt}}crwdnd7869:0{{backupMethod}}crwdne7869:0","settings_restore_database_title":"crwdns1867:0crwdne1867:0","settings_restore_database_desc":"crwdns1869:0crwdne1869:0","settings_email_title":"crwdns7967:0crwdne7967:0","settings_email_desc":"crwdns7969:0crwdne7969:0","settings_change_password_title":"crwdns7971:0crwdne7971:0","settings_change_password_desc":"crwdns7973:0crwdne7973:0","settings_change_password_not_set":"crwdns7975:0crwdne7975:0","settings_phone_number_title":"crwdns7659:0crwdne7659:0","settings_phone_number_desc":"crwdns7661:0crwdne7661:0","settings_password_rule":"crwdns7665:0crwdne7665:0","settings_button_cancel":"crwdns7977:0crwdne7977:0","settings_button_confirm":"crwdns7669:0crwdne7669:0","settings_button_sync":"crwdns7671:0crwdne7671:0","settings_button_backup":"crwdns7673:0crwdne7673:0","settings_button_recovery":"crwdns7675:0crwdne7675:0","settings_button_setup":"crwdns9495:0crwdne9495:0","settings_button_change":"crwdns7679:0crwdne7679:0","settings_dialogs_bind_email_or_phone":"crwdns7871:0crwdne7871:0","settings_dialogs_verify_backup_password":"crwdns7683:0crwdne7683:0","settings_dialogs_setting_backup_password":"crwdns7685:0crwdne7685:0","settings_dialogs_change_backup_password":"crwdns7687:0crwdne7687:0","settings_dialogs_setting_email":"crwdns7689:0crwdne7689:0","settings_dialogs_change_email":"crwdns7691:0crwdne7691:0","settings_dialogs_setting_phone_number":"crwdns7693:0crwdne7693:0","settings_dialogs_change_phone_number":"crwdns7695:0crwdne7695:0","settings_dialogs_incorrect_code":"crwdns7697:0crwdne7697:0","settings_dialogs_incorrect_email":"crwdns7699:0crwdne7699:0","settings_dialogs_incorrect_phone":"crwdns7701:0crwdne7701:0","settings_dialogs_incorrect_password":"crwdns7703:0crwdne7703:0","settings_dialogs_inconsistency_password":"crwdns7705:0crwdne7705:0","settings_dialogs_current_email_validation":"crwdns7707:0crwdne7707:0","settings_dialogs_change_email_validation":"crwdns8207:0crwdne8207:0","settings_dialogs_current_phone_validation":"crwdns7709:0crwdne7709:0","settings_dialogs_change_phone_validation":"crwdns8209:0crwdne8209:0","settings_dialogs_backup_to_cloud":"crwdns9027:0crwdne9027:0","settings_dialogs_merge_to_local_data":"crwdns7875:0crwdne7875:0","settings_dialogs_backup_action_desc":"crwdns7879:0crwdne7879:0","settings_dialogs_backup_to_cloud_action":"crwdns10601:0crwdne10601:0","settings_dialogs_backup_merge_cloud":"crwdns10603:0crwdne10603:0","settings_dialogs_backup_merged_tip":"crwdns9029:0crwdne9029:0","settings_label_backup_password":"crwdns7711:0crwdne7711:0","settings_label_new_backup_password":"crwdns7713:0crwdne7713:0","settings_label_backup_password_cloud":"crwdns9025:0crwdne9025:0","settings_label_payment_password":"crwdns7881:0crwdne7881:0","settings_label_re_enter":"crwdns7715:0crwdne7715:0","settings_alert_password_set":"crwdns7883:0crwdne7883:0","settings_alert_password_updated":"crwdns7885:0crwdne7885:0","settings_alert_email_set":"crwdns7887:0crwdne7887:0","settings_alert_email_updated":"crwdns7889:0crwdne7889:0","settings_alert_phone_number_set":"crwdns7891:0crwdne7891:0","settings_alert_phone_number_updated":"crwdns7893:0crwdne7893:0","settings_alert_backup_fail":"crwdns7895:0crwdne7895:0","settings_alert_backup_success":"crwdns7897:0crwdne7897:0","settings_alert_validation_code_sent":"crwdns7899:0crwdne7899:0","settings_alert_merge_success":"crwdns7901:0crwdne7901:0","labs_file_service":"crwdns1885:0crwdne1885:0","labs_file_service_desc":"crwdns1887:0crwdne1887:0","labs_markets":"crwdns1889:0crwdne1889:0","labs_markets_desc":"crwdns1891:0crwdne1891:0","labs_red_packet":"crwdns1893:0crwdne1893:0","labs_red_packet_desc":"crwdns1895:0crwdne1895:0","labs_swap":"crwdns1897:0crwdne1897:0","labs_swap_desc":"crwdns1899:0crwdne1899:0","labs_transak":"crwdns1901:0crwdne1901:0","labs_transak_desc":"crwdns1903:0crwdne1903:0","labs_savings":"crwdns13246:0crwdne13246:0","labs_savings_desc":"crwdns13248:0crwdne13248:0","labs_snapshot":"crwdns1905:0crwdne1905:0","labs_snapshot_desc":"crwdns1907:0crwdne1907:0","labs_market_trend":"crwdns1909:0crwdne1909:0","labs_market_trend_desc":"crwdns1911:0crwdne1911:0","labs_collectibles":"crwdns1913:0crwdne1913:0","labs_collectibles_desc":"crwdns1915:0crwdne1915:0","labs_gitcoin":"crwdns1917:0crwdne1917:0","labs_gitcoin_desc":"crwdns1919:0crwdne1919:0","labs_valuables":"crwdns1921:0crwdne1921:0","labs_valuables_desc":"crwdns1923:0crwdne1923:0","labs_dhedge":"crwdns1925:0crwdne1925:0","labs_dhedge_desc":"crwdns1927:0crwdne1927:0","labs_mask_box":"crwdns10323:0crwdne10323:0","labs_mask_box_desc":"crwdns10325:0crwdne10325:0","labs_loot_man":"crwdns10327:0crwdne10327:0","labs_loot_man_desc":"crwdns10329:0crwdne10329:0","labs_good_ghosting":"crwdns10331:0crwdne10331:0","labs_good_ghosting_desc":"crwdns10333:0crwdne10333:0","labs_pool_together":"crwdns10335:0crwdne10335:0","labs_pool_together_desc":"crwdns10337:0crwdne10337:0","labs_settings_market_trend":"crwdns1929:0crwdne1929:0","labs_settings_market_trend_source":"crwdns1931:0crwdne1931:0","labs_settings_swap":"crwdns1933:0crwdne1933:0","labs_settings_swap_network":"crwdns8195:0{{network}}crwdne8195:0","labs_pets":"crwdns9397:0crwdne9397:0","labs_pets_desc":"crwdns9399:0crwdne9399:0","labs_cyber_connect":"crwdns13316:0crwdne13316:0","labs_cyber_connect_desc":"crwdns13318:0crwdne13318:0","labs_setup_tutorial":"crwdns10339:0crwdne10339:0","labs_do_not_show_again":"crwdns10341:0crwdne10341:0","labs_cryptoartai":"crwdns10519:0crwdne10519:0","labs_cryptoartai_desc":"crwdns10521:0crwdne10521:0","labs_art_blocks":"crwdns14476:0crwdne14476:0","labs_art_blocks_desc":"crwdns14478:0crwdne14478:0","dashboard_mobile_test":"crwdns1941:0crwdne1941:0","dashboard_source_code":"crwdns1943:0crwdne1943:0","privacy_policy":"crwdns1945:0crwdne1945:0","version_of_stable":"crwdns1947:0{{version}}crwdne1947:0","version_of_unstable":"crwdns1949:0{{version}}crwdnd1949:0{{build}}crwdnd1949:0{{hash}}crwdne1949:0","register_restore_backups":"crwdns1951:0crwdne1951:0","register_restore_backups_cancel":"crwdns1953:0crwdne1953:0","register_restore_backups_confirm":"crwdns1955:0crwdne1955:0","register_restore_backups_hint":"crwdns1957:0crwdne1957:0","register_restore_backups_file":"crwdns1959:0crwdne1959:0","register_restore_backups_text":"crwdns1961:0crwdne1961:0","register_restore_backups_tabs":"crwdns1963:0crwdne1963:0","create_wallet_mnemonic_tip":"crwdns7725:0crwdne7725:0","create_wallet_password_uppercase_tip":"crwdns7727:0crwdne7727:0","create_wallet_password_lowercase_tip":"crwdns7729:0crwdne7729:0","create_wallet_password_number_tip":"crwdns7731:0crwdne7731:0","create_wallet_password_special_tip":"crwdns7733:0crwdne7733:0","create_wallet_password_satisfied_requirement":"crwdns9351:0crwdne9351:0","create_wallet_password_match_tip":"crwdns7735:0crwdne7735:0","create_wallet_password_length_error":"crwdns9353:0crwdne9353:0","create_wallet_name_placeholder":"crwdns7737:0crwdne7737:0","create_wallet_form_title":"crwdns7739:0crwdne7739:0","create_wallet_wallet_name":"crwdns7741:0crwdne7741:0","create_wallet_payment_password":"crwdns7743:0crwdne7743:0","create_wallet_re_enter_payment_password":"crwdns7745:0crwdne7745:0","create_wallet_payment_password_tip":"crwdns7747:0crwdne7747:0","create_wallet_your_wallet_address":"crwdns7749:0crwdne7749:0","create_wallet_done":"crwdns7751:0crwdne7751:0","create_wallet_verify_words":"crwdns7753:0crwdne7753:0","create_wallet_mnemonic_word_not_match":"crwdns8029:0crwdne8029:0"}'); - -/***/ }), - -/***/ 32284: -/***/ ((module) => { - -module.exports = JSON.parse('{"about":"关于","wallets":"钱包","personas":"身份","persona":"身份","refresh":"刷新","next":"下一步","cancel":"取消","back":"返回","agree":"同意","confirm":"确认","verify":"验证","go_back":"返回","connect":"连接","searching":"搜索中","restore":"恢复","save":"保存","manage":"管理","recovery":"恢复","successful":"成功","close":"关闭","send":"发送","resend":"重新发送","print":"打印","download":"下载","print_preview":"打印预览","download_preview":"下载预览","confirm_password":"密码确认","about_dialog_license":"开源协议: ","footer_bounty_list":"赏金列表","about_dialog_source_code":"源代码: ","about_dialog_feedback":"反馈: ","about_dialog_touch":"联系我们","about_dialog_description":"Mask Network 引领您探索更新更开放的互联网。Mask Network 允许您在社交网络上发送加密的贴文。 同时我们提供了更多功能,譬如发送加密红包,购买加密货币,加密文件服务等。","setup_page_title":"欢迎来到 Mask Network!","setup_page_description":"在社交网络上加密您的贴文和聊天内容,只允许您的朋友进行解密。","setup_page_create_account_title":"创建身份","setup_page_create_account_subtitle":"构建您的数字身份系统,探索 Web 3.0","setup_page_create_account_button":"创建","setup_page_create_restore_title":"恢复身份","setup_page_create_restore_subtitle":"通过身份助记词或历史备份恢复。","setup_page_create_restore_button":"恢复或登录","create_account_private_key":"私钥","create_account_identity_id":"身份助记词","create_account_identity_title":"创建Mask Network身份","create_account_sign_in_button":"恢复或登录","create_account_persona_exists":"该身份已存在。","create_account_mnemonic_download_or_print":"我已妥善保存我的身份信息。","create_account_preview_tip":"这个二维码保存您的身份信息,请妥善保存。您可以使用 Mask APP 扫描二维码登录您的身份。","create_account_mnemonic_confirm_failed":"助记词不正确","create_account_connect_social_media_button":"创建","create_account_connect_social_media":"连接到 {{type}}","create_account_persona_title":"欢迎来到 Mask Network!","create_account_persona_subtitle":"您可以创建个人身份并连接社交账户","create_account_persona_successfully":"创建身份成功","create_account_connect_social_media_title":"连接到社交媒体","create_account_failed":"创建帐户失败","sign_in_account_identity_title":"恢复或登录","sign_in_account_tab_identity":"身份","sign_in_account_sign_up_button":"注册","sign_in_account_identity_warning":"数字身份助记词只能恢复您的数字身份。它可以加密并解密由这个数字身份签名和发送的社交网络信息内容。","sign_in_account_private_key_placeholder":"输入您的私钥","sign_in_account_private_key_error":"私钥不正确","sign_in_account_private_key_persona_not_found":"无法找到身份","sign_in_account_private_key_warning":"数字身份助记词只能恢复您的数字身份。它可以加密并解密由这个数字身份签名和发送的社交网络信息内容。","sign_in_account_mnemonic_confirm_failed":"助记词不正确","sign_in_account_cloud_backup_send_email_success":"验证码已发送到您的 {{type}}。请检查您的 {{type}}。","sign_in_account_local_backup_warning":"本地备份可以恢复本地存储的所有数据。","sign_in_account_local_backup_payment_password":"支付密码","sign_in_account_local_backup_file_drag":"请点击选择或拖动文件到这里","sign_in_account_cloud_backup_warning":"云端备份会保存并加密您的数据。","sign_in_account_cloud_backup_not_support":"不支持的数据备份格式","sign_in_account_cloud_send_verification_code_tip":"发送验证码至","sign_in_account_cloud_backup_failed":"恢复备份失败,请再试一次。","sign_in_account_cloud_backup_email_or_phone_number":"电子邮箱或电话号码","sign_in_account_cloud_backup_password":"备份密码","sign_in_account_cloud_restore_failed":"恢复失败","sign_in_account_cloud_backup_download_failed":"备份文件下载失败","sign_in_account_cloud_backup_decrypt_failed":"备份解密失败,请检查密码","sign_in_account_cloud_backup_email_format_error":"邮箱地址不正确。","sign_in_account_cloud_backup_phone_format_error":"此电话号码不正确。","sign_in_account_cloud_backup_synchronize_password_tip":"已成功验证您的云端备份密码,备份正在上传。 为了备份密码的一致,请确认您是否愿意将您的云端备份密码设置为本地备份密码。","cloud_backup":"云端备份","wallets_transfer":"转账","wallets_assets":"资产","wallets_transfer_memo":"备注","wallets_transfer_amount":"数额","wallets_transfer_to_address":"发送到地址","wallets_transfer_error_amount_absence":"输入数额","wallets_transfer_error_address_absence":"输入收款人地址","wallets_transfer_error_contract":"选择 NFT 合约","wallets_transfer_error_nft":"选择一个 NFT","wallets_transfer_error_invalid_address":"收款人地址无效","wallet_transfer_error_no_address_has_been_set_name":"接收人地址无效。","wallet_transfer_error_no_ens_support":"网络不支持 ENS。","wallets_transfer_error_insufficient_balance":"{{symbol}} 余额不足","wallets_transfer_error_same_address_with_current_account":"此接收地址与发送地址相同,请重新检查。","wallets_transfer_error_is_contract_address":"此接收地址为合约地址,请重新检查。","wallets_transfer_send":"发送","wallets_transfer_memo_placeholder":"可选填信息","wallets_transfer_contract":"合约","wallets_transfer_contract_placeholder":"选择 NFT 合约","wallets_swap":"兑换","wallets_red_packet":"红包","wallets_sell":"卖出","wallets_history":"历史记录","settings":"设置","gas_fee":"交易手续费","transfer_cost":"花费 {{gasFee}} {{symbol}} ≈ {{usd}} 美元","done":"完成!","labs":"D.Market","wallet_transactions_pending":"待定中","wallet_gas_fee_settings_low":"低","wallet_gas_fee_settings_medium":"中","wallet_gas_fee_settings_high":"高","wallets_startup_create":"创建新钱包","wallets_startup_create_desc":"Mask Network支持ETH、BSC 和 Polygon/Matic 等网络。","wallets_startup_create_action":"创建","wallets_startup_import":"导入钱包","wallets_startup_import_desc":"Mask钱包支持私钥、JSON文件和助记词导入。","wallets_startup_import_action":"导入","wallets_startup_connect":"连接钱包","wallets_startup_connect_desc":"支持Mask钱包、MetaMask和WalletConnect。","wallets_startup_connect_action":"连接钱包","wallets_connect_wallet_metamask":"MetaMask","wallets_connect_wallet_connect":"连接钱包","wallets_connect_wallet_polka":"Polkadot 钱包","wallets_create_wallet_input_placeholder":"钱包名称","wallets_create_successfully_title":"成功","wallets_create_successfully_tips":"您已成功创建钱包。","wallets_create_successfully_unlock":"解锁钱包","wallets_create_wallet_alert":"Mask Network是一个免费的开源客户端接口。 Mask Network允许您直接与 区块链进行交互,同时您可以完全控制您的密钥和资金,请仔细考虑这一点。 您是掌控者,Mask Network不是银行或交易所。 我们不保留您的密钥、资金或信息。 这意味着我们无法访问账户、恢复密钥、重置密码或反向交易。","wallets_wallet_connect_title":"使用WalletConnect兼容的钱包扫描二维码","wallets_wallet_mnemonic":"助记词","wallets_wallet_json_file":"本地备份","wallets_wallet_private_key":"私钥","wallets_import_wallet_tabs":"导入钱包标签","wallets_import_wallet_password_placeholder":"钱包密码","wallets_import_wallet_cancel":"取消","wallets_import_wallet_import":"导入","wallets_create_wallet_tabs":"创建钱包标签","wallets_create_wallet_refresh":"刷新","wallets_create_wallet_remember_later":"请稍后再记住它","wallets_create_wallet_verification":"验证","wallets_collectible_address":"收藏品地址","wallets_collectible_token_id":"代币 ID","wallets_collectible_field_contract_require":"收藏品地址为必填项","wallets_collectible_field_token_id_require":"代币 ID 为必填项","wallets_collectible_load_end":"已加载完毕","wallets_balance":"资产在","wallets_balance_all_chain":"总览","wallets_balance_Send":"发送","wallets_balance_Buy":"购买","wallets_balance_Swap":"兑换","wallets_balance_Receive":"接收","wallets_assets_token":"代币","wallets_assets_token_sent_not_connect_tip":"未连接到 {{chainName}}。","wallets_assets_token_sent_switch_network_tip":"点击切换","wallets_assets_investment":"投资","wallets_assets_collectibles":"收藏品","wallets_assets_custom_token":"自定义代币","wallets_assets_custom_collectible":"自定义收藏品","wallets_assets_asset":"资产","wallets_assets_balance":"余额","wallets_assets_price":"价格","wallets_assets_value":"价值","wallets_assets_operation":"操作","wallets_address":"钱包地址","wallets_receive_tips":"扫描二维码并发送{{chainName}} 资产到此钱包","wallets_add_collectible":"添加收藏品","wallets_incorrect_address":"钱包地址不正确","wallets_collectible_been_added":"此收藏品已被添加。","wallets_collectible_error_not_exist":"此收藏品不存在或不属于您。","wallets_collectible_contract_is_empty":"请选择合约","wallets_collectible_token_id_is_empty":"请选择代币","wallets_collectible_add":"添加","wallets_add_token":"添加代币","wallets_token_been_added":"代币已被添加。","wallets_token_symbol_tips":"代币代号必须少于11或更少的字符。","wallets_token_decimals_tips":"十进制必须至少 0,且不得超过 18。","wallets_add_token_contract_address":"代币合约地址","wallets_add_token_symbol":"代币代号","wallets_add_token_decimals":"小数点精度","wallets_add_token_cancel":"取消","wallets_add_token_next":"下一步","wallets_empty_tokens_tip":"没有找到任何资产。请添加代币。","wallets_empty_collectible_tip":"没有找到任何收藏品。请添加收藏品。","wallets_address_copied":"已成功复制地址","wallets_address_copy":"复制","wallets_history_types":"类型","wallets_history_value":"价值","wallets_history_time":"时间","wallets_history_receiver":"交互者","wallets_empty_history_tips":"没有任何交易历史","wallets_loading_token":"正在加载代币","personas_setup_connect_tips":"请连接到您的 {{type}} 账户。","personas_setup_tip":"请创建或恢复身份。","personas_setup_connect":"连接","personas_name_maximum_tips":"最大长度为 {{length}} 个字符。","personas_name_existed":"此身份名称已存在","personas_rename_placeholder":"身份名称","personas_confirm":"确认","personas_cancel":"取消","personas_export_persona":"导出身份","personas_export_persona_copy":"复制","personas_export_persona_copy_success":"已复制","personas_export_persona_copy_failed":"复制失败","personas_export_persona_confirm_password_tip":"您还没有设置您的备份密码。想要导出您的身份私钥,必须先设置备份密码。","personas_export_private":"导出身份私钥","personas_export_private_key_tip":"此操作仅用于导出私钥。我们不导出任何其他数据。如果您需要导出更多数据,请前往设置页面:","personas_delete_confirm_tips":"请输入您的备份密码来确认删除身份 {{nickname}} 。","personas_delete_dialog_title":"删除身份","personas_edit_dialog_title":"编辑身份","personas_edit":"编辑","personas_delete":"删除","personas_logout":"登出","personas_logout_confirm_password_tip":"您还没有设置您的密码。要登出身份,您必须先设置备份密码。","personas_add_persona":"添加新身份","personas_back_up":"备份","personas_connect_to":"连接到 {{internalName}}","personas_disconnect":"断开连接","personas_disconnect_warning":"您确定要断开 {{network}} 账户 {{userId}} 吗? 断开连接后,此账户将无法解密并使用Mask Network加密任何信息。","personas_logout_warning":"身份登出后,您所关联的社交网络账户将不能解密过去的加密消息。 如果您需要重新使用您的身份,您可以使用您的身份私钥进行恢复。","personas_add":"添加","personas_upload_avatar":"上传头像","personas_rename":"重命名","personas_invite_post":"@{{identifier}} Hi,请下载Mask Network,以便我们可以用加密的方式分享帖子?#mask_io install http://mask.io","personas_empty_contact_tips":"您尚未有安装Mask Network的联系人。请邀请您的朋友下载 {{name}}","personas_contacts_name":"名称","personas_contacts_operation":"操作","personas_contacts_invite":"邀请","personas_post_is_empty":"您还没有创建任何加密贴文。","personas_post_create":"创建贴文","settings_general":"通用","settings_backup_recovery":"备份恢复","settings_local_backup":"本地备份","settings_cloud_backup":"云端备份","settings_appearance_default":"按照系统设置","settings_appearance_light":"浅色","settings_appearance_dark":"深色","settings_backup_preview_account":"账户","settings_backup_preview_personas":"身份","settings_backup_preview_associated_account":"关联账户","settings_backup_preview_posts":"加密贴文","settings_backup_preview_contacts":"联系人","settings_backup_preview_fils":"文件","settings_backup_preview_wallets":"Mask钱包","settings_backup_preview_created_at":"备份时间","settings_language_title":"语言","settings_language_desc":"选择您要使用的语言","settings_language_auto":"按照系统设置","settings_appearance_title":"外观","settings_appearance_desc":"选择您要使用的外观主题","settings_data_source_title":"数据源","settings_data_source_desc":"从不同平台获取趋势数据","settings_sync_with_mobile_title":"与移动设备同步","settings_sync_with_mobile_desc":"您可以与您的移动设备同步您的帐户和信息。 打开Mask Network移动应用程序,进入设置并点击与插件同步。","settings_global_backup_title":"备份数据库","settings_global_backup_desc":"提供选择本地备份和云端备份","settings_global_backup_last":"最近的备份时间为{{backupAt}},备份方法为{{backupMethod}}。","settings_restore_database_title":"恢复数据库","settings_restore_database_desc":"从以前的数据库备份恢复","settings_email_title":"电子邮箱","settings_email_desc":"请绑定您的电子邮箱","settings_change_password_title":"备份密码","settings_change_password_desc":"修改备份密码","settings_change_password_not_set":"您尚未设置备份密码","settings_phone_number_title":"手机号码","settings_phone_number_desc":"请绑定您的手机号码","settings_password_rule":"备份密码必须为 8 到 20 个字符,并且至少包含一个数字、一个大写字母、一个小写字母和一个特殊字符。","settings_button_cancel":"取消","settings_button_confirm":"确认","settings_button_sync":"同步","settings_button_backup":"备份","settings_button_recovery":"恢复","settings_button_setup":"设置","settings_button_change":"修改","settings_dialogs_bind_email_or_phone":"请绑定您的电子邮箱或手机号码","settings_dialogs_verify_backup_password":"验证备份密码","settings_dialogs_setting_backup_password":"设置备份密码","settings_dialogs_change_backup_password":"修改备份密码","settings_dialogs_setting_email":"设置电子邮箱","settings_dialogs_change_email":"更改电子邮箱地址","settings_dialogs_setting_phone_number":"设置手机号码","settings_dialogs_change_phone_number":"修改手机号","settings_dialogs_incorrect_code":"验证码不正确.","settings_dialogs_incorrect_email":"邮箱地址不正确。","settings_dialogs_incorrect_phone":"此手机号码不正确。","settings_dialogs_incorrect_password":"密码不正确。","settings_dialogs_inconsistency_password":"密码不一致!","settings_dialogs_current_email_validation":"当前验证的邮箱地址为","settings_dialogs_change_email_validation":"想要更改其他邮箱地址,请验证您当前的邮箱地址。","settings_dialogs_current_phone_validation":"当前验证的手机号码为","settings_dialogs_change_phone_validation":"想要更改您的手机号码,您需要验证您当前的手机号码。","settings_dialogs_backup_to_cloud":"备份至云端","settings_dialogs_merge_to_local_data":"将云端备份合并到本地并再次备份到云端","settings_dialogs_backup_action_desc":"云端备份已存在, 您可以选择在备份之前先合并此云端备份到您的本地数据,或者直接覆盖重新备份。","settings_dialogs_backup_to_cloud_action":"此选项将使用本地数据覆盖现有云备份。","settings_dialogs_backup_merge_cloud":"此选项需要您输入现有云备份的密码进行解密。 解密后将会把现有云备份与本地数据合并,然后再次加密上传到云端。","settings_dialogs_backup_merged_tip":"您已经合并云端备份到本地. 如果您想要继续完成备份,请点击备份按钮将您的所有数据更新到云端。","settings_label_backup_password":"备份密码","settings_label_new_backup_password":"新备份密码","settings_label_backup_password_cloud":"云端文件的备份密码","settings_label_payment_password":"支付密码","settings_label_re_enter":"再次输入","settings_alert_password_set":"备份密码设置成功。","settings_alert_password_updated":"备份密码已更新","settings_alert_email_set":"电子邮箱已设置","settings_alert_email_updated":"邮箱地址已更新","settings_alert_phone_number_set":"手机号码已设置","settings_alert_phone_number_updated":"电话号码已更改","settings_alert_backup_fail":"备份失败","settings_alert_backup_success":"您已成功备份您的数据。","settings_alert_validation_code_sent":"验证码已发送","settings_alert_merge_success":"您已成功地将云端备份合并到本地数据。","labs_file_service":"文件服务","labs_file_service_desc":"为用户提供去中心化文档存储功能。","labs_markets":"ITO","labs_markets_desc":"将数字资产出售给您的加密世界朋友。","labs_red_packet":"红包","labs_red_packet_desc":"使用加密红包向您的朋友送上最好的祝福。","labs_swap":"兑换","labs_swap_desc":"通过Dex购买代币,无需额外费用和限制。","labs_transak":"Transak","labs_transak_desc":"Transak可支持在60多个国家内购买代币。","labs_savings":"储蓄","labs_snapshot":"Snapshot","labs_snapshot_desc":"直接在社交媒体上展示和投票支持提案。","labs_market_trend":"市场趋势","labs_market_trend_desc":"在社交媒体上直接显示代币信息、价格趋势图表和兑换信息。","labs_collectibles":"收藏品","labs_collectibles_desc":"直接在社交媒体上展示收藏品在 OpenSea 和 Rarible的特定信息,和提供发送报价及竞标功能。","labs_gitcoin":"Gitcoin","labs_gitcoin_desc":"在社交媒体上直接展示Gitcoin项目的具体信息。","labs_valuables":"Valuables","labs_valuables_desc":"购买和销售由其原创作者发布的推文。","labs_dhedge":"dHEDGE","labs_dhedge_desc":"以太坊上的去中心化对冲基金。","labs_mask_box":"Mask盲盒","labs_mask_box_desc":"支持多链的去中心化NFT盲盒发布平台。","labs_loot_man_desc":"探索NFT无尽的可能性。以革命性的方式在社交媒体上展示您的 NFT。","labs_good_ghosting":"GoodGhosting","labs_good_ghosting_desc":"在Twitter上培养每周储蓄的习惯。","labs_pool_together":"无损彩票","labs_pool_together_desc":"在 Twitter 上参与零损失彩票活动。","labs_settings_market_trend":"市场趋势设置","labs_settings_market_trend_source":"默认趋势来源","labs_settings_swap":"交易所设置","labs_settings_swap_network":"{{network}} 网络默认交易所","labs_pets_desc":"探索NFT无尽的可能性。以革命性的方式在社交媒体上展示您的 NFT。","labs_setup_tutorial":"教程","labs_do_not_show_again":"不再提醒","dashboard_mobile_test":"参加移动端测试","dashboard_source_code":"源代码","privacy_policy":"隐私政策","version_of_stable":"版本 {{version}}","version_of_unstable":"版本 {{version}}-{{build}}-{{hash}}","register_restore_backups":"恢复备份","register_restore_backups_cancel":"取消","register_restore_backups_confirm":"恢复","register_restore_backups_hint":"请点击选择或拖动文件到这里","register_restore_backups_file":"文件","register_restore_backups_text":"文本内容","register_restore_backups_tabs":"恢复备份","create_wallet_mnemonic_tip":"请不要忘记保存您的助记词。您需要这个才能访问您的钱包。","create_wallet_password_uppercase_tip":"必须包含一个大写字符","create_wallet_password_lowercase_tip":"必须包含一个小写字符","create_wallet_password_number_tip":"必须包含一个数字","create_wallet_password_special_tip":"必须包含一个特殊字符","create_wallet_password_satisfied_requirement":"密码格式不符合要求。","create_wallet_password_match_tip":"密码不一致。","create_wallet_password_length_error":"密码长度不符合要求。","create_wallet_name_placeholder":"输入1-12 个字符","create_wallet_form_title":"创建一个钱包","create_wallet_wallet_name":"钱包名称","create_wallet_payment_password":"支付密码","create_wallet_re_enter_payment_password":"再次输入支付密码","create_wallet_payment_password_tip":"支付密码必须是数字、大小写字母和特殊字符中的2个类别的组合,长度为 8-20 个字符。","create_wallet_your_wallet_address":"您的钱包地址","create_wallet_done":"完成","create_wallet_verify_words":"验证助记词","create_wallet_mnemonic_word_not_match":"助记词不正确"}'); - -/***/ }), - -/***/ 39675: -/***/ ((module) => { - -module.exports = JSON.parse('{"about":"關於","wallets":"錢包","personas":"角色","persona":"角色","refresh":"刷新","next":"繼續","cancel":"取消","back":"返回","agree":"同意","confirm":"確認","verify":"驗證","go_back":"返回","connect":"連接","searching":"搜尋中","restore":"恢復","save":"存儲","manage":"管理","recovery":"恢復","successful":"成功","close":"關閉","send":"發送","resend":"重新傳送","confirm_password":"確認密碼","about_dialog_license":"開源協議: ","footer_bounty_list":"賞金列表","about_dialog_source_code":"原始碼: ","about_dialog_feedback":"反饋 ","about_dialog_touch":"聯繫我們","about_dialog_description":"Mask Network 引領您探索更新更開放的互聯網。Mask Network允許您在社交網路上發送加密的貼文。同時我們提供了更多功能,例如發送加密紅包,購買加密貨幣,加密文件服務等。","setup_page_title":"歡迎來到Mask Network","setup_page_description":"在社交網路上加密您的推文和聊天訊息,只允許您的朋友進行解密。","setup_page_create_account_title":"創建新身份","setup_page_create_account_subtitle":"創造你的虛擬身份,探索Web3.0","setup_page_create_account_button":"創建","setup_page_create_restore_title":"從身份或備份中恢復","setup_page_create_restore_subtitle":"從身份和歷史備份中恢復","setup_page_create_restore_button":"備份 或 登錄","create_account_private_key":"私鑰","create_account_identity_title":"在Mask Network創建一個身份","create_account_sign_in_button":"恢復","create_account_preview_tip":"此二維碼將保存你的身份密碼,請妥善保存。可使用Mask手機端掃描二維碼來登錄。","create_account_mnemonic_confirm_failed":"錯誤身份代碼","create_account_connect_social_media_button":"創建","create_account_connect_social_media":"連接 {{type}}","create_account_persona_title":"歡迎來到Mask Network","create_account_persona_subtitle":"您可以創建個人身分並連接社交帳戶","create_account_persona_successfully":"創建成功","create_account_connect_social_media_title":"連接社交平台","create_account_failed":"創建帳號失敗","sign_in_account_identity_title":"恢復您的身分","sign_in_account_tab_identity":"身份","sign_in_account_sign_up_button":"註冊","sign_in_account_identity_warning":"數字身分助記詞只能恢復您的數字身分。它可以加密並解密由這個數字身分簽名和發送的社交網路信息內容。","sign_in_account_private_key_placeholder":"請輸入你的私鑰","sign_in_account_private_key_error":"私钥不正确","sign_in_account_private_key_persona_not_found":"Persona失蹤","sign_in_account_private_key_warning":"數字身分助記詞只能恢復您的數字身分。它可以加密並解密由這個數字身分簽名和發送的社交網路訊息內容。","sign_in_account_mnemonic_confirm_failed":"錯誤身份","sign_in_account_cloud_backup_send_email_success":"驗證碼已發往 {{type}}. 請查看 {{type}}.","sign_in_account_local_backup_warning":"本地備份能恢復之前所有被本地存儲的數據","sign_in_account_local_backup_payment_password":"支付密碼","sign_in_account_local_backup_file_drag":"請點擊或拖拽文件到此處","sign_in_account_cloud_backup_warning":"雲端備份會保存並加密您的數據。","sign_in_account_cloud_backup_not_support":"不支持數據備份格式","sign_in_account_cloud_send_verification_code_tip":"發送驗證碼至","sign_in_account_cloud_backup_failed":"恢復備份失敗,請再試一次。","sign_in_account_cloud_backup_email_or_phone_number":"郵箱地址或電話號碼","sign_in_account_cloud_backup_password":"備份密碼","sign_in_account_cloud_restore_failed":"恢復失敗","sign_in_account_cloud_backup_download_failed":"下載備份失敗","sign_in_account_cloud_backup_decrypt_failed":"備份解密失敗,請檢查密碼","sign_in_account_cloud_backup_email_format_error":"電子郵件地址不正確","sign_in_account_cloud_backup_phone_format_error":"此電話號碼不正確。","sign_in_account_cloud_backup_synchronize_password_tip":"已成功驗證您的雲端備份密碼,備份正在上傳,為了備份密碼的一致,請確認您是否願意將您的雲端備份密碼設置為本地備份密碼。","cloud_backup":"雲端備份","wallets_transfer":"轉賬","wallets_assets":"資產","wallets_transfer_memo":"備註","wallets_transfer_amount":"數量","wallets_transfer_to_address":"至地址","wallets_transfer_error_amount_absence":"輸入數額","wallets_transfer_error_address_absence":"輸入接收者地址","wallets_transfer_error_contract":"選擇NFT合約","wallets_transfer_error_nft":"選擇一個NFT","wallets_transfer_error_invalid_address":"無效接收者地址","wallet_transfer_error_no_address_has_been_set_name":"接收者地址不存在","wallet_transfer_error_no_ens_support":"網路不支持ENS。","wallets_transfer_error_insufficient_balance":"{{symbol}} 餘額不足","wallets_transfer_send":"傳送","wallets_transfer_memo_placeholder":"可選填訊息","wallets_transfer_contract":"合約","wallets_transfer_contract_placeholder":"選擇一份NFT合約","wallets_swap":"兌換","wallets_red_packet":"紅包","wallets_sell":"賣出","wallets_history":"歷史記錄","settings":"設定","gas_fee":"交易手續費","transfer_cost":"花費 {{gasFee}} {{symbol}} ≈ ${{usd}}","done":"完成!","wallet_transactions_pending":"待定中","wallet_gas_fee_settings_low":"低","wallet_gas_fee_settings_medium":"中","wallet_gas_fee_settings_high":"高","wallets_startup_create":"創建一個新錢包","wallets_startup_create_desc":"Mask network 支援 Eth、 BSC 和 Polygon 網路。","wallets_startup_create_action":"創建","wallets_startup_import":"導入錢包","wallets_startup_import_desc":"Mask network 支援私鑰、JSON 文件和助記詞","wallets_startup_import_action":"導入","wallets_startup_connect":"連結其他錢包","wallets_startup_connect_desc":"Mask network 支援 Metamask 和 Connect Wallet.","wallets_startup_connect_action":"連結","wallets_connect_wallet_metamask":"MetaMask","wallets_connect_wallet_connect":"連接錢包","wallets_connect_wallet_polka":"PolkaDot 錢包","wallets_create_wallet_input_placeholder":"錢包名稱","wallets_create_successfully_title":"成功","wallets_create_successfully_tips":"您已成功創建錢包","wallets_create_successfully_unlock":"解鎖錢包","wallets_create_wallet_alert":"Mask Network是一個免費的開源客戶端接口。 Mask Network允許您直接與區塊鏈進行交互,同時您可以完全控制自己的密鑰和資金,請仔細考慮。 您是掌控者。 Mask Network不是銀行或交易所。 我們不會保留您的鑰匙,資金或信息。 這意味著我們無法訪問帳戶,恢復密鑰,重設密碼或撤消交易。","wallets_wallet_connect_title":"使用兼容WalletConnect的錢包掃描QR碼","wallets_wallet_mnemonic":"助記符","wallets_wallet_json_file":"本地備份","wallets_wallet_private_key":"私鑰","wallets_import_wallet_tabs":"導入錢包標籤","wallets_import_wallet_password_placeholder":"錢包密碼","wallets_import_wallet_cancel":"取消","wallets_import_wallet_import":"輸入","wallets_create_wallet_tabs":"創建錢包標籤","wallets_create_wallet_refresh":"刷新","wallets_create_wallet_remember_later":"記得以後","wallets_create_wallet_verification":"确认","wallets_collectible_address":"收藏品地址","wallets_collectible_token_id":"代幣 ID","wallets_collectible_field_contract_require":"收藏品地址為必填項","wallets_collectible_field_token_id_require":"代幣 ID 為必填項","wallets_collectible_load_end":"載入完畢","wallets_balance":"結餘","wallets_balance_all_chain":"所有鏈","wallets_balance_Send":"發送","wallets_balance_Buy":"購買","wallets_balance_Swap":"交換","wallets_balance_Receive":"接收","wallets_assets_token":"代幣","wallets_assets_token_sent_not_connect_tip":"未连接至 {{chainName}}.","wallets_assets_token_sent_switch_network_tip":"點擊切換","wallets_assets_investment":"投資","wallets_assets_collectibles":"收藏品","wallets_assets_custom_token":"自定義代幣","wallets_assets_custom_collectible":"自定義收藏品","wallets_assets_asset":"資產","wallets_assets_balance":"餘額","wallets_assets_price":"價格","wallets_assets_value":"價值","wallets_assets_operation":"操作","wallets_address":"錢包地址","wallets_receive_tips":"掃瞄二維碼並發送 {{chainName}} 資產到此錢包","wallets_add_collectible":"添加收藏品","wallets_incorrect_address":"合約地址錯誤","wallets_collectible_been_added":"此收藏品已被添加","wallets_collectible_error_not_exist":"此藏品不存在或不屬於你","wallets_collectible_contract_is_empty":"請選擇合約","wallets_collectible_token_id_is_empty":"請選擇代幣","wallets_collectible_add":"新增","wallets_add_token":"新增代幣","wallets_token_been_added":"已添加代幣","wallets_token_symbol_tips":"代幣符號必須不超過11個字符。","wallets_add_token_contract_address":"代幣合約地址","wallets_add_token_symbol":"代幣符號","wallets_add_token_decimals":"小數點精度","wallets_add_token_cancel":"取消","wallets_add_token_next":"下一步","wallets_empty_tokens_tip":"沒有找到任何資產。請添加代幣。","wallets_empty_collectible_tip":"沒有找到任何收藏品。請添加收藏品。","wallets_address_copied":"已複製地址","wallets_address_copy":"複製 ","wallets_history_types":"類型","wallets_history_value":"價值","wallets_history_time":"時間","wallets_empty_history_tips":"無交易記錄","wallets_loading_token":"正在載入代幣","personas_setup_connect_tips":"請連接到您的 {{type}} 帳戶。","personas_setup_tip":"請創建或恢復身分。","personas_setup_connect":"連接","personas_name_maximum_tips":"名稱最長長度為 {{length}} 字","personas_name_existed":"身份名稱已存在","personas_rename_placeholder":"身分名稱","personas_confirm":"確認","personas_cancel":"取消","personas_export_persona":"導出身分","personas_export_persona_copy":"複製","personas_export_persona_copy_success":"已複製","personas_export_persona_copy_failed":"複製失敗","personas_export_persona_confirm_password_tip":"你還沒設置密碼,匯出私鑰前必須先設置備份密碼。","personas_export_private":"匯出私鑰","personas_export_private_key_tip":"此操作僅用於導出私鑰。我們不導出任何其他數據。如果您需要導出更多數據,請前往設置頁面:","personas_delete_confirm_tips":"請確認你已刪除身份 {{nickname}} 並已輸入密碼","personas_delete_dialog_title":"刪除身份","personas_edit_dialog_title":"編輯身分","personas_edit":"編輯","personas_delete":"刪除","personas_logout":"登出","personas_logout_confirm_password_tip":"您還沒有設置您的密碼。要登出身分,您必須先設置備份密碼。","personas_add_persona":"添加新身分","personas_back_up":"備份","personas_connect_to":"連接 {{internalName}}","personas_disconnect":"斷開連接","personas_disconnect_warning":"您確定要斷開{{network}} 帳戶{{userId}} 嗎?斷開連接後,此帳戶將無法解密並使用Mask Network加密任何訊息。","personas_logout_warning":"身分登出後,您關聯的社交網路帳戶將不能解密過去的加密訊息。如果您需要重新使用您的身分,您可以使用您的身分私鑰進行恢復。","personas_add":"新增","personas_upload_avatar":"上傳頭像","personas_rename":"重命名","personas_invite_post":"@{{identifier}} 您好,請下載Mask,以便我們可以用加密的方式分享貼文 #mask_io install http://mask.io","personas_empty_contact_tips":"您尚未有安裝Mask Network的聯繫人。請邀請您的朋友下載{{name}}。","personas_contacts_name":"名稱","personas_contacts_operation":"操作","personas_contacts_invite":"邀請","personas_post_is_empty":"您還沒有創建任何貼文。","personas_post_create":"創建貼文","settings_general":"一般","settings_backup_recovery":"備份 & 恢復","settings_local_backup":"本地備份","settings_cloud_backup":"雲端備份","settings_appearance_default":"按照系統設定","settings_appearance_light":"淺色","settings_appearance_dark":"深色","settings_backup_preview_account":"帳戶","settings_backup_preview_personas":"身分","settings_backup_preview_associated_account":"關聯帳戶","settings_backup_preview_posts":"加密貼文","settings_backup_preview_contacts":"聯繫人","settings_backup_preview_fils":"文件","settings_backup_preview_wallets":"Mask錢包","settings_backup_preview_created_at":"備份時間","settings_language_title":"語言","settings_language_desc":"選擇您要使用的語言","settings_language_auto":"跟隨系統","settings_appearance_title":"外觀","settings_appearance_desc":"選擇你想使用的外觀","settings_data_source_title":"資料源","settings_data_source_desc":"從不同平台獲取趨勢資料","settings_sync_with_mobile_title":"與手機同步","settings_sync_with_mobile_desc":"您可以與您的移動設備同步您的帳戶和資料。打開Mask Network移動應用程式,進入設定頁面並點擊與插件同步。","settings_global_backup_desc":"提供本地和雲端兩種備份選項","settings_global_backup_last":"最近的備份時間為 {{backupAt}}。備份方法為:{{backupMethod}}。","settings_restore_database_title":"復原資料庫","settings_restore_database_desc":"從之前的數據庫備份復原","settings_email_title":"電子郵箱","settings_email_desc":"請綁定郵箱","settings_change_password_title":"備份密碼","settings_change_password_desc":"變更您的備份密碼","settings_change_password_not_set":"你還沒有設定備份密碼","settings_phone_number_title":"電話號碼","settings_phone_number_desc":"請綁定您的電話號碼","settings_password_rule":"備份密碼的長度必須在8到20個字符之間,並且至少包含一個數字,一個大寫字母,一個小寫字母和一個特殊字符。","settings_button_cancel":"取消","settings_button_confirm":"確認","settings_button_sync":"同步","settings_button_backup":"備份","settings_button_recovery":"恢復","settings_button_setup":"設定","settings_button_change":"變更","settings_dialogs_bind_email_or_phone":"請綁定郵箱或電話號碼","settings_dialogs_verify_backup_password":"驗證備份密碼","settings_dialogs_setting_backup_password":"設定備份密碼","settings_dialogs_change_backup_password":"變更備份密碼","settings_dialogs_setting_email":"設定電子郵箱","settings_dialogs_change_email":"變更郵箱","settings_dialogs_setting_phone_number":"設定電話號碼","settings_dialogs_change_phone_number":"變更電話號碼","settings_dialogs_incorrect_code":"驗證碼錯誤","settings_dialogs_incorrect_email":"郵箱地址不正確","settings_dialogs_incorrect_phone":"通訊號碼錯誤","settings_dialogs_incorrect_password":"密碼錯誤","settings_dialogs_inconsistency_password":"密碼不一致","settings_dialogs_current_email_validation":"當前驗證的郵箱地址為","settings_dialogs_change_email_validation":"需要驗證現有郵箱地址以更改","settings_dialogs_current_phone_validation":"當前驗證的電話號碼為","settings_dialogs_change_phone_validation":"想要變更電話號碼,您需要驗證您您當前的電話號碼:","settings_dialogs_backup_to_cloud":"備份到雲端","settings_dialogs_merge_to_local_data":"將雲端備份合併到本地並再次備份到雲端","settings_dialogs_backup_action_desc":"雲端備份已存在,請在備份之前合併雲端備份至本地,或者直接備份。","settings_dialogs_backup_to_cloud_action":"此選項將用本地數據覆蓋現有的雲端備份","settings_dialogs_backup_merged_tip":"您已把雲端備份合併到本地。如果您想要繼續完成備份,請點擊按鍵將您的所有資料更新到雲端。","settings_label_backup_password":"備份密碼","settings_label_new_backup_password":"新備份密碼","settings_label_backup_password_cloud":"雲端文件的備份密碼","settings_label_payment_password":"支付密碼","settings_label_re_enter":"重新輸入","settings_alert_password_set":"備份密碼設定成功","settings_alert_password_updated":"備份密碼已更新","settings_alert_email_set":"電子郵箱設定","settings_alert_email_updated":"郵箱已更新","settings_alert_phone_number_set":"電話號碼設定","settings_alert_phone_number_updated":"電話號碼已更新","settings_alert_backup_fail":"備份失敗","settings_alert_backup_success":"備份數據已成功","settings_alert_validation_code_sent":"驗證碼已傳送","settings_alert_merge_success":"您已經成功您的雲端備份合併到本地資料。","labs_file_service":"文件服務","labs_file_service_desc":"上傳及分享文件以享受永久去中心化存儲服務","labs_markets":"首次代幣發行","labs_markets_desc":"在推特自由發售虛擬資產&直接參與代幣發行","labs_red_packet":"紅包","labs_swap":"兌換","labs_snapshot":"快照","labs_snapshot_desc":"在社交平台上展示和為提案投票","labs_market_trend":"市場走勢","labs_market_trend_desc":"直接在社交平台中展示代幣信息/走勢圖/換匯信息","labs_collectibles":"收藏","labs_gitcoin":"Gitcoin","labs_gitcoin_desc":"在社交媒體上顯示Gitcoin項目的具體資訊,並且直接對項目進行捐贈。","labs_valuables_desc":"從原創者手中購買推特並交易","labs_dhedge":"dHEDGE","labs_dhedge_desc":"在eth/Matic鏈上的去中心化對衝基金","labs_mask_box_desc":"使用專業的多鏈去中心平台以發售NFT盲盒","labs_loot_man":"Loot小人 by MintTeam","labs_loot_man_desc":"用全新方式在社交平台上連結展示你的NFT收藏並探索NFT的無限可能","labs_good_ghosting":"GoodGhosting","labs_good_ghosting_desc":"在Twitter上養成每週儲蓄習慣","labs_pool_together":"PoolTogether","labs_pool_together_desc":"在Twitter上參與無損彩票遊戲","labs_settings_market_trend_source":"默认信息源","labs_settings_swap":"兌換設定","labs_settings_swap_network":"{{network}} 鏈上默認交易所","labs_pets":"Loot小人 by MintTeam","labs_setup_tutorial":"設置教程","labs_do_not_show_again":"不再顯示","labs_cryptoartai":"CRYPTOART.AI","dashboard_mobile_test":"參與手機版本測試","dashboard_source_code":"源代碼","privacy_policy":"隱私政策","version_of_stable":"版本號 {{version}}","version_of_unstable":"版本號 {{version}}-{{build}}-{{hash}}","register_restore_backups":"恢復備份","register_restore_backups_cancel":"取消","register_restore_backups_confirm":"恢復","register_restore_backups_hint":"請點擊或拖拽文件到此處","register_restore_backups_file":"檔案","register_restore_backups_text":"文本內容","register_restore_backups_tabs":"還原備份","create_wallet_mnemonic_tip":"請不要忘記保存助記詞,您將需要這個才能訪問您的錢包。","create_wallet_password_uppercase_tip":"必須含有大寫字母","create_wallet_password_lowercase_tip":"必須含有小寫字母","create_wallet_password_number_tip":"必須包含數字","create_wallet_password_special_tip":"必須含有特殊符號","create_wallet_password_satisfied_requirement":"該密碼不滿足設置條件","create_wallet_password_match_tip":"輸入的密碼不一致","create_wallet_password_length_error":"密碼長度不符合規定","create_wallet_name_placeholder":"輸入1-12個字元","create_wallet_form_title":"創建錢包","create_wallet_wallet_name":"錢包名稱","create_wallet_payment_password":"支付密碼","create_wallet_re_enter_payment_password":"再次輸入支付密碼","create_wallet_payment_password_tip":"支付密碼必須是數字、大小寫字母和特殊字母中至少兩種類別的組合,長度為8-20個字符","create_wallet_your_wallet_address":"錢包地址","create_wallet_done":"完成","create_wallet_verify_words":"驗證助記詞","create_wallet_mnemonic_word_not_match":"助記詞錯誤"}'); - -/***/ }) - -}]); \ No newline at end of file diff --git a/DevelopmentPod/MaskbookPlugin/maskbook/js/7358.js b/DevelopmentPod/MaskbookPlugin/maskbook/js/7358.js deleted file mode 100644 index fee18df3..00000000 --- a/DevelopmentPod/MaskbookPlugin/maskbook/js/7358.js +++ /dev/null @@ -1,1135 +0,0 @@ -"use strict"; -(globalThis["webpackChunk_masknet_extension"] = globalThis["webpackChunk_masknet_extension"] || []).push([[7358],{ - -/***/ 39230: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "A9": () => (/* reexport safe */ _bridgedCoin98__WEBPACK_IMPORTED_MODULE_2__.A), -/* harmony export */ "M1": () => (/* binding */ pasteText), -/* harmony export */ "Mx": () => (/* binding */ pasteImage), -/* harmony export */ "X2": () => (/* binding */ pasteInstagram), -/* harmony export */ "ed": () => (/* binding */ hookInputUploadOnce), -/* harmony export */ "i1": () => (/* reexport safe */ _bridgedSolana__WEBPACK_IMPORTED_MODULE_3__.i), -/* harmony export */ "iJ": () => (/* binding */ inputText), -/* harmony export */ "j3": () => (/* reexport safe */ _bridgedEthereum__WEBPACK_IMPORTED_MODULE_1__.j) -/* harmony export */ }); -/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(55574); -/* harmony import */ var _bridgedEthereum__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(22469); -/* harmony import */ var _bridgedCoin98__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(88520); -/* harmony import */ var _bridgedSolana__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(63050); -/* harmony import */ var _utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(7474); - - - - - - - - -function pasteText(text) { - (0,_utils__WEBPACK_IMPORTED_MODULE_4__/* .sendEvent */ .qP)('paste', text); -} -function pasteImage(image) { - (0,_utils__WEBPACK_IMPORTED_MODULE_4__/* .sendEvent */ .qP)('pasteImage', Array.from(image)); -} -function pasteInstagram(url) { - (0,_utils__WEBPACK_IMPORTED_MODULE_4__/* .sendEvent */ .qP)('instagramUpload', url); -} -function inputText(text) { - (0,_utils__WEBPACK_IMPORTED_MODULE_4__/* .sendEvent */ .qP)('input', text); -} -function hookInputUploadOnce(format, fileName, image, triggerOnActiveElementNow = false) { - (0,_utils__WEBPACK_IMPORTED_MODULE_4__/* .sendEvent */ .qP)('hookInputUploadOnce', format, fileName, Array.from(image), triggerOnActiveElementNow); -} -document.addEventListener(_shared__WEBPACK_IMPORTED_MODULE_0__/* .CustomEventId */ .OV, (e)=>{ - const r = (0,_shared__WEBPACK_IMPORTED_MODULE_0__/* .decodeEvent */ .Vu)(e.detail); - if (r[1].length < 1) return; - switch(r[0]){ - case 'resolvePromise': - return (0,_utils__WEBPACK_IMPORTED_MODULE_4__/* .resolvePromise */ .LD)(...r[1]); - case 'rejectPromise': - return (0,_utils__WEBPACK_IMPORTED_MODULE_4__/* .rejectPromise */ .Eu)(...r[1]); - case 'ethBridgeOnEvent': - return (0,_bridgedEthereum__WEBPACK_IMPORTED_MODULE_1__/* .onEthEvent */ .t)(...r[1]); - case 'coin98BridgeOnEvent': - return (0,_bridgedCoin98__WEBPACK_IMPORTED_MODULE_2__/* .onCoin98Event */ .$)(...r[1]); - case 'solanaBridgeOnEvent': - return (0,_bridgedSolana__WEBPACK_IMPORTED_MODULE_3__/* .onSolanaEvent */ .C)(...r[1]); - case 'ethBridgeSendRequest': - case 'ethBridgePrimitiveAccess': - case 'ethBridgeRequestListen': - case 'coin98BridgeSendRequest': - case 'coin98BridgePrimitiveAccess': - case 'coin98BridgeRequestListen': - case 'solanaBridgeSendRequest': - case 'solanaBridgePrimitiveAccess': - case 'solanaBridgeRequestListen': - case 'solanaBridgeExecute': - case 'input': - case 'paste': - case 'pasteImage': - case 'instagramUpload': - case 'untilEthBridgeOnline': - case 'untilCoin98BridgeOnline': - case 'untilSolanaBridgeOnline': - case 'hookInputUploadOnce': - break; - default: - const neverEvent = r[0]; - console.log('[@masknet/injected-script]', neverEvent, 'not handled'); - } -}); - - -/***/ }), - -/***/ 52993: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "q": () => (/* binding */ Avatar) -/* harmony export */ }); -/* unused harmony export mapContactAvatarColor */ -/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(71999); -/* harmony import */ var _mui_material_Avatar_Avatar__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(30103); -/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(927); - - - -function mapContactAvatarColor(string, theme) { - const hash = [ - ...string - ].reduce((prev, current)=>{ - // eslint-disable-next-line no-bitwise - const next = current.charCodeAt(0) + (prev << 5) - prev; - // eslint-disable-next-line no-bitwise - return next & next; - }, 0); - return `hsl(${hash % 360}, ${theme === 'dark' ? '78%' : '98%'}, ${theme === 'dark' ? '50%' : '70%'})`; -} -function Avatar({ person , ...props }) { - const { avatar , nickname , identifier } = person; - const name = nickname || identifier.userId || ''; - const [first, last] = name.split(' '); - const theme = (0,_mui_material__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)().palette.mode; - return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_mui_material_Avatar_Avatar__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z, { - "aria-label": name, - src: avatar, - style: { - backgroundColor: mapContactAvatarColor(identifier.toText(), theme) - }, - ...props, - children: [ - first[0], - (last || '')[0] - ] - }); -} - - -/***/ }), - -/***/ 51082: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "S": () => (/* binding */ useLocationChange) -/* harmony export */ }); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(86248); - -function useLocationChange(handler) { - (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>{ - window.addEventListener('locationchange', handler); - return ()=>window.removeEventListener('locationchange', handler) - ; - }, [ - handler - ]); -} - - -/***/ }), - -/***/ 6955: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - - -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - "qE": () => (/* reexport */ Avatar/* Avatar */.q), - "ql": () => (/* reexport */ messages/* MaskMessages */.q), - "a_": () => (/* reexport */ BackupFormat/* UpgradeBackupJSONFile */.a), - "SR": () => (/* reexport */ asyncIteratorHelpers/* asyncIteratorToArray */.S), - "aW": () => (/* reexport */ collectNodeText/* collectNodeText */.a), - "_r": () => (/* reexport */ collectNodeText/* collectTwitterEmoji */._), - "lR": () => (/* reexport */ BackupFile/* convertBackupFileToObject */.l), - "ou": () => (/* reexport */ renderInShadowRoot/* createReactRootShadowed */.o), - "Qn": () => (/* reexport */ deconstructPayload), - "GR": () => (/* reexport */ utils/* downloadUrl */.GR), - "uM": () => (/* reexport */ permissions/* extraPermissions */.u), - "jK": () => (/* reexport */ BackupFile/* fixBackupFilePermission */.j), - "$I": () => (/* reexport */ suspends/* getAssetAsBlobURL */.$), - "dF": () => (/* reexport */ theme/* getBackgroundColor */.dF), - "c_": () => (/* reexport */ getTextUILength/* getTextUILength */.c), - "bF": () => (/* reexport */ utils/* pasteImageToActiveElements */.bF), - "Vc": () => (/* reexport */ renderInShadowRoot/* setupShadowRootPortal */.V), - "cc": () => (/* reexport */ getTextUILength/* sliceTextByUILength */.L), - "fy": () => (/* reexport */ watcher/* startWatch */.f), - "ft": () => (/* reexport */ dom/* untilElementAvailable */.f), - "D2": () => (/* reexport */ useControlledDialog/* useControlledDialog */.D), - "M1": () => (/* reexport */ i18n_next_ui/* useI18N */.M), - "ZK": () => (/* reexport */ i18n_next_ui/* useLanguage */.Z), - "SL": () => (/* reexport */ useLocationChange/* useLocationChange */.S), - "IN": () => (/* reexport */ useMatchXS/* useMatchXS */.I), - "H9": () => (/* reexport */ useMenu/* useMenu */.H), - "eD": () => (/* reexport */ useQueryNavigatorPermission), - "MN": () => (/* reexport */ useSettingSwitcher/* useSettingsSwitcher */.M), - "Ei": () => (/* reexport */ useSettingSwitcher/* useSwitcher */.E) -}); - -// UNUSED EXPORTS: JWKToKey, MaskDarkTheme, MaskLightTheme, PersonaArrayComparer, createNormalReactRoot, fromRGB, getBackupPreviewInfo, getForegroundColor, isDark, isDarkTheme, keyToAddr, keyToJWK, mapContactAvatarColor, nthChild, regexMatch, selectElementContents, shade, toRGB, useClassicMaskSNSTheme, useColorStyles, useErrorStyles, useSuspense, useThemeLanguage - -// EXTERNAL MODULE: ./src/utils/components/Avatar.tsx -var Avatar = __webpack_require__(52993); -;// CONCATENATED MODULE: ./src/utils/components/index.ts - - -// EXTERNAL MODULE: ./src/utils/debug/index.ts -var debug = __webpack_require__(14005); -// EXTERNAL MODULE: ./src/utils/hooks/useControlledDialog.ts -var useControlledDialog = __webpack_require__(48668); -// EXTERNAL MODULE: ./src/utils/hooks/useMatchXS.ts -var useMatchXS = __webpack_require__(77733); -// EXTERNAL MODULE: ./src/utils/hooks/useMenu.tsx -var useMenu = __webpack_require__(93313); -// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.0.0/node_modules/react/index.js -var react = __webpack_require__(86248); -// EXTERNAL MODULE: ../../node_modules/.pnpm/lodash-es@4.17.21/node_modules/lodash-es/hasIn.js + 2 modules -var hasIn = __webpack_require__(61451); -// EXTERNAL MODULE: ./shared/index.ts -var shared = __webpack_require__(62481); -;// CONCATENATED MODULE: ./src/utils/hooks/useQueryNavigatorPermission.ts -/** This file is published under MIT License */ - - -const q = [ - 'query', - 'request', - 'revoke' -]; -function checkPermissionApiUsability(type) { - const r = {}; - for (const v of q){ - r[v] = (0,hasIn/* default */.Z)(navigator, `permissions.${v}`); - } - if (type) { - return r[type]; - } - return r; -} -function useQueryNavigatorPermission(needRequest, name) { - const [permission, updatePermission] = (0,react.useState)('prompt'); - (0,react.useEffect)(()=>{ - // TODO: Only camera related APi need to check Flags.has_no_WebRTC - if (!needRequest || permission !== 'prompt' || shared/* Flags.has_no_WebRTC */.vU.has_no_WebRTC) return; - let permissionStatus; - const handleChange = function() { - updatePermission(this.state); - }; - if (checkPermissionApiUsability('query')) { - navigator.permissions// @ts-expect-error https://github.com/microsoft/TypeScript-DOM-lib-generator/issues/1029#issuecomment-898868275 - .query({ - name - }).then((p)=>{ - permissionStatus = p; - permissionStatus.addEventListener('change', handleChange); - updatePermission(permissionStatus.state); - }).catch(()=>{ - // for some user agents which implemented `query` method - // but rise an error if specific permission name dose not supported - updatePermission('granted'); - }); - } else if (checkPermissionApiUsability('request')) { - navigator.permissions// @ts-expect-error https://github.com/microsoft/TypeScript-DOM-lib-generator/issues/1029#issuecomment-898868275 - .request({ - name - }).then((p)=>{ - updatePermission(p.state); - }).catch(()=>{ - updatePermission('granted'); - }); - } else { - updatePermission('granted'); - } - return ()=>permissionStatus?.removeEventListener('change', handleChange) - ; - }, [ - name, - needRequest, - permission - ]); - return permission; -} - -// EXTERNAL MODULE: ./src/utils/hooks/useSettingSwitcher.tsx -var useSettingSwitcher = __webpack_require__(25089); -// EXTERNAL MODULE: ./src/utils/hooks/useLocationChange.ts -var useLocationChange = __webpack_require__(51082); -;// CONCATENATED MODULE: ./src/utils/hooks/index.ts - - - - - - - - -// EXTERNAL MODULE: ./src/utils/shadow-root/renderInShadowRoot.tsx -var renderInShadowRoot = __webpack_require__(55423); -;// CONCATENATED MODULE: ./src/utils/shadow-root/index.ts - - -// EXTERNAL MODULE: ./src/utils/suspends/index.ts + 1 modules -var suspends = __webpack_require__(64026); -// EXTERNAL MODULE: ./src/utils/type-transform/asyncIteratorHelpers.ts -var asyncIteratorHelpers = __webpack_require__(39615); -// EXTERNAL MODULE: ./src/utils/type-transform/BackupFile.ts -var BackupFile = __webpack_require__(92972); -// EXTERNAL MODULE: ./src/utils/type-transform/BackupFormat/index.ts -var BackupFormat = __webpack_require__(68558); -// EXTERNAL MODULE: ../../node_modules/.pnpm/@dimensiondev+holoflows-kit@0.9.0-20210902104757-7c3d0d0_webextension-polyfill@0.9.0/node_modules/@dimensiondev/holoflows-kit/umd/index.cjs -var umd = __webpack_require__(85646); -// EXTERNAL MODULE: ./shared-ui/locales_legacy/index.ts -var locales_legacy = __webpack_require__(47481); -// EXTERNAL MODULE: ../../node_modules/.pnpm/ts-results@3.3.0/node_modules/ts-results/esm/index.js + 3 modules -var esm = __webpack_require__(48160); -// EXTERNAL MODULE: ./src/social-network/ui.ts -var ui = __webpack_require__(10888); -;// CONCATENATED MODULE: ./src/social-network/utils/text-payload-ui.ts - -function decodeTextPayloadUI(x) { - const f = ui.activatedSocialNetworkUI.utils.textPayloadPostProcessor?.decoder; - if (f) return f(x).concat(x); - return [ - x - ]; -} - -// EXTERNAL MODULE: ../shared-base/src/index.ts + 1 modules -var src = __webpack_require__(78144); -;// CONCATENATED MODULE: ./src/utils/type-transform/Payload.ts - - - - - -/** - * Detect if there is version -40, -39 or -38 payload - */ function deconstructAlpha40_Or_Alpha39_Or_Alpha38(str, throws = false) { - // ? payload is 🎼2/4|ownersAESKeyEncrypted|iv|encryptedText|signature:|| - // ? payload is 🎼3/4|ownersAESKeyEncrypted|iv|encryptedText|signature:|| - // ? payload is 🎼4/4|AESKeyEncrypted|iv|encryptedText|signature|authorPublicKey?|publicShared?|authorIdentifier:|| - // ? if publicShared is true, that means AESKeyEncrypted is shared with public - // ? "1" treated as true, "0" or not defined treated as false - // ? authorIdentifier is encoded as `${network}/${id}` - const isVersion40 = str.includes('\u{1F3BC}2/4'); - const isVersion39 = str.includes('\u{1F3BC}3/4'); - const isVersion38 = str.includes('\u{1F3BC}4/4'); - str = str.replace('\u{1F3BC}2/4', '\u{1F3BC}3/4'); - str = str.replace('\u{1F3BC}3/4', '\u{1F3BC}4/4'); - const [_, payloadStart] = str.split('\u{1F3BC}4/4|'); - if (!payloadStart) if (throws) throw new Error(locales_legacy/* i18n.t */.a.t('payload_not_found')); - else return null; - const [payload, rest] = payloadStart.split(':||'); - if (rest === undefined) if (throws) throw new Error(locales_legacy/* i18n.t */.a.t('payload_incomplete')); - else return null; - const [AESKeyEncrypted, iv, encryptedText, signature, ...optional] = payload.split('|'); - const [authorPublicKey, publicShared, authorID, ...extra] = optional; - if (!(AESKeyEncrypted && iv && encryptedText)) if (throws) throw new Error(locales_legacy/* i18n.t */.a.t('payload_bad')); - else return null; - if (extra.length) console.warn('Found extra payload', extra); - if (isVersion38) { - if (!signature) throw new Error(locales_legacy/* i18n.t */.a.t('payload_bad')); - return { - version: -38, - AESKeyEncrypted, - iv, - encryptedText, - signature, - authorPublicKey, - sharedPublic: publicShared === '1', - authorUserID: esm/* Result.wrap */.x4.wrap(()=>src/* Identifier.fromString */.xb.fromString('person:' + atob(authorID), src/* ProfileIdentifier */.WO).unwrap() - ).unwrapOr(undefined) - }; - } - return { - ownersAESKeyEncrypted: AESKeyEncrypted, - iv, - encryptedText, - signature, - version: isVersion39 ? -39 : -40 - }; -} -function deconstructAlpha41(str, throws = false) { - // 🎼1/4|ownersAESKeyEncrypted|iv|encryptedText|signature:|| - if (str.includes('\u{1F3BC}1/4') && str.includes(':||')) if (throws) throw new Error(locales_legacy/* i18n.t */.a.t('payload_throw_in_alpha41')); - else return null; - return null; -} -const versions = new Set([ - deconstructAlpha40_Or_Alpha39_Or_Alpha38, - deconstructAlpha41 -]); -function deconstructPayload(str, networkDecoder) { - if (!networkDecoder) { - networkDecoder = (0,umd.isEnvironment)(umd.Environment.ContentScript) ? decodeTextPayloadUI : (x)=>[ - x - ] - ; - } - for (const versionDecoder of versions){ - const results = networkDecoder(str); - for (const result of results){ - if (!result) continue; - const payload = versionDecoder(result, false); - if (payload) return (0,esm.Ok)(payload); - } - } - if (str.includes('\u{1F3BC}') && str.includes(':||')) return (0,esm/* Err */.UG)(new TypeError(locales_legacy/* i18n.t */.a.t('service_unknown_payload'))); - return (0,esm/* Err */.UG)(new TypeError(locales_legacy/* i18n.t */.a.t('payload_not_found'))); -} - -// EXTERNAL MODULE: ./src/utils/type-transform/SECP256k1-ETH.ts -var SECP256k1_ETH = __webpack_require__(54921); -;// CONCATENATED MODULE: ./src/utils/type-transform/index.ts - - - - - - -// EXTERNAL MODULE: ./src/utils/dom.ts -var dom = __webpack_require__(99665); -// EXTERNAL MODULE: ./src/utils/getTextUILength.ts -var getTextUILength = __webpack_require__(81270); -// EXTERNAL MODULE: ./src/utils/i18n-next-ui.ts -var i18n_next_ui = __webpack_require__(99192); -// EXTERNAL MODULE: ./src/utils/messages.ts -var messages = __webpack_require__(32196); -// EXTERNAL MODULE: ./src/utils/permissions.ts -var permissions = __webpack_require__(97093); -// EXTERNAL MODULE: ./src/utils/createNormalReactRoot.tsx -var createNormalReactRoot = __webpack_require__(59389); -// EXTERNAL MODULE: ./src/utils/theme/index.ts + 1 modules -var theme = __webpack_require__(92121); -// EXTERNAL MODULE: ./src/utils/utils.ts -var utils = __webpack_require__(27028); -// EXTERNAL MODULE: ./src/utils/watcher.ts -var watcher = __webpack_require__(69900); -// EXTERNAL MODULE: ./src/utils/collectNodeText.ts -var collectNodeText = __webpack_require__(86742); -;// CONCATENATED MODULE: ./src/utils/index.ts - - - - - - - - - - - - - - - - - - - -/***/ }), - -/***/ 55423: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "V": () => (/* binding */ setupShadowRootPortal), -/* harmony export */ "o": () => (/* binding */ createReactRootShadowed) -/* harmony export */ }); -/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(71999); -/* harmony import */ var _masknet_theme__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(30232); -/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(62481); -/* harmony import */ var _UIRoot__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(81514); -/* harmony import */ var _theme__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(92121); - - - - - -const captureEvents = [ - 'paste', - 'keydown', - 'keypress', - 'keyup', - 'drag', - 'dragend', - 'dragenter', - 'dragleave', - 'dragover', - 'dragstart', - 'change', -]; -const setupShadowRootPortal = ()=>{ - const shadow = (0,_masknet_theme__WEBPACK_IMPORTED_MODULE_1__/* .setupPortalShadowRoot */ .d_)({ - mode: _shared__WEBPACK_IMPORTED_MODULE_2__/* .Flags.using_ShadowDOM_attach_mode */ .vU.using_ShadowDOM_attach_mode - }); - createReactRootShadowed(shadow, { - key: 'css-vars' - }).render(/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_masknet_theme__WEBPACK_IMPORTED_MODULE_1__/* .CSSVariableInjector */ .US, {})); -}; -// https://github.com/DimensionDev/Maskbook/issues/3265 with fast refresh or import order? -const createReactRootShadowed_raw = (0,_masknet_theme__WEBPACK_IMPORTED_MODULE_1__/* .createReactRootShadowedPartial */ .zV)({ - preventEventPropagationList: captureEvents, - wrapJSX (jsx) { - return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_UIRoot__WEBPACK_IMPORTED_MODULE_3__/* .MaskUIRoot */ .Y, { - useTheme: _theme__WEBPACK_IMPORTED_MODULE_4__/* .useClassicMaskSNSTheme */ .VJ, - kind: "sns", - children: [ - /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_masknet_theme__WEBPACK_IMPORTED_MODULE_1__/* .CSSVariableInjector */ .US, {}), - jsx - ] - }); - } -}); -function createReactRootShadowed(...args) { - return createReactRootShadowed_raw(...args); -} - - -/***/ }), - -/***/ 27028: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "GR": () => (/* binding */ downloadUrl), -/* harmony export */ "Ms": () => (/* binding */ selectElementContents), -/* harmony export */ "ZB": () => (/* binding */ regexMatch), -/* harmony export */ "bF": () => (/* binding */ pasteImageToActiveElements) -/* harmony export */ }); -/* harmony import */ var _masknet_injected_script__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(39230); -/* harmony import */ var lodash_unified__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(32139); -/* harmony import */ var _extension_service__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(5027); -/** - * Prefer function declaration than const f = () => ... - * in this file please. - */ - - -/** - * Download given url return as Blob - */ async function downloadUrl(url) { - try { - if (url.startsWith(browser.runtime.getURL(''))) { - return _extension_service__WEBPACK_IMPORTED_MODULE_1__/* ["default"].Helper.fetch */ .ZP.Helper.fetch(url); - } - } catch {} - const res = await fetch(url); - if (!res.ok) throw new Error('Fetch failed.'); - return res.blob(); -} -/** - * paste image to activeElements - * @param image - */ async function pasteImageToActiveElements(image) { - (0,_masknet_injected_script__WEBPACK_IMPORTED_MODULE_0__/* .pasteImage */ .Mx)(new Uint8Array(await image.arrayBuffer())); -} -/** - * Select all text in a node - * @param el Element - */ function selectElementContents(el) { - const range = document.createRange(); - range.selectNodeContents(el); - const sel = globalThis.getSelection(); - sel.removeAllRanges(); - sel.addRange(range); - return sel; -} -function regexMatch(str, regexp, index = 1) { - const r = str.match(regexp); - if ((0,lodash_unified__WEBPACK_IMPORTED_MODULE_2__/* ["default"] */ .Z)(r)) return null; - if (index === null) { - return r; - } - return r[index]; -} - - -/***/ }), - -/***/ 69900: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "f": () => (/* binding */ startWatch) -/* harmony export */ }); -/* harmony import */ var _shared__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(62481); - -function startWatch(watcher, signal) { - watcher.setDOMProxyOption({ - afterShadowRootInit: { - mode: _shared__WEBPACK_IMPORTED_MODULE_0__/* .Flags.using_ShadowDOM_attach_mode */ .vU.using_ShadowDOM_attach_mode - }, - beforeShadowRootInit: { - mode: _shared__WEBPACK_IMPORTED_MODULE_0__/* .Flags.using_ShadowDOM_attach_mode */ .vU.using_ShadowDOM_attach_mode - } - }).startWatch({ - subtree: true, - childList: true - }); - signal.addEventListener('abort', ()=>watcher.stopWatch() - ); - return watcher; -} - - -/***/ }), - -/***/ 87557: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - - -// EXPORTS -__webpack_require__.d(__webpack_exports__, { - "SV": () => (/* reexport */ ErrorBoundary), - "N3": () => (/* reexport */ context/* ErrorBoundaryBuildInfoContext */.N) -}); - -// UNUSED EXPORTS: CrashUI, withErrorBoundary - -// EXTERNAL MODULE: ../shared-base-ui/src/components/ErrorBoundary/CrashUI.tsx + 2 modules -var CrashUI = __webpack_require__(84432); -// EXTERNAL MODULE: ../shared-base-ui/src/components/ErrorBoundary/context.ts -var context = __webpack_require__(74189); -// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.0.0/node_modules/react/jsx-runtime.js -var jsx_runtime = __webpack_require__(71999); -// EXTERNAL MODULE: ../../node_modules/.pnpm/react@18.0.0/node_modules/react/index.js -var react = __webpack_require__(86248); -;// CONCATENATED MODULE: ../shared-base-ui/src/components/ErrorBoundary/ErrorBoundary.tsx - - - -const map = new WeakMap(); -/** - * Return the ErrorBoundary wrapped version of given Component - * @param Component The component that need to be wrapped with ErrorBoundary - */ function withErrorBoundary(Component1) { - if (map.has(Component1)) return map.get(Component1); - const C = /*#__PURE__*/ forwardRef((props, ref)=>/*#__PURE__*/ _jsx(ErrorBoundary, { - children: /*#__PURE__*/ _jsx(Component1, { - ...props, - ref: ref - }) - }) - ); - map.set(Component1, C); - return C; -} -class ErrorBoundary extends react.Component { - static getDerivedStateFromError(error) { - return { - error - }; - } - render() { - if (!this.state.error) return /*#__PURE__*/ (0,jsx_runtime.jsx)(jsx_runtime.Fragment, { - children: this.props.children - }); - return /*#__PURE__*/ (0,jsx_runtime.jsx)(CrashUI/* CrashUI */.O, { - subject: "Mask", - onRetry: ()=>this.setState({ - error: null - }) - , - ...this.props, - ...this.normalizedError - }); - } - get normalizedError() { - let stack = ''; - let type = 'UnknownError'; - let message = 'unknown error'; - try { - stack = String(this.state.error.stack) || ''; - stack = stack.replace(/webpack-internal:.+node_modules\//g, 'npm:'); - // remove webpack-internal:/// - stack = stack.replace(/webpack-internal:\/{3}/g, ''); - } catch {} - try { - type = String(this.state.error.name) || ''; - } catch {} - try { - message = String(this.state.error.message) || ''; - } catch {} - return { - stack, - type, - message - }; - } - constructor(...args){ - super(...args); - this.state = { - error: null - }; - } -} - -;// CONCATENATED MODULE: ../shared-base-ui/src/components/ErrorBoundary/index.ts - - - - -;// CONCATENATED MODULE: ../shared-base-ui/src/components/index.ts - - - -/***/ }), - -/***/ 19937: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "U": () => (/* binding */ CSSVariableInjector) -/* harmony export */ }); -/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(71999); -/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(927); -/* harmony import */ var _mui_material__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(93770); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(86248); -/* harmony import */ var _applyToDOM__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(52558); - - - - -function CSSVariableInjector(props) { - const { current: useConsistentTheme } = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(props.useTheme || _mui_material__WEBPACK_IMPORTED_MODULE_3__/* ["default"] */ .Z); - const colorScheme = useConsistentTheme().palette.mode; - return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z, { - styles: (0,_applyToDOM__WEBPACK_IMPORTED_MODULE_2__/* .CSSVariableInjectorCSS */ .P)(colorScheme) - }); -} - - -/***/ }), - -/***/ 57208: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "t": () => (/* binding */ useDialogStackActor), -/* harmony export */ "y": () => (/* binding */ DialogStackingProvider) -/* harmony export */ }); -/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(71999); -/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(86248); - - -const StackingScopeEnabled = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.createContext)(false); -const Stack = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.createContext)({ - level: -1, - onHideChange (shouldHide) {} -}); -/** - * If you're using on its own and you want to support DialogStack, please use this hook. - * - * Your dialog component MUST support the following attributes with the same semantics with MUI Dialog component. - * - * - disableEscapeKeyDown - * - disableScrollLock - * - hideBackdrop - * - style - * - aria-hidden - * - open - * - transitionDuration - * @example - * function SomeComponent() { - * const [open, setOpen] = useState(false) - * const { shouldReplaceExitWithBack, extraProps } = useDialogStackConsumer(open) - * return - * - * - * You MUST hide Close button and and BackButton based on the value of `shouldReplaceExitWithBack` - * - * - * } - */ function useDialogStackActor(open) { - const selfID = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(Math.random()); - const featureEnabled = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(StackingScopeEnabled); - const { level: upperLevel , onHideChange } = (0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(Stack); - // this is an object that stores all request hiding state of it's decedents. - // e.g for component tree: - // (selfID=0) - // ---- (selfID=1) - // ---- (selfID=2) - // - // When dialog2 opened, it will set hide of Dialog1 to { 1: true } - // If any value in hide is true, it means one of it decedents requested to hide this parent. - const [hide1, setHide] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)({}); - const LatestOnHideChange = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(onHideChange); - LatestOnHideChange.current = onHideChange; - // Here we rely on the assumption that level is impossible to change. - // because it requires a reorder in the component tree, which is not possible to happen - // in React's reconciliation algorithm - const Increase = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null); - if (!Increase.current) { - Increase.current = function IncreaseStackLevel(props) { - return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(Stack.Provider, { - children: props.children, - value: { - level: upperLevel + 1, - onHideChange: (hide)=>{ - setHide((val)=>({ - ...val, - [selfID.current]: hide - }) - ); - } - } - }); - }; - } - (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{ - if (!featureEnabled) return LatestOnHideChange.current(false); - LatestOnHideChange.current(open); - }, [ - featureEnabled, - open - ]); - (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{ - return ()=>LatestOnHideChange.current(false) - ; - }, []); - const returnVal = { - shouldReplaceExitWithBack: upperLevel !== -1, - extraProps: { - open - }, - IncreaseStack: Increase.current - }; - if (!featureEnabled || !open) return returnVal; - if (returnVal.shouldReplaceExitWithBack) { - returnVal.extraProps.transitionDuration = 0; - } - if (Object.values(hide1).some(Boolean)) { - returnVal.extraProps = { - ...returnVal.extraProps, - disableEscapeKeyDown: true, - disableScrollLock: true, - hideBackdrop: true, - style: { - visibility: 'hidden' - }, - 'aria-hidden': true - }; - } - return returnVal; -} -/** - * This Provider can turn any `MaskDialog` or `InjectedDialog` in the subtree into a unified dialog. - * - * For example: - * - * ```tsx - * - * - * - * - * - * ``` - * - * When Dialog1 and Dialog2 both opened, only Dialog2 will be visible and the left top button - * becomes "BackArrow". - */ function DialogStackingProvider(props) { - return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(StackingScopeEnabled.Provider, { - children: props.children, - value: !props.disabled - }); -} - - -/***/ }), - -/***/ 60549: -/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { - -/* harmony export */ __webpack_require__.d(__webpack_exports__, { -/* harmony export */ "m": () => (/* binding */ StyleSheet) -/* harmony export */ }); -const shadowHeadMap = new WeakMap(); -const constructableStyleSheetEnabled = true; -// There are 2 rendering mode of this ShadowRootStyleSheet. -// 1. If the host supports ConstructableStyleSheet proposal: -// It is the fastest but only Chrome supports it. -// 2. style tags that being synchronize between all ShadowRoot. -// See https://github.com/emotion-js/emotion/blob/main/packages/sheet/src/index.js -// Note: We cannot use .sheet.insertRule (so called "speedy mode") because in our app, -// the host of a ShadowRoot might be detached from the DOM and reattach to another place, -// when a